En este ejemplo, haremos una puerta and con dos pulsadores y un led. Añadimos otro pulsador al circuito anterior, en esta ocasión conectado al pin 10. La tabla de verdad del operador AND es:
constintsw1=10;// Pulsador 1 en el pin 10constintsw2=9;// Pulsador 2 en el pin 9constintled=8;// LED en el pin 8// Variables para almacenar las lecturas de los pulsadoresintlectura1=0;intlectura2=0;voidsetup(){pinMode(sw1,INPUT);// Los pulsadores son entradaspinMode(sw2,INPUT);pinMode(led,OUTPUT);// El LED es una salida}voidloop(){// Al inicio del bucle almacenamos los valores de los pulsadoreslectura1=digitalRead(sw1);// Lectura digital: (1)lectura2=digitalRead(sw2);// Si los dos botones están pulsadosif(lectura1==HIGH&&lectura2==HIGH){// Los condicionales (2) (3)digitalWrite(led,HIGH);// Encendemos el LED}// En caso contrarioelse{digitalWrite(led,LOW);// Apagamos el led}}
El pulsador es una entrada digital. Por eso, leemos su estado con digitalRead y lo almacenamos en una variable. Si el pulsador está activo, la variable equivaldrá a HIGH, y si no lo está, su valor será LOW
Es importante poner dos iguales en las comparaciones, ya que un único igual impone la igualdad, mientras que dos indican que es una comparación
Los dos ampersand (&), funcionan como el operador lógico AND, por lo que la condición solo será verdadera si se cumplen las dos. También se puede escribir dos barras || para el operador lógico OR
Practica con lo aprendido
Ahora puedes probar a convertir la puerta AND del segundo ejemplo en una puerta OR, o en una NOR