PUERTAS LÓGICAS
PUERTA AND
Vamos a simular dos entradas lógicas (“1” ó “0”) con dos pulsadores, (pueden ser conmutadores). En este ejemplo usaremos la función AND de manera que, según el estado de las 2 entradas, obtendremos una señal de salida (“1” ó “0”) conforme a la tabla de verdad de la operación.
Utiizando una protoboarda monta las entradas en los pines digitales 1 y 2. Y el led de salida en el pin13 que se encenderá o apagará según la lógica de una puerta AND respecto a las dos variables de entrada (dos pulsadores).
CÓDIGO:
/*Boole
Función AND con 2 variables
*/
int var1 = 7; //Pin de entrada del pulsador 1
int var2 = 2; //Pin de entrada del pulsador 2
int led = 5; //Pin de salida para el led(rojo)
int estado1 = 0; //Para almacenar el estado de la variable1
int estado2 = 0; //Para almacenar el estado de la variable2
int resultado = 0; //Para almacenar el resultado
void setup() {
pinMode(var1, INPUT); //Iniciliza el pin de entrada 1 como salida
pinMode(var2, INPUT); //Iniciliza el pin de entrada 2 como salida
pinMode(led, OUTPUT); //Iniciliza el pin del led como salida
}
void loop(){
estado1 = digitalRead(var1); //Lee el estado del botón y lo almacena
estado2 = digitalRead(var2); //Lee el estado del botón y lo almacena
resultado = (estado1 && estado2); //Función AND con los dos estados
digitalWrite(led, resultado); //Escribimos el resultado en el led
}
EJEMPLO DE "UN MONTACARGAS"
Tenemos un elevador neumático que se puede controlar desde 2 habitaciones contiguas del taller. Para que el elevador funcione debe estar accionado cualquiera de los 2 pulsadores existentes, pero por seguridad no funcionará si dos operarios la accionan simultáneamente.
Identificar las variables de entrada y función de salida:
Entradas:
- A: un pulsador
- B: un pulsador
Salida o valor de la función:
- Motor que acciona el compresor del elevador
TABLA DE VERDAD:
Función Canónica: M(FC1) = NOT(A) * B + A * NOT(B)
Puertas Lógicas:
- 2 puertas NOT
- 2 puertas AND
- 1 puerta OR