buongiorno a tutti
Dopo aver risolto grazie ai vostri consigli la parte hardware del mio progetto, ho cominciato a scrivere la parte di codice.
Sono riuscito a far funzionare tutto tranne un pezzo.
In pratica mentre premo un tasto si deve accendere un led dopo un tot di tempo, aspetta ancora un po di tempo e fa accendere il secondo led.
al rilascio del tasto il primo led deve spegnersi e rimanere acceso solo il secondo.
Se premo nuovamente il tasto deve spegnersi il secondo led.
La prima parte sono più o meno riuscito a farla funzionare, non riesco a far spegnere il secondo led in nessun modo, saranno 15 giorni che ci sbatto la testa senza risultati.
#define rele 12
#define valv 11
#define start 9
long pausa =1000;
long tempotasto = 3000;
long tempospegnimento = 350;
long iniziotasto = 0;
int statorele = LOW;
int statovalvola = LOW;
int inmoto = LOW;
long statopausa = 0;
long statopausa1 =0;
void setup()
{
pinMode(rele, OUTPUT);
pinMode (valv, OUTPUT);
pinMode(9, INPUT);
Serial.begin(9600);
}
void loop(){
while((digitalRead(9) == HIGH)&& (inmoto== LOW)){ //comincia il primo rele ad accendersi
if(digitalRead(9) == HIGH){
statopausa=millis();
if(millis()>= pausa){
statovalvola=!statovalvola;
digitalWrite(valv,HIGH);
Serial.println("valvola");
}
}
else{
digitalWrite(valv,LOW);
}
if ((digitalRead(9) == HIGH) && (statovalvola == HIGH) && (statorele == LOW)){ // si accende anche il secondo
iniziotasto= millis();
if(millis() >= tempotasto){
digitalWrite(rele,HIGH);
statorele = !statorele;
Serial.println("RELEoooooooON");3
Serial.println(inmoto);
Serial.println(statomotorino);
Serial.println(statorele);
}
}
}
if (digitalRead(9) == LOW){
digitalWrite(valv,LOW);
}
if((digitalRead(9) == HIGH) && (statorele == HIGH)){
digitalWrite(rele,LOW);
statorele = !statorele;
il codice è un pò pasticciato visto le innumerevoli prove.
altra piccola cosa, se premo il tasto senza lasciarlo fa tutto diciamo giusto, se lo lascio e lo ripremo, non riparte a contare da 0 ma è come se tiene in memoria il tempo precedente e non fa tutta la routine di attesa.
Perdonatemi perchè avrò scritto un sacco di castronerie ma da autodidatta non sono riuscito a fare di meglio.
grazie