Ciao,
attraverso la pressione di un pulsante devo far ciclare la lettura di quattro funzioni (rpm, temp,voltage, data e ora). E in effetti, in tal senso è ok. Questo il codice:
StatoPulsante = digitalRead(BUTTON); // legge il valore del BUTTON e lo conserva
if (StatoPulsante != StatoPulsantePrecedente) { // compara lo stato del pulsante attuale con il precedente
if (StatoPulsante == HIGH) { // se lo stato è cambiato incrementa il contatore
// se lo stato corrente è alto, il pulsante è passato da off a on
ContatorePulsantePremuto++;
if (ContatorePulsantePremuto == 1) { // controlla se il pulsante è stato premuto una volta
Serial.println("rpm e ora"); // stampa sulla console "rpm e ora"
}
if (ContatorePulsantePremuto == 2) { // controlla se il pulsante è stato premuto due volte
Serial.println("temperatura"); // stampa sulla console "temperatura"
}
if (ContatorePulsantePremuto == 3) { // controlla se il pulsante è stato premuto tre volte
Serial.println("voltage"); // stampa sulla console "voltage"
}
if (ContatorePulsantePremuto == 4) { // controlla se il pulsante è stato premuto quattro volte
Serial.println("data e ora"); // stampa sulla console "data e ora"
}
}
Avendo terminato il codice del partitore di tensione l'ho implementato in uno sketch "globale" con quello di cui sopra. In effetti ciclando, lo schermo mi stampa correttamente il valore di tensione di una batteria da 12V. Perfetto!
Io vorrei, e qui viene il complicato, per me, aggiungere una condizione else e and a questa parte:
if (ContatorePulsantePremuto == 3) { // controlla se il pulsante è stato premuto tre volte
Serial.println("voltage"); // stampa sulla console "voltage"
}
cioè vorrei che se il dato letto fosse <= di 12.20V, sullo schermo venisse stampato oltre al valore di "voltage" un messaggio del tipo "LOW". Io ho pensato a questo codice con l'utilizzo dell'else e dell'and:
else (ContatorePulsantePremuto == 3 && voltage<=12.20)
Serial.println("voltage""LOW");
ma l'IDE mi da dei messaggi d'errore circa le precedenze di parentesi. Non riesco a capire dove sbaglio. Potete aiutarmi?
Grazie