Livello di un serbatoio d'acqua con un microcontrollore


24

Come misuro il livello di un serbatoio d'acqua con un microcontrollore?


1
Non è una risposta degna, ma un mio amico ha fatto questo per un progetto artistico un paio di anni fa. Chiunque fosse interessato sarei felice di presentarti e sono sicuro che sarebbe felice di spiegare come ha fatto. Il suo progetto è finito qui: unixarts.com/sealevel.html Questo ha combinato sia le pompe che i sensori e ha richiesto una precisione sufficiente per fare il giro su e giù senza troppe inclinazioni
cyphunk

7
Quando il microcontrollore smette di funzionare, è sott'acqua.
John U,

Risposte:


23

Bene, supponendo che tu stia operando qui sulla terra (anziché in orbita), puoi usare un sensore a galleggiante che misuri usando il micro. La domanda è: hai bisogno di conoscere il livello esatto o hai solo bisogno di una sorta di viaggio quando arriva al livello massimo / minimo?

Sul tema "viaggio a livello specifico", puoi ottenere interruttori come questo - generalmente il galleggiante contiene una sorta di interruttore di rilevamento dell'atteggiamento. Quando il livello dell'acqua è più basso, il galleggiante finisce su un lato e l'interruttore è "spento", mentre l'innalzamento del livello forza il galleggiante in posizione verticale, e quindi "acceso". Questi sono spesso usati per le pompe di pozzetto. Sono abbastanza affidabili e molto facili da gestire, anche se devi stare attento ad ancorarli correttamente, e devi essere sicuro che nulla si frappone al galleggiante.

Se hai bisogno di conoscere il livello attuale, allora hai molte scelte, ma è meno semplice. Puoi andare con qualcosa come un sensore a ultrasuoni (il fascio di ultrasuoni che spara dalla parte superiore del serbatoio per riflettere il livello dell'acqua).

Questi ragazzi sembrano creare indicatori di livello per i GRANDI carri armati che consistono in un galleggiante e un peso esterno cablato insieme. Mentre il galleggiante scorre su e giù sul fluido, l'indicatore esterno si sposta in modo appropriato. Potresti costruire qualcosa di simile, con niente di più complicato delle fotocellule per leggere il livello (se si tratta di un grande serbatoio, o se vuoi molta granularità, avresti bisogno di molte fotocellule).

In alternativa, prendendo l'idea del galleggiante cablato, potresti mettere una ruota folle che si muove ogni volta che il cavo si muove, e quindi collegare un encoder a quello. Ciò ti consentirebbe di monitorare il livello con una precisione piuttosto elevata.


15

So che il libro di prossima uscita Practical Arduino ha incluso un progetto del sensore di profondità del serbatoio dell'acqua , che utilizza un trasduttore di pressione differenziale per misurare la pressione dell'acqua sul fondo del serbatoio e da quello per calcolare quanto è pieno il serbatoio.

Gli schemi si trovano sul link sopra, insieme a un link al codice sorgente su github.

(Divulgazione completa: non ho alcuna associazione con il libro, ma ho incontrato uno degli autori un paio di volte nei nostri spazi di hacker locali.)


11

Un metodo che mi piace, ma non ho provato è quello di mettere due piastre isolate nel liquido. Nessuna condanna, elettrolosi, contanimazione ....... Formano le placche di un cappuccio. e vengono utilizzati in una sorta di oscillatore (a scelta) Poiché l'acqua è un buon dialetrico, la fragranza dipende fortemente dalla quantità di acqua tra le piastre. Misura la frequenza per ottenere la profondità.

Potresti essere in grado di ottenere un risultato simile applicando un segnale ac e misurando la corrente attraverso il limite.


Mente, dipende molto dalla costante dialettica del fluido. A meno che non mi sbagli, il rilevamento capacitivo viene utilizzato più per il rilevamento di presenza / assenza che per il livello. Sembra quasi che ogni metodo che ho incontrato dipenda dal peso specifico, però. I serbatoi che contengono fluidi a composizione variabile sono difficili da regolare.
Wackyvorlon,

I sensori di livello del liquido basati sulla capacità funzionano meglio nel rilevare la presenza o l'assenza di fluido. Per leggere il livello dell'acqua, caricare / scaricare le piastre utilizzando un resistore fisso e misurare il tempo. Come accennato in precedenza, l'aggiunta di contaminanti all'acqua (come il sale) può causare un drastico cambiamento di capacità e quindi la lettura per un livello di liquido fisso. Se il liquido che si sta misurando è omogeneo, questo è molto meno un problema.
mjh2007,

Ho realizzato un oscillatore a dinatron con una semplice bobina SMD standardizzata che risuonava con piastre isolate come postulato da Russ. L'onda sinusoidale era quadrata e qualcun altro contava gli impulsi nel firmware, in altre parole ciò che Russ ha detto FUNZIONA.
Autistico,

10

Maggiori dettagli sarebbero d'aiuto, ma penso che il metodo ad ultrasuoni sia probabilmente il più semplice, concettualmente, comunque (da qui la necessità di maggiori dettagli: -]). Ho messo insieme un sensore di livello per il serbatoio dell'olio combustibile nel mio seminterrato usando un trasduttore ultrasonico MaxSonar. Sto passando a un sensore Parallax Ping, non appena riesco a metterne le mani su uno. L'unità MaxSonar ha dimostrato di essere un po 'una seccatura; risulta che ha solo una risoluzione di 2,54 cm, che equivale a quasi 7 galloni nel mio serbatoio. Ho inserito l'unità MaxSonar in un tappo di PVC nella parte superiore del serbatoio rivolto verso il basso (fuori dalla portata del liquido).


7

Un modo per farlo è posizionare un led nella parte inferiore del serbatoio che punta verso l'alto e un fotodiodo nella parte superiore del serbatoio, rivolto verso il LED. Il LED sarà attenuato dall'acqua nel serbatoio, dovrai sperimentare per determinare quanto. Inoltre, è meglio prendere una serie di misurazioni rapide e valutarle in media quando si utilizza questo metodo.


1
sembra molto soggetto a errori, luce ambientale, schizzi, ecc.
Jason S,

7

Uso un sensore a perno economico del negozio di ferramenta locale con un transistor fotografico per rilevare l'indicatore led. Con questo incollato sul lato del serbatoio rileva quando il livello sale sopra il sensore e ci avvisa di un'alta condizione dell'acqua.


6

Ci sono un numero sorprendente di modi per verificare il livello. Ci sono sensori che usano la RF, inviando un impulso lungo una guida d'onda e rilevando il riflesso sulla superficie del liquido nel serbatoio. Ci sono ultrasuoni, galleggianti, tubi di gorgogliamento, prese di pressione ... Il metodo usato dipende dalle dimensioni del serbatoio, dal contenuto, dall'ambiente circostante e da altri fattori.


4

Sono sorpreso da tutte le complicate soluzioni elettroniche qui, vorrei usare un semplice potenziometro. La maggior parte dei micro controller ha un i / p analogico di base.

 +V
-----
  |
  |
  /
  \
  /<----------> to analog i/p
  \
  |
  |
-----
 GND

Utilizzare un galleggiante standard per la valvola del serbatoio dell'acqua (potrebbe essercene già uno). Il problema rimanente è accoppiare il galleggiante al piatto per ottenere il massimo swing (potresti anche usare un piatto scorrevole).

                  |-|
                  | |
                  |o| <--------Slider pot.
                  |||
                  |||
                   |
                   |  <--------Coupling.
                   |
   ____            |
  (float)----------o-----o  <--Anchor point of float.
   ----

Come fai ad assicurarti che il piatto torni nella sua posizione originale?

Il peso del galleggiante lo abbassa quando il livello dell'acqua scende ...
ttt

Non ne sono così sicuro. Trovare il peso corretto del galleggiante in modo che galleggi in presenza di acqua e lasci cadere la pentola in assenza di acqua non è così facile. La maggior parte dei vasi ha un attrito statico abbastanza elevato. Immagino sia possibile, tuttavia, dato il giusto assetto meccanico.

Molte delle slider più lunghe hanno un attrito molto basso (utilizzato nei mixer e nei deck DJ controllati con la punta delle dita). Ho usato un cursore da 4 "dalla mia scatola dei pezzi e l'ho testato con un normale galleggiante per serbatoio d'acqua. Funzionava anche su un galleggiante per cisterne più piccolo! A proposito, avrei usato un resister fisso in serie con la pentola in modo che anche se in cortocircuito in un ambiente umido non supererà l'uscita di una porta del controller (o assorbirà troppa corrente da un Vref fisso). Ho usato un resister da 10k con un piatto da 10k nella mia configurazione di test.
ttt

Durante i test ho appena usato un pezzo di filo piegato per agganciarlo al braccio galleggiante. Nella cassetta della toilette il braccio è in plastica a sezione quadrata, quindi sarebbe davvero facile praticare un piccolo foro per realizzare l'attacco.
ttt,

4

Approccio più semplice

Posiziona un tubicino in un angolo del serbatoio di diametro leggermente maggiore rispetto a una pallina da ping pong.

Posiziona un LED a infrarossi su un lato del tubo e un fotoresistor opposto al LED (praticando un foro nel tubo del suo opaco o posizionandolo all'esterno se è trasparente). Colla a caldo le parti elettriche per impermeabilizzarle e far cadere la pallina da ping pong nel tubo.

Quando il livello dell'acqua si alza o si abbassa al punto in cui la pallina da ping pong rompe il raggio infrarosso, saprai che ha raggiunto il livello desiderato. Funziona se hai solo bisogno di un indicatore di livello discreto (acceso / spento).

Questo sistema viene utilizzato anche nelle pistole paintball progettate per impedire di tagliare le palle assicurando che l'intera palla sia nella camera di fuoco prima di consentire al grilletto elettronico di armare il solenoide di fuoco.

È semplice, efficace e richiede poca o nessuna calibrazione.



1

Un approccio più intelligente: sfruttare la maggiore conduttività termica dell'acqua (fluido). L'idea è quella di avere un sensore di temperatura e misurare la differenza del suo autoriscaldante quando è immerso e quando è in aria libera.


Questo in realtà è stato fatto in CHCH, Nuova Zelanda, dove sono, ma non l'ho fatto, penso che abbia circa 20 anni. C'era una fila di molti termistri all'esterno del serbatoio, quindi funziona bene quindi ottieni il mio voto.
Autistico,

1

Un'altra soluzione (nessun gioco di parole previsto);

Utilizzare un potenziometro come suggerito sopra. L'intervallo di rotazione normale è di 270 gradi. Collegare un galleggiante al potenziometro usando un braccio. (lunghezza = 1 unità)

Tra pieno e vuoto, il braccio si sposta di 90 gradi.

L'ADC su un PIC è di 256 o 1024 passi (sì, zero è un passo).

Userò 256 passaggi per chiarezza.

270 gradi = 256 passi ADC. 270/90 = 3 (un terzo dell'intervallo del potenziometro)
255/3 = 85 passi ADC

Programmare un codice per contrassegnare il punto 0 gradi (serbatoio vuoto) quando viene premuto un pulsante.

Ciò memorizza un punto di offset nella eeprom PIC. Ora il potenziometro non deve essere esattamente a zero perché questo punto di calibrazione può essere impostato.

Utilizzando la trigometria, calcolare una tabella di ricerca (suggerimento: script php) per corrispondere a ciascun passaggio dell'ADC.

Suggerimento: ogni passaggio ADC corrisponde a 90/85 = 1,0588 gradi.

Sì, avresti dovuto prestare maggiore attenzione durante le lezioni di matematica. stupida perdita di tempo allora, ora indispensabile. coinvolgere il cervello. imparare la trigonometria. insegnare agli altri.

Acronimo: il vecchio arabo portava un sacco pesante di fieno.

L'ipontenusa è la lunghezza del braccio del braccio. Renderlo lungo 1 unità. La tabella di ricerca fornisce quindi la percentuale della profondità del serbatoio. (moltiplicare per 100 ovviamente)


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.