snap-read

Ho ideato il metodo snap-read per risolvere definitivamente, con qualche accorgimento a livello di firmware, ben quattro grandi problemi tipici dei sensori elettronici che lavorano a contatto con l'acqua:
  • il surriscaldamento;
  • la corrosione delle parti in rame immerse in acqua e connesse alla corrente, dovuta al fenomeno chimico dell'elettrolisi;
  • lo spreco di energia elettrica;
  • il passaggio continuo dallo stato HIGH allo stato LOW e viceversa quando i valori rilevati sono vicini alla soglia di attivazione/disattivazione.
N.B.: per migliorare ulteriormente la longevità dei sensori con parti in rame, che anche senza condurre corrente elettrica tendono a corrodersi nel lungo periodo, una buona pratica affrontata in un apposito post è la stagnatura delle piste in rame.

Ma adesso, vediamo nel dettaglio il metodo snap-read.

In realtà, molteplici sono i sensori destinati a lavorare a contatto con l'acqua e normalmente circolanti fra i makers; essi presentano normalmente sempre gli stessi limiti, rivelandosi praticamente infruibili o almeno inaffidabili. In questo articolo, vediamo nello specifico come ho applicato il mio metodo snap-read al più critico di questi sensori in assoluto, cioè quello del livello d'acqua, per integrarlo in coltivino senza andare incontro ad avarie e con un enorme risparmio energetico!

È parere comune che le "piste" in rame del sensore di livello acqua siano destinate a corrodersi per elettrolisi già in un paio di ore di immersione in acqua. Inoltre, il voltaggio consigliato dai produttori spesso va da 3,3V a 5V, ma se alimentato a 5V il sensore  raggiunge rapidamente temperature insostenibili e potrebbe bruciarsi ben prima che l'elettrolisi ne abbia deteriorato i contatti! La soluzione apparente potrebbe essere alimentarlo a 3,3V, ma anche così i problemi non tardano a presentarsi... quindi la soluzione non è abbassare il voltaggio. Impostando un lungo delay fra le letture ritarderemo la registrazione dei rilevamenti, ma non spegneremo il sensore, infatti potremo osservare che questo continuerà a surriscaldarsi, il LED integrato rimarrà sempre acceso e le piste in rame si corroderanno rapidamente come al solito! Per fermare il disastro, bisognerà spegnere del tutto il sensore. Ed è proprio così che funziona lo snap-read, una delle peculiarità di coltivino!

Per rendere possibile lo snap-read, non colleghiamo il + del sensore nè ai 3,3V nè ai 5V, bensì ad una DIGITAL OUTPUT di Arduino. Su questa uscita, comandiamo tramite firmware l'attivazione del circuito elettrico del sensore tramite stati HIGH e LOW. In questo modo, sfruttiamo una caratteristica nascosta (o almeno trascurata) di Arduino, ossia la tensione positiva a 5V presente nelle uscite digitali! La lettura del segnale sarà invece affidata a un INPUT analogico. Il GND del sensore può essere collegato normalmente a un pin GND di Arduino.


Probabilmente, l'unico modo per evitare di innescare il ben noto processo di elettrolisi a danno del sensore è ricorrere allo snap-read, evitando di mantenerlo acceso durante l'esecuzione del loop. Il sensore si accende per una frazione di secondo, rileva il dato necessario, lo conserva per l'impiego nelle funzioni e subito dopo si spegne. Prima della successiva lettura, il sensore dovrà attendere un delay sufficiente a raffreddarsi e a scongiurare il rischio di elettrolisi. Nello sketch di esempio che propongo a seguire, ho impostato dieci secondi di delay fra le letture. Queste ultime durano invece il tempo di uno schiocco di dita! Vediamo infatti il LED integrato nel sensore lampeggiare per un intervallo di tempo infinitesimale, poi fermarsi per il tempo del delay e solo allora lampeggiare di nuovo, come a tenere il tempo delle letture. Da qui il termine snap-read. Il refresh del dato di livello dell'acqua avrà una cadenza di dieci secondi, utile anche a permettere all'eventuale attuatore di ripristinare il livello idrico voluto, evitando l'inutile comando oscillante fra gli stati LOW e HIGH che verrebbe altrimenti inviato, in questo caso, al dispositivo preposto a irrorare acqua nel nostro sistema. È un po' quel accade nel caso del debouncing, quando si imposta una tolleranza sul tempo di rimbalzo di un pulsante a molla dopo la pressione di un dito.

L'ultimo vantaggio, non trascurabile, è la radicale diminuzione dell'assorbimento del sensore, che scende, nel caso del mio sketch, intorno al 2,5% di quanto consumerebbe restando perennemente acceso!


Nessun commento:

Posta un commento