Come misuro il livello di un serbatoio d'acqua con un microcontrollore?
Come misuro il livello di un serbatoio d'acqua con un microcontrollore?
Risposte:
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.
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.)
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.
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).
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.
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.
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.
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.
----
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.
I miei due centesimi: http://www.circuitstoday.com/simple-water-level-idicator
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.
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)
Si prega di controllare il seguente link:
http://www.edgefxkits.com/contactless-liquid-level-controller
Penso che possa esserti utile.