Salve a tutti è la prima volta che scrivo, ho un problema in uno sketch e sono diversi giorni che non riesco a trovare una soluzione.
Lo scopo del progetto è quello di avere 2 sequenze di accensione e 2 sequenze di spegnimento di 8 relè, per richiamare le 4 sequenze avrò 4 pulsanti ognuno corrispondente a una sequenza; premendolo dovrebbe richiamarla ma se i relè sono spenti e premo il pulsante relativo ad una sequenza si spegnimento non mi deve accadere niente. Ovvero se sono nella fase in cui ho i relè sono accessi mi devono funzionare solo i due pulsanti di spegnimento o viceversa se sono nella fase in cui ho i relè sono spenti mi devono funzionare solo i due pulsanti di accensione. Ma ancora purtroppo non riesco ad escludere i pulsanti come descritto sopra. Via allego lo sketch e vi dico che sono con un arduino mega.
Vi ringrazio in anticipo!!
const int buttonPin1 = 50;
const int buttonPin2 = 51;
const int buttonPin3 = 52;
const int buttonPin4 = 53;
int buttonState1;
int buttonState2;
int buttonState3;
int buttonState4;
unsigned inputVariable = 100;
void apertura1()
{delay (100);
digitalWrite(22,LOW);
delay(100);
digitalWrite(23,LOW);
delay(100);
digitalWrite(24,LOW);
delay(100);
digitalWrite(25,LOW);
delay(100);
digitalWrite(26,LOW);
delay(100);
digitalWrite(27,LOW);
delay(100);
digitalWrite(28,LOW);
delay(100);
digitalWrite(29,LOW);
}
void apertura2()
{delay (200);
digitalWrite(22,LOW);
digitalWrite(23,LOW);
digitalWrite(24,LOW);
digitalWrite(25,LOW);
digitalWrite(26,LOW);
digitalWrite(27,LOW);
digitalWrite(28,LOW);
digitalWrite(29,LOW);
}
void chiusura1()
{delay (200);
digitalWrite(22,HIGH);
delay(200);
digitalWrite(23,HIGH);
delay(400);
digitalWrite(24,HIGH);
delay(300);
digitalWrite(25,HIGH);
delay(200);
digitalWrite(26,HIGH);
delay(600);
digitalWrite(27,HIGH);
delay(400);
digitalWrite(28,HIGH);
delay(600);
digitalWrite(29,HIGH);
}
void chiusura2()
{delay (200);
digitalWrite(22,HIGH);
digitalWrite(23,HIGH);
digitalWrite(24,HIGH);
digitalWrite(25,HIGH);
digitalWrite(26,HIGH);
digitalWrite(27,HIGH);
digitalWrite(28,HIGH);
digitalWrite(29,HIGH);
}
void setup() {
pinMode(buttonPin1, INPUT);
pinMode(buttonPin2, INPUT);
pinMode(buttonPin3, INPUT);
pinMode(buttonPin4, INPUT);
pinMode(22, OUTPUT); //RELE
pinMode(23, OUTPUT); //RELE
pinMode(24, OUTPUT); //RELE
pinMode(25, OUTPUT); //RELE
pinMode(26, OUTPUT); //RELE
pinMode(27, OUTPUT); //RELE
pinMode(28, OUTPUT); //RELE
pinMode(29, OUTPUT); //RELE
}
void loop() {
buttonState1 = digitalRead(buttonPin1);
buttonState2 = digitalRead(buttonPin2);
buttonState3 = digitalRead(buttonPin3);
buttonState4 = digitalRead(buttonPin4);
if (buttonState1 == HIGH && inputVariable == 98)
{inputVariable = 100;
apertura1();
}
if (buttonState2 == HIGH && inputVariable == 98)
{ inputVariable = 100;
apertura2();
}
if (buttonState3 == HIGH && inputVariable == 100)
{ inputVariable = 98;
chiusura1();
}
if (buttonState4 == HIGH && inputVariable == 100 )
{ inputVariable = 98;
chiusura2();
}
}