ciao, sto cercando di migliorare il mio software ed avrei bisogno che al verificarsi di una determinata combinazione di stati (messi dentro ad un IF) , venga disabilitata per Xtempo la lettura di un pulsante, è fattibile?
questo il codice
if ((stato==2) and digitalRead(startcentrale)==0)
{
Serial.println ("prenotato");
}
la voce "prenotato" l'ho messa per capire tramite seriale se il ragionamento del codice è giusto, ma in quel pundo dovrei fare in modo che arduino ignori lo stato di un pulsante per 30 minuti
devi usare una variabile boolean (true o false) oppure un byte a cui assegni un valore o in cui alzi o abbassi un BIT preciso...che imposterai quando l'inibizione ha inizio e che verificherai nel tempo...se tempo scaduto resetti...ovviamente questa variabile la userai per inibire la lettura di un pulsante...o per forzarne ul valore a quello che vuoi...dipende come hai impostato lo sketch
acuplush:
ciao, sto cercando di migliorare il mio software ed avrei bisogno che al verificarsi di una determinata combinazione di stati (messi dentro ad un IF) , venga disabilitata per Xtempo la lettura di un pulsante
Una cosa del genere?
unsigned long holdTime = 0;
#define XTEMPO 10000 // 10 secondi
...
void loop() {
...
// Determina se il pulsante sia da bloccare
if ((stato==2) and digitalRead(startcentrale)==0)
{
holdTime = millis();
}
// Se siamo nel blocco e il tempo di blocco è terminato
if ( holdTime > 0 && millis() - holdTime > XTEMPO ) {
// Azzera il blocco
holdTime = 0;
}
// Ora se non c'è il blocco faccio quello che devo fare
if ( holdTime == 0 ) {
...
}
...