Buongiorno a tutti e grazie anticipatamente per il tempo che mi dedicate,
Vorrei fare un combinatore che mi permetta di accendere un led solo se i 3 pulsanti vengono premuti nel giusto ordine e in un tempo prestabilito (6secondi).
Ho provato a cercare in rete ma ho trovato solo questo:
https://forum.arduino.cc/index.php?topic=144932.0
che però non tiene conto del tempo.
quindi ho scritto io un codice usando il comando millis() ma dopo 50giorni il tempo si azzera e temo possa dare problemi al codice che ho scritto.
potreste controllare se,secondo voi, va bene? Avete consigli?
grazie per l'aiuto
int t2, t3, t4, tempo;
void setup()
{
pinMode(6, OUTPUT);
pinMode(8, INPUT);
pinMode(9, INPUT);
pinMode(10, INPUT);
tempo = 0;
}
void loop()
{
t2 == 0; //imposto t2, t3 e t4 a zero
t3 == 0;
t4 == 0;
if (digitalRead(8) == HIGH and digitalRead(9) == HIGH and digitalRead(10) == HIGH) tempo == millis(); //premo i 3 pulsanti in contemporanea per fare partire il tempo
while ((tempo + 6000) > millis()) //da adesso ho 6 secodi per premeri i pulsanti nella giusta sequenza
{
if (t2 = 0)
{
if (digitalRead(8) == HIGH) t2 == millis(); //se premo 2 volte il pulsante collegato al pin 2 non succede nulla: è la prima risposta che conta
}
if (t3 = 0)
{
if (digitalRead(9) == HIGH) t3 == millis();
}
if (t4 = 0)
{
if (digitalRead(10) == HIGH) t4 == millis();
}
if (t2 > 0 and t3 > 0 and t4 > 0) //questa è la sequenza di pressione dei pulsanti
{
digitalWrite (6, HIGH); //il led collegato al pin 13 resta acceso per 3 secondi
delay(3000);
digitalWrite (6, LOW);
}
}
tempo = 0;
}