AAA Ancora novizio chiede aiuto da esperti.
Ho gia' postato questo problema in altra sede ma purtroppo problema non risolto.
Sto cercando di azionare dei led per una scala interna utilizzando due sensori tipo PIR ( uno collocato in basso e l'altro in alto).
Vorrei che il sistema si azioni dopo che uno dei due PIR si attivi , i leds rimangano accesi e poi si spengano qundo l'atro sensore PIR si attivi.
Non vorrey utilizzare la funzione DELAY.
Qualcuno mi ha consigliato di utilizzare la dichirazione VERO/FALSO ma non so come implementarla nel codice.
Questo che ho postato funziona in parte , i leds tuttavia una volta accesi si spengono autonomamente , non so come modificarlo / correggerlo.
Se qualcuno puo' aiutarmi .
GRAZIE.
P.S.: i LEDS sono solo due solo come prova .
// Esempio 5: accensione di due led comandati da due pulsanti
// con ritardo di spegnimento di due secondi
#define led_1 13 // il pin 13 è usato per il LED
#define led_2 12 // il pin 12 è usato per il LED
#define PIR_pin2 2 // il pin 2 è usato per il sensore SUPERIORE
#define PIR_pin4 4 // il pin 3 è usato per il sensore INFERIORE
// Variabili
int in2 = 0;
int in4 = 0;
void setup() {
pinMode(led_1, OUTPUT);
pinMode(led_2, OUTPUT);
pinMode(PIR_pin2, INPUT);
pinMode(PIR_pin4, INPUT);
}
void loop()
{
in2 = digitalRead(PIR_pin2);
in4 = digitalRead(PIR_pin4);
if (in2== HIGH){ // sensore superiore attivato
digitalWrite(led_1, HIGH); // accensione LED 1
delay (500);
digitalWrite(led_2, HIGH); // accensione LED 2
delay (500); // ritardo di 2 sec
}
else
{
digitalWrite(led_1, LOW); // se il sensore non attivato LED spenti
delay (500);
digitalWrite(led_2, LOW);
delay (500);
}
if (in4 == HIGH){ // sensore inferiore attivato
digitalWrite(led_2, HIGH); // accensione LED 2
delay (500);
digitalWrite(led_1, HIGH); // accendere LED 1
delay (500); // ritardo
}
else
{
digitalWrite(led_2, LOW); // se il sensore inferiore non attivato LED spenti
delay (500);
digitalWrite(led_1, LOW);
delay (500);
}
}