Buon Giorno, ho avuto la necessità di realizzare un circuito con dei tasti interbloccati con il seguente funzionamento: la selezione di un qualsiasi tasto esclude il funzionamento degli altri due, ritorna a riposo
premendo il reset.
Metto a disposizione questo sketch perchè non ho visto in rete qualcosa di simile con l'occasione vi chiedo di dare u'occhiata allo stesso per un vosto autorevole parere, ho ripreso da poco è sono "arrugginito", poichè tutto è perfettibile datemi eventuali consigli.
#define pgen 13 //pulsante 1
#define pqua 14 //pulsante 2
int pinv = 3; //pulsante 3
int pres = 4; //pulsante reset
int lrgen = 6; // led 1
int lrqua = 7; // led 2
int lrinv = 8; // led 3
int statolrgen = LOW; //stato led1
int statolrqua = LOW; //stato led2
int statolrinv = LOW; //stato led3
void setup() {
pinMode (lrgen, OUTPUT);
pinMode (lrqua, OUTPUT);
pinMode (lrinv, OUTPUT);
pinMode (pgen, INPUT);
pinMode (pqua, INPUT);
pinMode (pinv, INPUT);
pinMode (pres, INPUT);
}
void loop(){
// gestione tasti
if (digitalRead(lrqua) == HIGH && digitalRead(lrinv)==HIGH){
statolrgen = digitalRead(pgen);
}
if (statolrgen == HIGH){ // tasto1 premuto
digitalWrite(lrgen, LOW);
delay(40);
}
if (digitalRead(lrgen) == HIGH && digitalRead(lrinv)==HIGH){
statolrqua = digitalRead(pqua);
}
if (statolrqua == HIGH){ // tasto2 premuto
digitalWrite(lrqua, LOW);
delay(40);
}
if (digitalRead(lrgen) == HIGH && digitalRead(lrqua)==HIGH){
statolrinv = digitalRead(pinv);
}
if (statolrinv == HIGH){ // tasto3 premuto
digitalWrite(lrinv, LOW);
delay(40);
}
if (digitalRead(pres) == HIGH)// tasto reset premuto
{
digitalWrite (lrgen, HIGH);
digitalWrite (lrqua, HIGH);
digitalWrite (lrinv, HIGH);
}
}
Grazie a tutti voi.