Inserisco "4" nel seriale
imposta il valore int "mod" = 1
Inserisco "5" nel seriale
imposta mod = 0
Inserisco "6" nel seriale
Verifica se mod valga 0 o 1 e agisca in una determinata maniera
[...]
if (numero == '4'){ //4x4
digitalWrite(marcia, HIGH);
mod = 1;
}
if (numero =='5'){
digitalWrite(marcia, LOW); //no 4x4
mod = 0;
}
if (numero =='6'){
if(mod != 0){
digitalWrite(motas, HIGH);
digitalWrite(motad, HIGH);
digitalWrite(motps, HIGH);
digitalWrite(motpd, HIGH);
}
if(mod = 0){
digitalWrite(motps, HIGH);
digitalWrite(motpd, HIGH);
}
}
Ciao,
Ho appena letto il tuo codice.
Credo che tu possa usare al posto di un int o byte per dichiarare mod, un boolean, che può assumere solo due valori, vero o falso. Dopodiche credo che il tuo errore sia nell'ultimo if, in cui non devi fare un assegnazione:
if(mod = 0)
ma piuttosto devi comparare la variabile con un numero quindi la sintassi giusta è:
if(mod == 0)
poi ti ripeto che, per lo spezzone di sketch che hai postato, avrebbe un senso usare un boolean al posto di un qualsiasi altra dichiarazione. Spero di esserti stato di aiuto.
@epicmovie: Stai attento, rileggi bene il codice, hai commesso vari errori di logica causa posizionamento errato di alcune graffe, inoltre ti ricordo che la sintassi completa del IF è:
if (condizione) {
_viene_eseguito_se_vero_
}
else {
_viene_eseguito_se_falso_
}
... quindi inutile che fai un if (mod == true) ed un altro per if (mod == false) non ti pare ? Basterebbe :