Controllare il livello dell'acqua in un serbatoio
Un'applicazione di Arduino per regolare il livello dell'acqua tra due serbatoi distanti

Problema:
Un serbatoio da circa 3500 litri (S1) č collegato con un tubo lungo circa 500 m ad una pompa che pesca l'acqua in un altro serbatoio (S2) di circa la stessa capacitŕ. Quest'ultimo serbatoio č riempito da un altro impianto. La pompa viene spenta da un sensore galleggiante quando il livello in S2 č al minimo. Non esistono invece sistemi per spegnere la pompa quando il serbatoio S1 č pieno.
Non esiste alcun collegamento elettrico tra i due serbatoi.
Si vuole controllare la pompa sulla base del livello di S1 in modo che si accenda quando questo č quasi vuoto e si spenga quando č pieno pur lasciando il controllo di minimo su S2. Vale a dire che la pompa si deve fermare comunque quando il sensore in S2 č al minimo.

Soluzione:
Ho usato un telecomando TX/RX nella banda 869 MHz con potenza di trasmissione di 500 mW, che arriva fino a 1 km e oltre.
Il trasmettitore č posto in prossimitŕ di S1 e il ricevitore in S2.
TX č in grado di trasmettere un segnale codificato per lo spegnimento e uno per l'accensione.
RX eccita un relč quando riceve il segnale di accensione e lo diseccita quando riceve quello di spegnimento.
Il relč di RX comanda un secondo relč che alimenta il quadro elettrico della pompa (trifase). Cosě che la pompa puň funzionare solo quando RX riceve il segnale di accensione; la pompa perň č comunque spenta dal sensore di minimo posto in S2.

In S1 viene messo un sensore di livello continuo, in grado cioč di misurare non solo il minimo e massimo ma anche livelli intermedi. Questo consente di verificare se la pompa sia accesa, in quanto il sensore si accorge che il livello sta variando.
Si vuole infatti evitare di tenere acceso il relč di RX anche se la pompa č spenta per mancanza di acqua in S2. In questo caso il sistema si deve mettere in stand-by e riprovare dopo un certo tempo.

Il sensore di livello in S1 č costruito usando circa 20 reed relč magnetici che si chiudono quando gli passa d'avanti un galleggiante con magnete. Lo schema elettrico del sensore č quello in figura.
I relč non fanno altro che collegare all'uscita punti diversi di un partitore di tensione costituito dalle resistenze R, tutte dello stesso valore (470 ohm). In uscita quindi si ha una tensione compresa tra 0 e +Vcc, proporzionale al livello del galleggiante. La resistenza R2 (22 kohm) serve a mantenere a massa l'uscita quando nessun interruttore č chiuso.

Il grafico mostra la proporzionalitŕ tra l'altezza del livello dell'acqua e l'uscita in digitale del partitore, una volta collegato il sensore ad un ingresso analogico di Arduino.
Sono necessarie alcune accortezze nella programmazione della scheda, infatti lo stato del sensore di livello puň anche essere 0, quando il galleggiante č in una posizione intermedia tra due reed relč senza far scattare nč l'uno nč l'altro. In questo caso bisogna attendere un certo tempo per vedere se il galleggiante si sposta.
(Continua...)