Innholdsfortegnelse:
- Trinn 1: Matematikken …
- Trinn 2: Praktiske ting
- Trinn 3: Ingrediensene
- Trinn 4: Testing av prototypen (og koden)
- Trinn 5: Rainwater Gauge Ino Sketch
- Trinn 6: Laste kode til en Arduino Pro Mini (uten USB)
- Trinn 7: Montering
- Trinn 8: Den ferdige artikkelen
- Trinn 9: Etterskrift - hundre (og fem) prosent?
- Trinn 10: Ettertanke
Video: Ultralyd regnvannstankmåler: 10 trinn (med bilder)
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:24
Hvis du ligner på meg og har litt av en miljøsamvittighet (eller bare er hudfarger som er ivrige etter å spare noen få dollar - som også er meg …), kan du ha en regnvannstank. Jeg har en tank for å høste det ganske sjeldne regnet vi får i Australia - men gutt, gutt, når det regner her, regner det VIRKELIG! Tanken min er omtrent 1,5 meter høy og ligger på en sokkel, noe som betyr at jeg må gå ut trinnene for å sjekke vannivået (eller - fordi jeg er så lat, balanserer usikkert på toppen av en gammel gassflaske fra grillen som nå har tatt permanent opphold som et "trinn" ved siden av tanken).
Jeg ønsket en måte å kunne sjekke vannivået i tanken, uten å klatre og henge på avløpsrøret med én hånd (mens du bekymrer deg for hvilke edderkopper som kan ligge bak det - du har hørt om australske edderkopper - ikke sant?) … Så, med en fornyet sent i livet interesse for elektronikk og billige Arduino -kloner fra Kina på eBay, bestemte jeg meg for å prøve å bygge en “widget” for å gjøre jobben for meg.
Nå var min 'drøm' -widget å bli permanent installert i tanken, bruke en ladet strømkilde, med en ekstern avlesning i garasjen min, eller kanskje en trådløs sender ved hjelp av Bluetooth som jeg kunne sjekke fra telefonen min, eller kanskje til og med en ESP -type enhet som er vert for en automatisk oppdatert webside, slik at jeg kan sjekke vannivået i tanken min fra hvor som helst i verden over internett … men egentlig - hvorfor trenger jeg alt det? Så jeg ringte mine store idealer tilbake litt (vel, ganske betraktelig), og gjorde opp med løsningens trådløshet, permanent installasjon, solar lading og muligheten til å kontrollere tankens nivå fra bakenden av utover (alltid forutsatt at back end of beyond har WiFi tilgjengelig, det vil si …)
Det resulterende prosjektet ble nedgradert til den håndholdte enheten sett ovenfor, som enkelt kan holdes over åpningen av tanken og aktiveres med en trykknapp, med en digital avlesning, som kan leses fra bakkenivå - langt mer praktisk.
Trinn 1: Matematikken …
Etter å ha lekt med flere ideer om hvordan jeg bestemmer vannivået - bestemte jeg meg for en ultralydsender/mottaker som grunnlag for min widget, og brukte en Arduino til å ta avlesningene og gjøre alle matematikkene. Målingene som returneres fra sensoren er (indirekte) i form av en avstand - fra ultralydssensoren til overflaten den har hoppet av (vannoverflaten - eller bunnen av tanken, hvis den er tom), og tilbake igjen, så vi trenger å gjøre noen ting med dette, for å komme til en prosentandel som er igjen i tanken.
NB - faktisk er verdien som returneres fra sensoren egentlig bare tiden det tar for signalet å forlate sendersiden og gå tilbake til mottakeren. Dette er i mikrosekunder - men å vite lydens hastighet er 29 mikrosekunder per cm (hva? Du visste ikke det? Pfft …) gjør en enkel konvertering fra en tidsperiode til en avstandsmåling.
Først - selvfølgelig må vi dele avstanden med 2 for å få sensoren til overflateavstand. Trekk deretter den konstante avstanden fra sensoren til "maks" vanndybde. Den gjenværende verdien er vanndypet som er brukt. Deretter trekker du denne verdien fra maksimal vanndybde for å finne dybden på vannet som er igjen i tanken.
Denne verdien er grunnlaget for andre beregninger, for eksempel å beregne denne vanndypet som en prosentandel av maksimal dybde, eller multiplisere dybden med det konstante 'overflatearealet' for å få et volum vann som kan vises i liter (eller gallon eller hvilken som helst annen enhet - så lenge du kan matematikken for å gjøre det - holder jeg meg til en prosentandel for enkelhets skyld).
Trinn 2: Praktiske ting
Enheten kan holdes i hånden, men dette introduserer en liten mulighet for mindre unøyaktigheter hvis enheten ikke holdes på samme sted, og i samme vinkel hver gang. Selv om det bare ville være en veldig liten feil, og sannsynligvis ikke en gang som ville registrere seg, ville det være den typen ting som niggled bort til meg.
Imidlertid introduserer det å være håndholdt den mye større muligheten for at den forbannede tingen kommer ned i tanken og aldri blir sett igjen. Så for å dempe begge disse mulighetene, vil det bli festet på en lengde av tre, som deretter plasseres over tankåpningen - slik at målingen tas fra nøyaktig samme høyde og vinkel hver gang (og hvis den ER falt i tank, i det minste vil treet flyte).
En trykknapp aktiverer enheten (og eliminerer dermed behovet for en av/på -bryter, og muligheten for et utilsiktet flatt batteri), og skyter opp skissen i Arduino. Dette tar en rekke avlesninger fra HC-SR04, og tar gjennomsnittet av dem (for å dempe eventuelle uregelmessige avlesninger).
Jeg inkluderte også litt kode for å se etter høy eller lav på en av Arduino digitale I/O -pinner, og bruk den til å sette enheten i det jeg kalte 'Kalibrering' -modus. I denne modusen viser displayet ganske enkelt den faktiske avstanden (delt på 2) returnert av sensoren, så jeg kunne kontrollere nøyaktigheten av den mot et målebånd.
Trinn 3: Ingrediensene
Enheten består av tre hovedkomponenter …
- En ultralydsender/mottakermodul HC-SR04
- En Arduino Pro Mini mikrokontroller
- En firesifret 7 -segmenters LED -display eller skjermmodul, for eksempel TM1637
Alt det ovennevnte finner du enkelt på ebay ved å lete etter vilkårene som vises med fet skrift.
I denne applikasjonen bruker displayet ganske enkelt 3 sifre for å vise en % verdi på 0-100 eller 4 sifre for å vise antall liter (maks 2000 i mitt tilfelle), så en firesifret skjerm vil gjøre - du trenger ikke å bekymre deg for om modulen har desimaltegn eller kolon. En "modul" -skjerm (LED montert på et utbruddskort, med en grensesnittbrikke) er enklere, ettersom den bruker færre pin -tilkoblinger, men en rå LED -skjerm med 12 pinner kan plasseres av Arduino med noen små modifikasjoner av koden (mitt originale design var faktisk basert på dette oppsettet). Vær imidlertid oppmerksom på at bruk av en rå LED -skjerm også krever 7 motstander for å begrense strømmen som trekkes av hvert segment. Jeg hadde tilfeldigvis en TM1637 klokkevisningsmodul tilgjengelig, så jeg bestemte meg for å bruke den.
Ytterligere biter og bobs inkluderer en 9v batteriklemme (og batteri, åpenbart), en 'trykk-å-lage' øyeblikkelig trykknappbryter, en prosjektboks, toppnål, tilkoblingskabler og en lengde på 2 "x4" tømmer som overstiger diameteren på tankåpningen.
De ekstra biter og bobs (bortsett fra tømmerstammen) ble kjøpt fra min lokale hobbyelektronikkutsalgskjede - som er Jaycar i Australia. Jeg forestiller meg at Maplin i Storbritannia ville være et levedyktig alternativ, og jeg tror det er noen få i USA, for eksempel Digikey og Mouser. For andre land er jeg redd jeg ikke vet det, men jeg er sikker på at hvis du mangler et passende high street -utsalgssted eller nettleverandør i ditt land, så kommer kinesiske ebay -selgere til deg, hvis du ikke gjør det tankene venter noen uker på levering (ironisk nok, til tross for å være en av våre nærmeste naboer, er 6 uker eller mer ikke uvanlig for levering til Australia fra Kina!).
Sørg for at du får en prosjektboks som er stor nok - jeg gjettet på meg før komponentene var tilgjengelige, og det er en veldig tett klemme - jeg må kanskje skaffe meg en annen trykknapp som bruker mindre plass.
Åh, og forresten, lengden på tømmeret kom nettopp fra noen avfallskutt jeg har i hjørnet av garasjen min (som et hjem for flere av de herlige edderkoppene).
Når du forstår skjematikken og funksjonaliteten, kan du bestemme deg for å tilpasse din versjon og inkludere en av/på-bryter, eller bruke en 18650 Li-Ion strømkilde, med solcellepanel og ladekontroll for å holde den konstant påfyllt og klar til bruk, eller endre den enkle LED-skjermen for en flerlinjes LCD eller grafisk OLED med flere informasjonsvisningsalternativer, for eksempel å vise prosentandelen OG liter som er igjen samtidig. Eller du kan gå for allsang, allsidig trådløs IoT-enhet permanent installert i tanken MED solladning. Jeg vil gjerne høre om variasjonene og modifikasjonene dine.
Trinn 4: Testing av prototypen (og koden)
Etter å ha kjøpt HC-SR04 fra en billig kinesisk kilde på ebay, hadde jeg egentlig ikke forventet å motta en enormt nøyaktig enhet, så jeg ville teste den på brødbrettet først, i tilfelle jeg måtte legge til noen avstandskorrigeringskode i skissen min.
På dette tidspunktet kastet jeg rundt for grunnleggende informasjon om hvordan jeg kobler til og bruker HC-SR04, og må anerkjenne jsvesters instruerbare "Simple Arduino and HC-SR04 example". Hans eksempel og erfaring var et godt utgangspunkt for meg å begynne å kode fra.
Jeg fant NewPing-biblioteket med funksjoner for HC-SR04, som inkluderer innebygd funksjonalitet for å ta gjennomsnittet av flere avlesninger, og dermed gjøre koden min mye enklere.
Jeg fant også et bibliotek for TM1637 -klokkevisningsmodulen, noe som gjorde visning av tall mye enklere. I min originalkode (for det 4-sifrede 7-segmentet display) måtte jeg dele tallet i individuelle sifre, deretter bygge hvert enkelt siffer på displayet ved å vite hvilke segmenter som skulle belyses, og deretter sykle gjennom hvert siffer i tallet, og bygge det nummeret på det aktuelle displayet. Denne metoden kalles multiplexing, og viser effektivt bare et enkelt siffer om gangen, men går gjennom dem fra et siffer til det neste så raskt at det menneskelige øyet ikke merker det, og lurer deg til å tro at alle sifrene er på samtidig. Som med HC-SR04-biblioteket som gjør måleoperasjonene enklere, tar dette displaybiblioteket seg av all multiplexering og sifferhåndtering. Arduino -referansesidene som er lenket til ovenfor, gir noen eksempler, og selvfølgelig har hvert bibliotek en prøvekode som kan være til stor hjelp.
n
Så, bildene ovenfor viser testriggen min - jeg tester den på min Arduino Uno for enkelhet, da den allerede er konfigurert for midlertidige gjenbrukbare tilkoblinger for prototyping. Enheten opererer i kalibreringsmodus her (legg merke til at digital pin 10 - den hvite ledningen - er koblet til bakken) og nøyaktig leser 39 cm til boksen jeg hadde tilfeldig plassert foran den, som vist på målebåndet. I denne modusen viser jeg den lille 'c'en foran målingen, bare for å indikere at det ikke er den normale målingen.
I tillegg til Vcc (5v) og Ground trenger HC -SR04 2 andre tilkoblinger - utløseren (gul til pin 6) og ekko (grønn til pin 7). Displayet trenger også Vcc (5v) og Ground, og ytterligere 2 tilkoblinger - klokke (blå til pin 8) og DIO (lilla til pin 9). Som allerede nevnt, styres driftsmodusen av en høy eller lav pinne 10 (hvit). Tilkoblingene vil bruke de samme pinnene på Arduino Pro Mini, men vil bli permanent loddet. Driftsmodusen kan velges ved hjelp av en jumper på tvers av to av tre toppnål, koblet til henholdsvis Vcc, pin 10 og bakken.
De offisielle spesifikasjonene for HC -SR04 hevder noe som en maksimal feil på bare 3 millimeter opp til den maksimale konstruerte driftsavstanden på 4 meter, så tenk på min overraskelse å finne ut at enheten min helt sikkert var nøyaktig i den grad opptil 2 meter - noe som er godt over det jeg trenger. På grunn av begrenset plass til et raskt og skittent testoppsett, ble testresultatene mine utover den distansen ødelagt av refleksjoner fra andre overflater enn testmålet mitt, ettersom strålen fra senderen spredte seg og tok et større område. Men så lenge det er bra til 1,5 meter - det vil gjøre meg fint, tusen takk:-)
Trinn 5: Rainwater Gauge Ino Sketch
Hele koden er vedlagt, men jeg vil inkludere noen utdrag nedenfor for å forklare noen av trinnene.
Først av alt, oppsettet …
#inkludere
#include #include // pins for HC-SR04 #define pinTrig 6 #define pinEcho 7 NewPing sonar (pinTrig, pinEcho, 155); // 400 cm er maks for HC-SR04, 155 cm er maks for tank // LED-modulens tilkoblingspinner (digitale pinner) #define CLK 8 #define DIO 9 TM1637 Displaydisplay (CLK, DIO); // Andre pins #define opMode 10
I tillegg til TM1637- og NewPing -bibliotekene har jeg også inkludert et matematisk bibliotek, som gir meg tilgang til avrundingsfunksjonen. Jeg bruker dette i noen av matematikkene for å tillate meg å vise prosentandelen til nærmeste 5% for eksempel.
Deretter defineres pinnene for de to enhetene, og enhetene initieres.
Til slutt definerer jeg pin 10 for driftsmodus.
// slå av alle segmenter for alle sifre
uint8_t bytes = {0x00, 0x00, 0x00, 0x00}; display.setSegments (byte);
Denne delen av koden demonstrerer en måte å kontrollere skjermmodulen, slik at individuell kontroll av hvert segment i hvert siffer. Jeg har satt de 4 elementene i matrisen kalt byte, til alle å være null. Det betyr at hver bit av hver byte er null. De 8 bitene brukes til å kontrollere hvert av de 7 segmentene og desimaltegnet (eller kolon i en klokke type display). Så hvis alle bitene er null, vil ingen av segmentene lyse. SetSegments -operasjonen sender innholdet i matrisen til displayet og viser (i dette tilfellet) ingenting. Alle segmenter er slått av.
Den mest signifikante biten i en byte styrer DP, og deretter styrer de resterende 7 bitene de 7 segmentene fra G til A i omvendt rekkefølge. Så for å vise tallet 1 for eksempel, krever segment B og C, så den binære representasjonen vil være '0b00000110'. (Takk til CircuitsToday.com for bildet ovenfor).
// Ta 10 avlesninger, og bruk median varighet.
int varighet = sonar.ping_median (10); // varighet er i mikrosekunder hvis (varighet == 0) // Målefeil - ufullstendig eller ingen ekko {uint8_t bytes = {0x00, 0b01111001, 0b01010000, 0b01010000}; // Segmenter for stave "Err" display.setSegments (byte); }
Her forteller jeg HC-SR04 å ta 10 avlesninger, og gi meg gjennomsnittsresultatet. Hvis ingen verdi returneres, er enheten utenfor området. Jeg bruker deretter samme teknikk som ovenfor for å kontrollere spesifikke segmenter på de 4 sifrene, for å stave ut bokstavene (blank), E, r og r. Å bruke binær notasjon gjør det litt lettere å relatere de enkelte bitene til segmentene.
Trinn 6: Laste kode til en Arduino Pro Mini (uten USB)
Som jeg sa tidligere, varer fra kinesiske ebay -selgere ofte tar 6 uker eller mer å ankomme, og mye av prototypingen og kodeskrivingen min ble gjort mens jeg ventet på at noen av komponentene skulle komme - Arduino Pro Mini var en av dem.
En ting jeg ikke la merke til om Pro Mini, før jeg allerede hadde bestilt den, er at den ikke har en USB -port for å laste ned skissen. Så etter litt vanvittig googling fant jeg ut at det er to måter å laste en skisse på i dette tilfellet - den ene krever en spesiell kabel som går fra USB på PC -en, til 6 spesifikke pinner på Pro Mini. Denne gruppen på 6 pins er kjent som ISP (in -system programmerer) pins, og du kan faktisk bruke denne metoden på hvilken som helst Arduino hvis du ville - men ettersom USB -grensesnittet er tilgjengelig på stort sett alle de andre Arduino -variantene (I tror), å bruke dette alternativet er mye enklere. Den andre metoden krever at du har en annen Arduino med et USB-grensesnitt på den, for å fungere som en mellomting.
Heldigvis betydde det å ha min Arduino Uno at jeg kunne bruke den andre metoden, som jeg vil skissere for deg nedenfor. Det kalles å bruke 'Arduino som ISP'. I et nøtteskall, laster du en spesiell skisse på din "mellomliggende" Arduino, som gjør den til et serielt grensesnitt. Last deretter den faktiske skissen din, men i stedet for det vanlige opplastingsalternativet, bruker du et alternativ fra IDE -menyen som laster opp "ved hjelp av Arduino som ISP". Den "mellomliggende" Arduino tar deretter din faktiske skisse fra IDE, og sender den videre til ISP-pinnene på Pro Mini, i stedet for å laste den til sitt eget minne. Det er ikke vanskelig når du får hodet rundt hvordan det fungerer, men det er et ekstra lag av kompleksitet som du kanskje vil unngå. Hvis det er tilfelle, eller du ikke har en annen Arduino du kan bruke som mellomting, kan det være lurt å kjøpe en Arduino Nano, eller en av de andre små formfaktormodellene, som inkluderer USB-grensesnittet og gjør programmering til et enklere prospekt.
Her er et par ressurser du kan finne nyttig for å forstå prosessen. Arduino -referansen refererer spesielt til å brenne en ny oppstartslaster til målenheten, men du kan like gjerne laste en skisse på samme måte. Jeg fant at videoen til Julian Ilett gjør konseptet mye tydeligere, selv om han hopper over delen i Arduino -referansen som forklarer hvordan man kobler de to Arduinoene sammen, og programmerer en bar chip på et brødbrett i stedet.
- Arduino referansehåndbok - Bruke Arduino som en ISP
- Julian Iletts YouTube -vide - Bruke en Arduino som en ISP
Siden Pro Mini ikke har de seks ISP -pinnene som er praktisk gruppert sammen, må du dekode hvilken av de digitale pinnene som er knyttet til de 4 programmeringspinnene (de to andre tilkoblingene er bare Vcc og Gnd - det er ganske greit). Heldigvis for deg har jeg allerede vært gjennom dette - og er villig til å dele kunnskapen med deg - for en sjenerøs person jeg er !!
Arduino Uno, og mange andre i Arduino -familien, har de 6 pinnene lett arrangert i en 3x2 blokk, slik som dette (bilde fra www.arduino.cc).
Dessverre gjør ikke Pro Mini det. Som du kan se nedenfor, er de faktisk ganske enkle å identifisere og er fortsatt arrangert i 2 blokker med 3 pinner. MOSI, MISO og SCK er de samme som digitale pins 11, 12 og 13 på henholdsvis Pro Mini og Arduino Uno, og for ISP -programmering, kobler du bare 11 til 11, 12 til 12 og 13 til 13. Pro Mini's Reset pin bør kobles til Uno pin 10, og Pro Mini's Vcc (5v)/Ground bør kobles til Arduino +5v/Ground. (Bilde fra www.arduino.cc)
Trinn 7: Montering
Som jeg nevnte, tok jeg et punkt på saken, og angret på det. Å passe alle komponentene i var en skikkelig klem. Faktisk måtte jeg bøye trykknappkontaktene ut sidelengs og legge litt pakning på utsiden for å løfte den litt lenger slik at den passet inn i dybden på esken, og jeg måtte slipe 2-3 mm av hver side av skjermmodulkortet for at det også skal passe.
Jeg boret 2 hull i saken for at ultralydsensorene skulle stikke gjennom. Jeg boret hullene litt for små og økte dem deretter gradvis med en liten roterende kvern, slik at jeg kunne få dem til å bli en fin "push fit". Dessverre var de for nær sidene til å kunne bruke kvernen fra innsiden av boksen, og dette måtte gjøres utenfra, noe som resulterte i mange riper og skøyte merker der kvernen skled - ja, det er alt på bunnen uansett - hvem bryr seg..?
Jeg kuttet deretter et spor i den ene enden som er i riktig størrelse for skjermen å stikke gjennom. Igjen - min gjetning på boksestørrelsen bet meg på baksiden da sporet etterlot meg et veldig slank stykke over skjermen, som uunngåelig brøt mens jeg arkiverte det glatt. Vel, det er det superlim ble oppfunnet for …
Til slutt, med alle komponentene grovt plassert i esken, målte jeg hvor jeg skulle sette hullet i lokket, slik at trykknappens kropp skulle falle ned i den siste ledige plassen. BARE!!!
Deretter loddet jeg sammen alle komponentene for å teste at de fortsatt fungerte etter bøying og sliping og trimming, før jeg monterte dem alle sammen i saken. Du kan se jumper -tilkoblingen like under skjermmodulen, med pin 10 på Arduino (hvit ledning) koblet til Gnd, og dermed sette enheten i kalibreringsmodus. Displayet viser 122 cm fra benken min - det må ha tatt et signal som reflekteres tilbake fra toppen av vinduskarmen (det er for lavt til å være taket).
Deretter var det et tilfelle av å bryte ut den varme limpistolen, og sko-horne alle komponentene på plass. Etter å ha gjort det, fant jeg ut at den lille klaring mellom toppen av skjermmodulen og lokket, når modulen var limt på plass, etterlot litt av en bule der lokket ikke helt ville passe så tett som jeg vil. Jeg kan prøve å gjøre noe med det en dag - eller mer sannsynlig vil jeg ikke …
Trinn 8: Den ferdige artikkelen
Etter noen få tester etter montering og en korreksjon av koden min for å ta høyde for dybden på veden jeg hadde skrudd enheten til (som jeg fullstendig overså i mine beregninger - d'oh !!), er alt gjort. Endelig!
Samlet testing
Når enheten bare sitter med forsiden ned på benken min, vil det tydeligvis ikke være noe reflektert signal, så enheten viser korrekt en feiltilstand. Det samme ville være sant hvis den nærmeste reflekterende overflaten er utenfor enhetens rekkevidde.
Det ser ut til at fra benkeplaten min til gulvet er 76 cm (vel, 72 cm pluss 4 cm dybden på biten av tre).
Undersiden av enheten, som viser senderen og mottakeren som henger over trebiten - jeg burde virkelig slutte å kalle den en tømmerbit - den vil fremover bli referert til som Gauge Stabilization and Precision Placement Platform! Heldigvis er dette sannsynligvis siste gangen jeg nevner det;-)
Ooh - du kan se alle de ekle riper og skate merker i denne …
… Og her er det ferdige elementet, plassert i normal driftsmodus, som faktisk måler tankens kapasitet til nærmeste 5%. Det var en (veldig) regnfull søndag ettermiddag som fikk meg til å fullføre dette prosjektet, derav regndråpene på enheten og den veldig behagelige 90% lesningen.
Jeg håper at du likte å lese dette instruerbare, og at du lærte litt om Arduino -programmering, fysikk og bruk av ekkolodd/ultralydrefleksjon, fallgruvene ved å bruke gjetninger i prosjektplanleggingen din, og at du har blitt inspirert til å lage din egen regnvannstankmåler - og deretter installere en regnvannstank for å bruke den på, samtidig som du hjelper miljøet litt og sparer på vannregningen.
Vennligst les videre - for hva som skjedde dagen etter …!
Trinn 9: Etterskrift - hundre (og fem) prosent?
Så, på mandagen etter den regntunge søndagen, var tanken absolutt så full som den muligens kunne være. Siden det er en av de få gangene jeg noensinne har sett det helt fullt, tenkte jeg at det ville være det ideelle tidspunktet for å måle måleren, men gjett hva - det registrerte som 105%, så det var åpenbart noe galt.
Jeg tok ut peilepinnen min og fant ut at mine opprinnelige forutsetninger på 140 cm som maksimal dybde på vann og 16 cm takhøyde (basert på visuelle antagelser fra tanken), begge var litt utenfor de faktiske målingene. Så bevæpnet med de virkelige dataene for min 100% benchmark, klarte jeg å justere koden min og laste Arduino på nytt.
Den maksimale vanndybden viser seg å være 147 cm, med målepunktet på 160 cm, og gir 13 cm takhøyde (summen av takhøyden i tanken, høyden på halsen på tanken og dybden på delen av … whoa, nei, hva ?! Jeg mener dybden på Gauge Stabilization and Precision Placement Platform!).
Etter å ha korrigert variasjonene maxDepth og takhøyde tilsvarende, i tillegg til å tilbakestille sonarobjektets maksimale område til 160 cm, viste en rask omprøving 100% som falt til 95% da jeg løftet måleren litt (for å simulere en liten mengde av vann har blitt brukt).
Jobben er gjort!
PS - dette er mitt første forsøk på en instruerbar. Hvis du liker stilen min, sans for humor, ærlighet for å innrømme feil (hei - selv om jeg ikke er perfekt …) osv. - gi meg beskjed, så kan det gi meg et løft for å gjøre en annen.
Trinn 10: Ettertanke
Brukbar kapasitet
Så det har gått noen uker siden jeg publiserte denne instruksjonsboken, og jeg har fått mange kommentarer som svar, hvorav noen har foreslått noen alternative mekanismer - både elektroniske og manuelle. Men dette fikk meg til å tenke, og det er noe jeg sannsynligvis burde ha påpekt i begynnelsen.
- Tanken min har en pumpe, som er installert på bakkenivå - litt under tankens bunn. Siden pumpen er det laveste punktet i systemet, og vannet fra pumpen er under trykk, kan jeg bruke hele tankens kapasitet.
- MEN - hvis tanken din ikke har en pumpe, og er avhengig av tyngdekraftmating, er tankens effektive kapasitet begrenset av kranens høyde. Når vannet som er igjen i tanken er lavere enn kranen, vil det ikke renne vann.
Så uansett om du bruker en elektronisk måler, eller et manuelt sikteglass, eller flyte- og flaggetypesystem, må du bare være oppmerksom på at uten en pumpe er den effektive "basen" til tanken din faktisk høyden på tankens utløp eller trykk på.
Anbefalt:
Ultralyd lydpistol (parametrisk høyttaler): 3 trinn (med bilder)
Ultrasonic Sound Gun (parametrisk høyttaler): For dette prosjektet bygde jeg en pistol som skyter ut en smal stråle av ultralydlyd. Lyden kan bare høres av mennesker inne i den smale strålen, eller gjennom en kilde i nærheten når lyden blir demodulert. Jeg ble inspirert til å bygge dette prosjektet etter at
Kropps-ultralyd sonografi med Arduino: 3 trinn (med bilder)
Kropps-ultralyd sonografi med Arduino: Hei! Min hobby og lidenskap er å realisere fysikkprosjekter. Et av mine siste arbeider handler om ultralyd sonografi. Som alltid prøvde jeg å gjøre det så enkelt som mulig med deler du kan få på ebay eller aliexpress. Så la oss se på hvor langt jeg kan gå med
Strømmåling med vannmåler (ultralyd): 5 trinn (med bilder)
Strømmåling med vannmåler (ultralyd): Vann er en kritisk ressurs for planeten vår. Vi mennesker trenger vann hver dag. Og vann er nødvendig for en rekke næringer, og vi mennesker trenger det hver dag. Etter hvert som vann har blitt mer verdifullt og mangelvare, er behovet for effektiv overvåking og håndtering
Nivåmåler for ultralyd: 5 trinn (med bilder)
Ultralyd tanknivåmåler: Trenger du å overvåke væskenivået i en brønn med stor diameter, en tank eller en åpen beholder? Denne guiden viser deg hvordan du lager en ekkoloddvæskemåler med ekkolodd ved hjelp av billig elektronikk! Skissen ovenfor viser en oversikt over hva vi siktet oss mot med
Ultralyd Pi -piano med bevegelseskontroller !: 10 trinn (med bilder)
Ultrasonic Pi Piano With Gesture Controls !: Dette prosjektet bruker billige HC-SR04 ultralydsensorer som innganger og genererer MIDI-notater som kan spilles gjennom en synthesizer på Raspberry Pi for lyd av høy kvalitet. Prosjektet bruker også en grunnleggende form for gestkontroll , hvor musikken