Está en la página 1de 6

PROGRAMACION ARDUINO

LOGICA COMBINACIONAL PARA NAND NOR NOT y XOR

* Pines para seleccionar tipo de compuerta

* A0(a) A1(b)

* 0 0 XOR

* 0 1 NOT

* 1 0 NAND

* 1 1 NOR

*¨Pines para operaciones lógicas

* A2(c) A3(d) XOR NOT NAND NOR

*0 0 1 1 1 0

*0 1 1 0 1 1

*1 0 1 0 0 1

*1 1 0 0 0 0

*/

void setup() {

/*Salida para la combinación lógica*/

pinMode(2,OUTPUT); //Salida del led

pinMode(A0, INPUT_PULLUP);

pinMode(A1, INPUT_PULLUP);

pinMode(A2, INPUT_PULLUP);

pinMode(A3, INPUT_PULLUP);

digitalWrite(2,HIGH); //Se configura led como apagado

}
void loop() {

bool a = !digitalRead(A0);

bool b = !digitalRead(A1);

bool c = !digitalRead(A2);

bool d = !digitalRead(A3);

if(!a&&!b){//Compuerta NAND

if(!(c&&d)){

digitalWrite(2,LOW);//Al menos una de las entradas c y d están en LOW, Prende led

}else{

digitalWrite(2,HIGH);//En caso de que las dos estén en HIGH, apaga el LED

}else if(!a&&b){//Compuerta NOR

if(!(c||d)){

digitalWrite(2,LOW);//Entradas c y d están en LOW Prende led

}else{

digitalWrite(2,HIGH);//En caso de que al menos de las dos estén en HIGH apaga el LED

}else if(a&&!b){//Compuerta NOT

if(!c){

digitalWrite(2,LOW);//Entrada c está en LOW Prende led

}else{

digitalWrite(2,HIGH);//Entrada c está en HIGH Apaga led

}else{//Compuerta XOR

if(c^d){
digitalWrite(2,LOW); //Cuando c y d son diferentes enciende led

}else{

digitalWrite(2,HIGH); //Cuando c y d son iguales apaga led

También podría gustarte