const int sw0 = 25;
const int sw1 = 26;
const int sw2 = 27;
const int led0 = 18;
const int led1 = 17;
const int led2 = 16;
bool ack0 = false;
bool ack1 = false;
bool ack2 = false;
bool out0 = false;
bool out1 = false;
bool out2 = false;
void setup() {
// put your setup code here, to run once:
pinMode(sw0, INPUT_PULLUP);
pinMode(sw1, INPUT_PULLUP);
pinMode(sw2, INPUT_PULLUP);
pinMode(led0, OUTPUT);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
Serial.begin(115200);
Serial.println("Hello, ESP32!");
}
void loop() {
ack0 = !digitalRead(sw0);
ack1 = !digitalRead(sw1);
ack2 = !digitalRead(sw2);
if (!ack0) {
out0 = false;
out1 = false;
out2 = false;
digitalWrite(led0, LOW);
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
return;
}
if (ack0) {
out0 = true;
} else {
out0 = false;
}
if (ack1 && !out2) {
out1 = true;
out2 = false;
} else {
out1 = false;
}
if (ack2 && !out1) {
out1 = false;
out2 = true;
} else {
out2 = false;
}
digitalWrite(led0, out0 ? HIGH : LOW);
digitalWrite(led1, out1 ? HIGH : LOW);
digitalWrite(led2, out2 ? HIGH : LOW);
Serial.print(ack1);
Serial.print("/");
Serial.print(ack2);
Serial.print(" -- ");
Serial.print(out1);
Serial.print("/");
Serial.println(out2);
delay(100); // this speeds up the simulation
}