#include "urutils.h"
int led = 21;
int porta = 5;
int dentro = 2;
int aperto = 0;
int a0 = LOW;
DiffTimer debt;
void setup()
{
Serial.begin(115200);
pinMode(led, OUTPUT);
pinMode(porta, INPUT);
pinMode(dentro, INPUT);
pinMode(aperto, INPUT);
}
void loop ()
{
if (digitalRead(porta)) {// polling livello
Serial.println("fronte di salita");
debt.start(); // fronte mediante singleton
}
if (debt.get() > 50 && digitalRead(porta) == LOW) { // disarmo del timer al timeout
debt.stop(); // disarmo del timer
debt.reset();
Serial.println("fronte di discesa");
if (digitalRead(dentro))
{
digitalWrite(led, HIGH);
Serial.println("il topo in gabbia");
} else {
Serial.println("il topo è furbo");
digitalWrite(led, LOW);
}
}
if (digitalRead(aperto) == HIGH)
{
waitUntilInputLow(aperto, 50);
Serial.println("la gabbia è aperta");
digitalWrite(led, LOW);
}
delay(10);
}
Loading
esp32-devkit-c-v4
esp32-devkit-c-v4
btn1:1.l
btn1:2.l
btn1:1.r
btn1:2.r
btn3:1.l
btn3:2.l
btn3:1.r
btn3:2.r
r1:1
r1:2
r2:1
r2:2
r3:1
r3:2
r4:1
r4:2
led1:A
led1:C
sw1:1
sw1:2
sw1:3