Spørgsmål:
Niveau på en vandtank med en mikrocontroller
mad_z
2009-11-30 17:00:08 UTC
view on stackexchange narkive permalink

Hvordan måler jeg niveauet på en vandtank med en mikrocontroller?

Dette er ikke værd at være et svar, men en af ​​mine venner gjorde det for et kunstprojekt for et par år siden. Enhver interesseret, jeg vil gerne introducere dig, og jeg er sikker på, at han gerne vil forklare, hvordan han gjorde det. Hans projekt er her: http://unixarts.com/sealevel.html Dette kombinerede både pumper og sensorer og krævede tilstrækkelig nøjagtighed til at løkke op og ned uden for meget skævhed
Når mikrokontrolleren holder op med at arbejde - er den under vandet.
Tretten svar:
#1
+23
Michael Kohne
2009-11-30 17:45:43 UTC
view on stackexchange narkive permalink

Nå, forudsat at du opererer her på jorden (i modsætning til i kredsløb), kan du bruge en flydesensor, som du måler ved hjælp af mikro. Spørgsmålet er: Har du brug for at vide det nøjagtige niveau, eller har du bare brug for en slags tur, når den bliver for høj / lav?

På temaet "tur på specifikt niveau" kan du få switche som dette - generelt indeholder float en eller anden attitude-sensing-switch. Når vandstanden er lavere, ender svømmeren på siden, og kontakten er 'slukket', mens niveauet hæves tvinger svømmeren lodret og derfor 'tændt'. Disse bruges ofte til sumpumper. De er ret pålidelige og meget lette at håndtere, selvom du skal være forsigtig med at forankre dem korrekt, og du skal være sikker på, at intet kommer i vejen for svømmeren.

Hvis du har brug for at vide det faktiske niveau, så har du masser af valg, men det er mindre simpelt. Du kan gå med noget i retning af en ultralydssensor (ultralydsstråle skyder ned fra toppen af ​​tanken for at reflektere fra vandniveauet).

Disse fyre ser ud til at lave niveauindikatorer for BIG-tanke, der består af en svømmer og en ekstern vægt sammenkoblet. Når svømmeren kører op og ned på væsken, bevæger den eksterne indikator sig passende. Du kunne bygge noget lignende uden noget mere kompliceret end fotoceller til at læse niveauet (hvis det er en stor tank, eller hvis du vil have masser af granularitet, skal du bruge en masse fotoceller).

Hvis du tager den kablede flydeide, kan du alternativt sætte et tomgangshjul, der bevæger sig, når kablet bevæger sig, og derefter vedhæfte en kode til det. Dette giver dig mulighed for at spore niveauet med temmelig høj nøjagtighed.

#2
+15
Evan
2009-12-01 04:59:42 UTC
view on stackexchange narkive permalink

Jeg ved, at den snart udgivne bog Praktisk Arduino har et vandtankdybdesensor projekt, der bruger en differenstryktransducer til at måle vandtrykket ved bunden af ​​tanken og derfra for at beregne, hvor fuld tanken er.

Skemaer er på ovenstående link sammen med et link til kildekoden på github.

(Fuld afsløring: Jeg har ingen tilknytning til bogen, men har mødt en af ​​forfatterne et par gange på vores lokale hackerspace.)

#3
+11
russ_hensel
2009-11-30 21:04:00 UTC
view on stackexchange narkive permalink

En metode, som jeg kan lide, men ikke har prøvet, er at sætte to isolerede plader i væsken. Ingen kondition, elektrolose, kontanimering ....... De danner pladerne på en hætte. og bruges i en slags oscillator (valg op til dig) Fordi vand er en god dialetri, afhænger frekvensen stærkt af mængden af ​​vand mellem pladerne. Mål frekvensen for at få dybden.

Du kan muligvis få et lignende resultat ved at anvende et vekselstrømssignal og måle strømmen gennem hætten.

Husk, det afhænger meget af væskens dialektriske konstant. Medmindre jeg tager fejl, bruges kapacitiv sensing mere til påvisning af tilstedeværelse / fravær end niveau. Det ser ud til, at næsten enhver metode, jeg er stødt på, afhænger af den specifikke tyngdekraft. Beholdere med væsker med variabel sammensætning er svære at regulere.
De kapacitansbaserede væskestandssensorer fungerer bedst til at detektere tilstedeværelse eller fravær af væske. For at aflæse vandstandsopladningen / aflade pladerne ved hjælp af en fast modstand og måle tiden. Som nævnt ovenfor kan tilsætning af forurenende stoffer til vandet (som salt) forårsage en drastisk ændring i kapacitans og derfor din aflæsning for et fast væskeniveau. Hvis væsken, du måler, er homogen, er dette meget mindre af et problem.
Jeg lavede en Dynatron-oscillator med en simpel SMD-spole fra hylden, der resonerede med isolerede plader som russ postuleret. Sinusbølgen blev kvadreret op, og nogen anden tællede impulser i firmware, med andre ord, hvad russ sagde FUNGERER.
#4
+10
blalor
2009-11-30 23:35:04 UTC
view on stackexchange narkive permalink

Flere detaljer vil hjælpe, men jeg tror, ​​at ultralydsmetoden sandsynligvis er den enkleste, konceptuelt, alligevel (deraf behovet for flere detaljer: -]). Jeg smed en niveausensor til brændselsolietanken i min kælder ved hjælp af en MaxSonar ultralydstransducer. Jeg skifter til en Parallax Ping-sensor, så snart jeg kan få fat i en. MaxSonar-enheden har vist sig at være lidt smertefuld; viser sig, at den kun har en opløsning på 2,54 cm, hvilket svarer til næsten 7 liter i min tank. Jeg satte MaxSonar-enheden i en PVC-hætte øverst på tanken, der pegede nedad (uden for væskens rækkevidde).

#5
+7
Some guy
2009-11-30 17:56:22 UTC
view on stackexchange narkive permalink

En måde at gøre dette på er at placere en led i bunden af ​​tanken, der peger mod toppen, og en fotodiode øverst på tanken mod LED. LED'en dæmpes af vandet i tanken, du skal eksperimentere for at bestemme, hvor meget. Det er også bedst at tage en række hurtige målinger og gennemse dem, når du bruger denne metode.

virker meget tilbøjelig til fejl, omgivende lys, sloshing osv.
#6
+7
John D
2009-12-02 00:45:21 UTC
view on stackexchange narkive permalink

Jeg bruger en billig studssensor fra den lokale hardwarebutik med en fototransistor til at registrere indikatorledningen. Med dette limet til siden af ​​tanken, mærker det, når niveauet stiger over sensoren og advarer os om en høj vandtilstand.

#7
+6
wackyvorlon
2009-11-30 21:03:50 UTC
view on stackexchange narkive permalink

Der er et overraskende antal måder at kontrollere niveauet på. Der er sensorer, der bruger RF, sender en puls ned ad en bølgeleder og registrerer refleksion fra overfladen af ​​væsken i tanken. Der er ultralyd, flyde, boblerør, trykhaner ... Den anvendte metode afhænger af tankens størrelse, indholdet, det omgivende miljø og andre faktorer.

#8
+4
ttt
2010-04-29 14:13:50 UTC
view on stackexchange narkive permalink

Jeg er overrasket over alle de komplicerede elektroniske løsninger her, jeg bruger et simpelt potentiometer. De fleste mikrocontrollere har en grundlæggende analog i / p.

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

Brug en standard vandtankventilflåde (der kan allerede være en). Det resterende problem er at koble flyderen til puljen for at få maksimal svingning (du kan også bruge en skyderpotte).

  | - | | | | o | < -------- Skydegryde. ||| ||| | | < -------- Kobling. | ____ | (flyde) ---------- o ----- o < - Flydepunkt for anker. ----  
Hvordan sørger du for, at puljen går tilbage til sin oprindelige position?
Flyderens vægt trækker den ned, når vandstanden falder ...
Ikke så sikker på det.Det er ikke så let at finde den korrekte vægt af svømmeren, så den flyder i nærvær af vand og taber gryden i fravær af vand.De fleste gryder har en forholdsvis høj statisk friktion.Jeg antager, at det dog er muligt i betragtning af den rigtige mekaniske opsætning.
Mange af de længere skyderpotter har meget lav friktion (bruges i fingerspidsstyrede mixere og DJ-dæk).Jeg brugte en 4 "-skyder fra min bitskasse og testede den med en normal vandtankflåd. Den fungerede endda på en mindre toiletcisterneflåd! Forresten vil jeg bruge en fast modstand i serie med puljen, så selvom den kortslutter i et vådt miljø, overskrider den ikke output fra en controllerport (eller trækker for meget strøm fra en fast Vref).Jeg brugte en 10k-resistent med en 10k-pot i min testopsætning.
Under testningen brugte jeg bare et stykke bøjet ledning til at låse fast på svømmerarmen.I toiletcisternen er armen af firkantet plastik, så det ville være meget let at bore et lille hul for at gøre vedhæftet fil.
#9
+4
Evan Plaice
2010-11-07 08:59:03 UTC
view on stackexchange narkive permalink

Enkleste tilgang

Anbring et lille rør i et hjørne af tanken, der er lidt større i diameter end en bordtenniskugle.

Anbring en infrarød LED på den ene side af røret og en fotoresistor modsat LED'en (ved at bore et hul i røret på det er uigennemsigtigt eller placere på ydersiden, hvis det er gennemsigtigt). Lim de elektriske dele varmt, så de er vandtætte, og slip bordtenniskuglen i røret.

Når vandniveauet hæves eller sænkes til det punkt, at bordtennisbolden bryder den infrarøde stråle, ved du, at den rammer det ønskede niveau. Dette fungerer, hvis du bare har brug for en diskret (on / off) niveauindikator.

Dette system bruges også i paintball-pistoler designet til at forhindre dig i at hugge kugler ved at sikre, at hele kuglen er i affyringskammeret før tillader den elektroniske udløser at aktivere fyringssolenoiden.

Den er enkel, effektiv og kræver ringe eller ingen kalibrering.

#11
+1
mazurnification
2010-10-06 16:27:46 UTC
view on stackexchange narkive permalink

Endnu en smart tilgang: Brug vandets større varmeledningsevne (væske). Ideen er at have temperatursensor og måle forskellen på dens egenopvarmning, når den er nedsænket, og når den er i fri luft.

Dette er faktisk gjort i CHCH New Zealand, hvor jeg er, men jeg gjorde det ikke, jeg tror, det er omkring 20 år gammel. Der var en række mange termister på ydersiden af tanken. Så det fungerer OK, så du får min stemme.
#12
+1
Rikkitikki
2012-03-19 15:18:28 UTC
view on stackexchange narkive permalink

En anden løsning (ingen ordspil beregnet);

Brug et potentiometer som foreslået ovenfor. Det normale rotationsområde er 270 grader. Fastgør en svømmer til potentiometeret ved hjælp af en bomarm. (længde = 1 enhed)

Mellem fuld og tom bevæger bomarmen sig 90 grader.

ADC'en på en PIC er enten 256 eller 1024 trin (ja, nul er et trin ).

Jeg bruger 256 trin for klarhedens skyld.

270 grader = 256 ADC-trin. 270/90 = 3 (en tredjedel af potentiometerområdet)
255/3 = 85 ADC-trin

Programmer en kode til at markere 0 gradspunktet (tank tom), når der trykkes på en knap.

Dette gemmer et forskudt punkt i PIC-eeprom. Nu behøver potentiometeret ikke at være nøjagtigt nul, fordi dette kalibreringspunkt kan indstilles.

Brug trigometri til at beregne en opslagstabel (tip: php-script), der svarer til hvert trin i ADC.

Tip: hvert ADC-trin svarer til 90/85 = 1.0588 grader.

Ja, du skulle have været mere opmærksom i matematikklassen. dumt spild af tid dengang, uundværlig nu. engagere hjerne. lære trigonometri. undervise andre.

Forkortelse: Den gamle araber bar en tung sæk hø.

Hypontenuse er længden af ​​bomarmen. Gør det 1 enhed langt. Opslagstabel giver derefter procentdel af tankdybde. (gang naturligvis med 100)

#13
  0
Rakesh
2013-02-24 12:33:24 UTC
view on stackexchange narkive permalink

Kontroller venligst følgende link:

http://www.edgefxkits.com/contactless-liquid-level-controller

Jeg synes det kan være nyttigt for dig.



Denne spørgsmål og svar blev automatisk oversat fra det engelske sprog.Det originale indhold er tilgængeligt på stackexchange, som vi takker for den cc by-sa 2.0-licens, den distribueres under.
Loading...