#define sw1 2
#define sw2 4
#define out 5
#define numgate 16
int mode = 1;
void setup() {
pinMode(sw1, INPUT);
pinMode(sw2, INPUT);
pinMode(out, OUTPUT);
pinMode(numgate, INPUT);
Serial.begin(115200);
}
void loop() {
int i = digitalRead(numgate);
if(i == 1){mode++;
if (mode > 5) mode = 1;
}
switch (mode) {
case 1:
Serial.println("AND Gate");
if(digitalRead(sw1)== HIGH && digitalRead(sw2)== HIGH ){
digitalWrite(out, HIGH);}
else{digitalWrite(out, LOW);}
break;
case 2:
Serial.println("OR Gate");
if(digitalRead(sw1) == HIGH | digitalRead(sw2)== HIGH ){
digitalWrite(out, HIGH);}
else{digitalWrite(out, LOW);}
break;
case 3:
Serial.println("NOT Gate Swicth 1 only");
if(digitalRead(sw1)== HIGH){
digitalWrite(out, LOW);}
else{digitalWrite(out, HIGH);}
break;
case 4:
Serial.println("NAND Gate");
if(digitalRead(sw1) == HIGH && digitalRead(sw2)== HIGH ){
digitalWrite(out, LOW);}
else{digitalWrite(out, HIGH);}
break;
case 5:
Serial.println("NOR Gate");
if(digitalRead(sw1)== HIGH | digitalRead(sw2)== HIGH ){
digitalWrite(out, LOW);}
else{digitalWrite(out, HIGH);}
break;
}
delay(250);
}