digitalWrite(v,0>20); // ventola disattivata
digitalWrite(r_1,0>20);//disattivo il relè (il cavo nero della pompa va al NC1, mentre il jumper nero va alla //(COM1)
digitalWrite(r_2,Fiamma<1); //controllo il sensore di fiamma e se è basso(fiamma accesa) allora scatta il relè
digitalWrite(l,1); //imposto il led a stato nullo
prima di sviscerarti con millis() devi aggiustare parti basilari del codice...
questo appena riportato non ha un "senso logico", o meglio potrebbe avere un senso logico diversamente interpretato dal compilatore!!!
il digitalWrite() presuppone due valori ovvero il pin sul quale andare in low o high, ed appunto il valore da attribuirgli. E' possibile sostituire questi valori con numeri, ma parliamo di 0=LOW ed 1=HIGH (non so se vale anche per false = LOW e true = HIGH, poi verifico buttando giù un semplice blink e ti farò sapere).
Tornando a quello che tu scrivi nel codice ha proprio dell'incomprensibile perché 0>20 sarà sempre ed esclusivamente false.
ed ancora Fiamma<1 //controllo ... :o non pensare che eseguirà quel digitalWrite() solo se Fiamma<1 perché non è così. Per quel che riesco ad intuire il compilatore, in quel caso, restituisce true o false attribuendo HIGH o LOW.
I controlli li puoi fare sostanzialmente in due modi: if/else e switch() case n.
credo che sia ben chiaro che non puoi fondere le istruzioni come stai facendo in questo momento.
se proprio vuoi controllare dovresti impostarlo indicativamente così.
switch (Fiamma) {
case 0:
//in caso di digitalRead(f) = 0
digitalWrite(r_2, 0); // corrispondente al digitalWrite(r_1, LOW);
break;
case 1:
// in caso di digitalRead(f) = 1
digitalWrite(r_2, 1); //corrispondente al digitalWrite(r_1, HIGH);
break;
default :
//qui puoi inserire quello che deve fare se non risponde ai requisiti di case 0 e case 1
break; //esci dallo switch
}
stessa cosa vale per r_1 e v.
se no anche il semplice debug con i led può essere un problema.
Il led che si accende con LOW è un grave problema. a rischio tanto fumo dall'mcu... :![]()