La lettura del sensore analogico l'ha scritta torn24 (anche se senza calibrazione con uno strumento campione e senza un riferimento preciso e stabile credo che l'errore supererà il 5%).
La sequenza degli stati l'ho scritta io.
Il controllo del tempo suggerito in questo post alla fine l'ha scritto torn24.
Un esempio di funzione contenente alcune istruzioni ripetute in più punti l'ho scritto proprio nel post precedente a questo.
Si è detto più volte che la pressione potrebbe essere vantaggiosamente letta una sola volta prima dello switch/case, così da averla disponibile in chiaro in ogni case, ma va bene anche prima di ogni punto in cui serve usare il suo valore... e invece posti (di nuovo) una cosa come:
case GONFIAGGIO:
if(analogRead(A0)) { //leggo dal sensore
lettura = analogRead (A0);
pressione = map (lettura,0,1023,0,700000); //ottengo la pressione
}
else if(pressione >= 300){ //la confronto con il valore di mio interesse
digitalWrite(INTELVALEPIN, LOW); //fermo il gonfiaggio
digitalWrite(PUMPPIN, LOW);
digitalWrite(EXHAUSTVALVEPIN, LOW);
digitalWrite(LED, LOW);
Serial.print(pressione); //stampo a video il valore di pressione
//devo annotare il tempo a cui avviene la lettura
stato = PAUSA;
}
break;
che non ha alcun senso logico neppure se scritta con sintassi Python (anche i commenti non sono del tutto coerenti):
elif stato == GONFIAGGIO:
if analogRead(A0): ##leggo dal sensore
lettura = analogRead(A0)
pressione = map(lettura, 0, 1023, 0, 700000) ##ottengo la pressione
elif pressione >= 300: ##la confronto con il valore di mio interesse
digitalWrite(INTELVALEPIN, LOW) ##fermo il gonfiaggio
digitalWrite(PUMPPIN, LOW)
digitalWrite(EXHAUSTVALVEPIN, LOW)
digitalWrite(LED, LOW)
Serial.print(pressione) ##stampo a video il valore di pressione
##devo annotare il tempo a cui avviene la lettura
stato = PAUSA
Ora, io ho solo un diploma di maturità, attualmente faccio il magazziniere, ai miei tempi non esisteva proprio che qualcuno pensasse al posto mio risolvendomi magicamente ogni dettaglio. Se qualcosa non era chiaro lo rileggevo una settimana, provavo a metterlo in pratica, lo rileggevo due settimane, provavo a metterlo in pratica, lo rileggevo un mese, due mesi, soppesando ogni parola, cercando di capire cosa poteva voler dire di diverso da quello che credevo inizialmente, e cercando anche di capire se sbagliavo io o se era sbagliata la spiegazione (qualche volta capitava, oggi in rete capita molto di più). Quindi mi domando, manca qualcosa nelle nostre spiegazioni (che non sia lo scrivere tutto il codice già bello e pronto)?
DISCLAIMER: questa naturalmente vuole essere una critica costruttiva espressamente rivolta a un laureando in ingegneria informatica/biomedica. Se stessi parlando al ragazzino di terza media che fa qualche esperimento, o all'hobbysta della domenica privo di qualsiasi background tecnico, le cose potrebbero essere un pochino diverse, ma non troppo, perché lo scopo di questo forum non è quello di fare agratis i lavori agli altri