Talaan ng mga Nilalaman:

Meterong Kapasidad ng Ultrasonic Rainwater Tank: 10 Hakbang (na may Mga Larawan)
Meterong Kapasidad ng Ultrasonic Rainwater Tank: 10 Hakbang (na may Mga Larawan)

Video: Meterong Kapasidad ng Ultrasonic Rainwater Tank: 10 Hakbang (na may Mga Larawan)

Video: Meterong Kapasidad ng Ultrasonic Rainwater Tank: 10 Hakbang (na may Mga Larawan)
Video: Water Market Reform: Delivering for customers 2024, Nobyembre
Anonim
Sukat ng Kapasidad ng Ultrason Rainwater Tank
Sukat ng Kapasidad ng Ultrason Rainwater Tank

Kung ikaw ay katulad ko at mayroong kaunting konsensya sa kapaligiran (o mga skinflint lang na sabik na makatipid ng ilang pera - na ako rin…), maaari kang magkaroon ng isang tangke ng tubig-ulan. Mayroon akong isang tanke upang anihin ang hindi madalas na pag-ulan na nakukuha namin sa Australia - ngunit batang lalaki oh lalaki, kapag umulan dito, talagang Uulan! Ang aking tangke ay nakatayo nang halos 1.5m ang taas at nasa isang kapatagan, ibig sabihin kailangan kong makakuha ng mga hakbang upang suriin ang antas ng tubig (o - dahil ako ay tamad, tiyak na balansehin sa tuktok ng isang lumang bote ng gas mula sa BBQ na nakuha na ngayon hanggang sa permanenteng paninirahan bilang isang 'hakbang' sa tabi ng tangke).

Nais kong ilang paraan upang masuri ang antas ng tubig sa tangke, nang hindi lahat ng pag-akyat at pagsabit sa kanal ng isang kamay (habang nag-aalala tungkol sa kung anong mga gagamba ang nasa likuran nito - narinig mo ang tungkol sa mga gagamba sa Australia - tama ba?) … Kaya, sa isang na-update na huli sa interes ng buhay sa electronics, at murang mga clone ng Arduino mula sa Tsina sa ebay, nagpasya akong pumunta sa pagbuo ng isang 'widget' upang gawin ang trabaho para sa akin.

Ngayon, ang aking 'pangarap' na widget ay permanenteng mai-install sa tank, gumamit ng isang solar charge na mapagkukunan ng kuryente, na may isang malayang pagbabasa sa aking garahe, o marahil isang wireless transmitter gamit ang Bluetooth na maaari kong suriin mula sa aking telepono, o marahil kahit isang Ang uri ng aparato ng ESP na nagho-host ng isang awtomatikong na-update na webpage, upang masuri ko ang antas ng tubig sa aking tangke mula sa kahit saan sa mundo sa internet … ngunit talaga - bakit ko kailangan ang lahat ng iyon? Kaya't na-dial ko nang kaunti ang aking mga engrandeng mithiin (mabuti, medyo malaki), at tinanggal ang kawalang kawala ng solusyon, ang permanenteng pagkakabit, ang solar singilin, at ang kakayahang suriin ang antas ng aking tangke mula sa likurang dulo ng lampas (laging ipagpalagay na ang back end ng lampas ay may magagamit na WiFi, iyon ay…)

Ang nagresultang proyekto ay na-downgrade sa yunit na hawak ng kamay na nakikita sa itaas, na maaaring gaganapin sa pagbubukas ng tanke at pinapagana ng isang pindutan ng push, na may isang digital readout, na mababasa mula sa antas ng lupa - mas praktikal.

Hakbang 1: Ang Matematika …

Matapos landi ng maraming mga ideya kung paano matukoy ang antas ng tubig - nagpasya ako sa isang ultrasonic transmitter / receiver bilang batayan para sa aking widget, at gumagamit ng isang Arduino upang gawin ang mga pagbasa at gawin ang lahat ng matematika. Ang mga pagbabasa na ibinalik mula sa sensor ay (hindi direkta) sa anyo ng isang distansya - mula sa ultrasonic sensor hanggang sa ibabaw na ito ay bounce off (ang ibabaw ng tubig - o sa ilalim ng tanke, kung walang laman), at bumalik muli, kaya kailangan namin na gawin ang ilang mga bagay dito, upang makapunta sa isang porsyento na natitira sa tanke.

NB - sa tunay na katotohanan, ang halagang ibinalik mula sa sensor ay talagang oras lamang na kinuha para sa signal na iwanan ang emitter side at bumalik sa tatanggap. Nasa microseconds ito - ngunit alam ang bilis ng tunog ay 29 microsecond per cm (Ano? Hindi mo alam iyon? Pfft…) ay gumagawa ng isang madaling pag-convert mula sa isang tagal ng panahon sa isang pagsukat sa distansya.

Larawan
Larawan

Una - syempre, kailangan nating hatiin ang distansya ng 2 upang makuha ang sensor sa distansya sa ibabaw. Pagkatapos, ibawas ang patuloy na distansya mula sa sensor sa lalim ng 'max' na tubig. Ang natitirang halaga ay ang lalim ng tubig na ginamit. Susunod, ibawas ang halagang iyon mula sa pinakamataas na lalim ng tubig, upang makita ang lalim ng tubig na natitira sa tangke.

Ang halagang ito pagkatapos, ay ang batayan para sa anumang iba pang mga kalkulasyon, tulad ng pagtatrabaho sa lalim ng tubig na ito bilang isang porsyento ng maximum na lalim, o pag-multipp ng lalim ng patuloy na 'ibabaw na lugar', upang makakuha ng isang dami ng tubig na maaaring ipakita sa litro (o mga galon, o anumang iba pang mga yunit - basta alam mo ang matematika upang gawin ito - nananatili ako sa isang porsyento para sa pagiging simple).

Hakbang 2: Mga Praktikalidad

Ang yunit ay maaaring hawakan ng kamay, ngunit ipinakikilala nito ang isang maliit na posibilidad ng menor de edad na kamalian kung ang yunit ay hindi gaganapin sa parehong lugar, at sa parehong anggulo sa bawat oras. Habang ito ay magiging isang napakaliit na error, at marahil ay hindi kahit isa na magparehistro, ito ay ang uri ng bagay na niggled sa akin.

Gayunpaman, ang paghawak sa kamay ay nagpapakilala sa mas malaking posibilidad na ang mapahamak na bagay ay mahuhulog sa tangke at hindi na makita muli. Kaya upang mapagaan ang DALAWA ng mga posibilidad na ito, maaayos ito sa isang haba ng kahoy, na pagkatapos ay inilalagay sa ibabaw ng pagbubukas ng tangke - upang ang pagsukat ay kukuha mula sa eksaktong parehong taas at anggulo sa bawat oras (at kung ito ay bumaba sa tangke, hindi bababa sa kahoy ay lumulutang).

Ang isang push button ay nagpapagana ng yunit (sa gayon tinatanggal ang pangangailangan para sa isang on / off switch, at ang posibilidad ng isang aksidenteng patag na baterya), at pinaputok ang sketch sa Arduino. Tumatagal ito ng isang bilang ng mga pagbasa mula sa HC-SR04, at kinukuha ang average sa mga ito (upang mapagaan ang anumang maling pagbasa).

Nagsama rin ako ng kaunting code upang suriin para sa mataas o mababa sa isa sa mga Arduino digital I / O pin, at gamitin iyon upang ilagay ang yunit sa tinatawag kong mode na 'Calibration'. Sa mode na ito, ipinapakita lamang ng display ang aktwal na distansya (hinati sa 2) na ibinalik ng sensor, kaya't maaari kong suriin ang kawastuhan nito laban sa isang panukalang tape.

Hakbang 3: Ang Mga Sangkap

Ang yunit ay binubuo ng tatlong pangunahing mga sangkap …

Larawan
Larawan
  1. Isang HC-SR04 ultrasonic transmitter / receiver module
  2. Isang Arduino Pro Mini microcontroller
  3. Isang 4 na digit na 7 segment na LED display o display 'module' tulad ng isang TM1637

Ang lahat ng nasa itaas ay madaling makita sa ebay, sa pamamagitan ng simpleng paghahanap para sa mga term na ipinakita sa naka-print na naka-print.

Sa application na ito, ang display ay gumagamit lamang ng 3 digit upang maipakita ang isang halagang% ng 0-100 o 4 na digit upang maipakita ang bilang ng mga litro (max 2000 sa aking kaso), kaya't gagawin ang anumang 4 na digit na display - hindi mo na kailangang mag-alala tungkol sa kung ang module ay may mga decimal point o colons. Ang isang 'module' na display (LED na naka-mount sa isang breakout board, na may interface chip) ay mas madali, dahil gumagamit ito ng mas kaunting mga koneksyon sa pin, ngunit ang isang raw LED display na may 12 pin ay maaaring mapaunlakan ng Arduino na may ilang maliliit na pagbabago sa code (sa katunayan ang aking orihinal na disenyo ay batay sa setup na ito). Gayunpaman, tandaan, na ang paggamit ng isang raw LED display ay nangangailangan din ng 7 resistors upang limitahan ang kasalukuyang iginuhit ng bawat segment. Nagkaroon ako ng isang magagamit na module ng display ng orasan na TM1637, kaya't nagpasyang gamitin iyon.

Ang mga pandagdag na piraso at bob ay may kasamang isang 9v clip ng baterya (at baterya, malinaw naman), isang 'push-to-make' sandali na pindutan ng push button, isang kahon ng proyekto, mga header pin, pagkonekta ng mga wire, at isang haba ng 2 "x4" na troso na lumampas ang diameter ng pagbubukas ng tanke.

Ang mga pandagdag na piraso at bob (bukod sa piraso ng troso) ay binili mula sa aking lokal na chain ng outlet ng electronics - kung saan ay ang Jaycar sa Australia. Naiisip ko na ang Maplin sa UK ay magiging isang mabubuhay na kahalili, at sa palagay ko mayroong ilang sa US, tulad ng Digikey at Mouser. Para sa ibang mga bansa, natatakot akong hindi ko alam, ngunit sigurado ako na kung nagkulang ka ng angkop na mataas na outlet ng kalye o online na supplier sa iyong bansa, ang mga nagbebenta ng ebay ng Tsino ay darating para sa iyo, kung hindi mo alam isip maghintay ng ilang linggo para sa paghahatid (ironically, sa kabila ng pagiging isa sa aming pinakamalapit na kapitbahay, 6 na linggo o higit pa ay hindi pangkaraniwan para sa paghahatid sa Australia mula sa Tsina!).

Siguraduhin na makakakuha ka ng isang kahon ng proyekto na sapat na malaki - nahulaan ko ang sa akin bago ang pagkakaroon ng mga sangkap na magagamit, at ito ay isang talagang talagang masikip na pisil - Maaaring kailanganin kong makakuha ng isang iba't ibang mga pindutan ng push na gumagamit ng mas kaunting espasyo.

Oh, at sa pamamagitan ng paraan, ang haba ng troso ay nagmula sa ilang mga scrap offcuts na itinatago ko sa sulok ng aking garahe (bilang isang bahay para sa higit pa sa mga magagandang gagamba).

Kapag naintindihan mo ang scematic at pagpapaandar, maaari kang magpasya na iakma ang iyong bersyon, at magsama ng isang on / off switch, o gumamit ng isang 18650 Li-Ion na mapagkukunan ng kuryente, na may solar panel at charge controller upang panatilihin itong patuloy na na-top up at handa nang umalis, o baguhin ang simpleng display ng LED para sa isang multi-line LCD o grapikong OLED na may higit pang mga pagpipilian sa pagpapakita ng impormasyon, tulad ng pagpapakita ng porsyento AT litro na natitira sa parehong oras. O maaari kang pumunta para sa all-singing, all-dancing wireless IoT unit permanente na naka-install sa tangke NG MAY solar charge. Gusto kong marinig ang iyong mga pagkakaiba-iba at pagbabago.

Hakbang 4: Pagsubok sa Prototype (at Code)

Ang pagbili ng HC-SR04 mula sa isang murang mapagkukunan ng Intsik sa ebay, hindi ko talaga inaasahan na makatanggap ng isang napaka-tumpak na yunit, kaya nais kong subukan muna ito sa breadboard, kung sakaling kailangan kong magdagdag ng ilang code sa pagwawasto ng distansya sa sketch ko.

Sa puntong ito, naglalabas ako para sa pangunahing impormasyon tungkol sa kung paano kumonekta at gamitin ang HC-SR04, at dapat kilalanin ang itinuturo na "Simpleng Arduino at HC-SR04 na halimbawa ni jsvester". Ang kanyang halimbawa at karanasan ay isang mahusay na panimulang punto para sa akin upang magsimulang mag-cod mula.

Natagpuan ko ang NewPing library ng mga pagpapaandar para sa HC-SR04, na nagsasama ng built-in na pag-andar upang kunin ang average ng maraming mga pagbasa, sa ganyang paraan ay ginagawang mas simple.

Natagpuan ko ang isang silid-aklatan para sa module ng display ng orasan na TM1637 din, na ginagawang mas simple ang pagpapakita ng mga numero. Sa aking orihinal na code (para sa pagpapakita ng 4 na digit na 7 segment), kinakailangang hatiin ko ang numero sa mga indibidwal na digit, pagkatapos ay buuin ang bawat indibidwal na digit sa display sa pamamagitan ng pag-alam kung aling mga segment ang magpapailaw, at pagkatapos ay pagbibisikleta sa bawat digit sa numero, at pagbuo ng numerong iyon sa naaangkop na display digit. Ang pamamaraang ito ay tinatawag na multiplexing, at mabisang nagpapakita ng isang solong digit sa bawat oras, ngunit paikot-ikot ang mga ito mula sa isang digit hanggang sa susunod na mabilis, na hindi napansin ng mata ng tao, at niloloko ka na maniwala na lahat ng mga digit ay nasa sa parehong oras Tulad ng ginagawa ng library ng HC-SR04 na ginagawang mas madali ang mga operasyon sa pagsukat, ang display library na ito ay nangangalaga sa lahat ng multiplexing, at paghawak ng digit. Ang mga pahina ng Sanggunian ng Arduino na naka-link sa itaas, magbigay ng ilang mga halimbawa, at syempre, ang bawat silid-aklatan ay may halimbawang code na maaaring maging isang malaking tulong.

Larawan
Larawan
Larawan
Larawan

n

Kaya, ang mga larawan sa itaas ay nagpapakita ng aking pagsubok - Sinusubukan ko ito sa aking Arduino Uno para sa pagiging simple, dahil naka-set up na ito para sa pansamantalang muling magagamit na mga koneksyon para sa prototyping. Ang yunit ay tumatakbo sa mode na 'Calibration' dito (pansinin na ang digital pin 10 - ang puting wire - ay konektado sa lupa) at tumpak na binabasa ang 39cm sa kahon na random kong inilagay sa harap nito, tulad ng ipinakita ng sukat ng tape. Sa mode na ito, ipinapakita ko ang maliit na 'c' nang maaga sa pagsukat, upang ipahiwatig lamang na hindi ito ang normal na pagsukat.

Pati na rin ang Vcc (5v) at Ground, ang HC-SR04 ay nangangailangan ng 2 iba pang mga koneksyon - ang gatilyo (dilaw sa pin 6) at echo (berde sa pin 7). Kailangan din ng display ang Vcc (5v) at Ground, at 2 pang koneksyon - orasan (asul na i-pin 8) at DIO (lila sa pin 9). Tulad ng nabanggit na, ang operating mode ay kinokontrol ng isang mataas o mababa sa pin 10 (puti). Ang mga koneksyon ay gagamit ng parehong mga pin sa Arduino Pro Mini, ngunit permanenteng solder. Mapipili ang operating mode gamit ang isang jumper sa kabuuan ng dalawa sa tatlong mga header pin, na konektado sa Vcc, pin 10, at ground ayon sa pagkakabanggit.

Ang opisyal na mga detalye para sa HC-SR04 ay nag-aangkin ng isang bagay tulad ng isang maximum na error na 3 millimeter lamang hanggang sa maximum na dinisenyo na distansya ng operating na 4 na metro, kaya isipin ang aking sorpresa upang malaman na ang aking yunit ay tiyak na tumpak sa degree na hanggang sa 2 metro - kung saan ay sobra sa kung ano ang kailangan ko. Dahil sa limitadong puwang para sa isang mabilis at maruming pag-set up ng pagsubok, ang aking mga resulta sa pagsubok na lampas sa distansya na iyon ay nasisira ng mga pagmuni-muni mula sa mga ibabaw bukod sa aking target na pagsubok, habang ang sinag mula sa transmiter ay kumalat at kumuha sa isang mas malawak na lugar. Ngunit hangga't ito ay mabuti sa 1.5 metro - na gagawin sa akin ng mabuti, maraming salamat:-)

Hakbang 5: Pag-gauge ng Inwater Sketch ng Rainwater

Ang buong code ay nakakabit, ngunit isasama ko ang ilang mga extract sa ibaba upang ipaliwanag ang ilan sa mga hakbang.

Una sa lahat, ang pag-setup …

# isama

#include #include // pins for HC-SR04 #define pinTrig 6 #define pinEcho 7 NewPing sonar (pinTrig, pinEcho, 155); // 400cms ay max para sa HC-SR04, 155cms ay max para sa tank // LED Module pin na koneksyon (Digital Pins) #define CLK 8 #define DIO 9 TM1637Display display (CLK, DIO); // Iba pang mga pin # tukuyin ang opMode 10

Pati na rin ang mga aklatan ng TM1637 at NewPing, nagsama rin ako ng isang silid-aklatan sa Math, na nagbibigay sa akin ng pag-access sa pag-andar na 'pag-ikot'. Ginagamit ko ito sa ilan sa mga matematika upang payagan akong ipakita ang porsyento sa pinakamalapit na 5% halimbawa.

Susunod na ang mga pin para sa dalawang aparato ay tinukoy, at pinasimulan ang mga aparato.

Sa wakas, tinukoy ko ang pin 10 para sa mode ng operasyon.

// itakda ang lahat ng mga segment para sa lahat ng mga digit

uint8_t bytes = {0x00, 0x00, 0x00, 0x00}; display.setSegments (bytes);

Ang seksyon ng code na ito ay nagpapakita ng isang paraan upang makontrol ang display module, na pinapayagan ang indibidwal na kontrol ng bawat segment sa bawat digit. Naitakda ko ang 4 na mga elemento sa array na tinatawag na bytes, sa lahat ay magiging zero. Nangangahulugan iyon na ang bawat piraso ng bawat byte ay zero. Ginagamit ang 8 bits upang makontrol ang bawat isa sa 7 mga segment at ang decimal point (o ang colon sa isang display ng uri ng orasan). Kaya't kung ang lahat ng mga piraso ay zero, kung gayon wala sa mga segment ang naiilawan. Ang pagpapatakbo ng setSegments ay nagpapadala ng mga nilalaman ng array sa display at nagpapakita (sa kasong ito) wala. Naka-off ang lahat ng mga segment.

Larawan
Larawan

Ang pinaka-makabuluhang piraso ng isang byte ay kumokontrol sa DP, at pagkatapos ay ang natitirang 7 bits ay kumokontrol sa 7 mga segment mula sa G hanggang A sa reverse order. Kaya upang maipakita ang bilang 1 halimbawa, nangangailangan ng mga segment na B at C, kaya ang representasyong binary ay '0b00000110'. (Salamat sa CircuitsToday.com para sa imahe sa itaas).

// Kumuha ng 10 pagbasa, at gumamit ng tagal ng tagal.

int tagal = sonar.ping_median (10); // tagal ay nasa microseconds kung (tagal == 0) // Error sa Pagsukat - hindi tiyak o walang echo {uint8_t bytes = {0x00, 0b01111001, 0b01010000, 0b01010000}; // Mga segment upang baybayin ang "Err" display.setSegments (bytes); }

Narito, sinasabi ko sa HC-SR04 na kumuha ng 10 pagbasa, at bigyan ako ng average na resulta. Kung walang naibalik na halaga, ang unit ay wala sa saklaw. Gumagamit ako pagkatapos ng parehong pamamaraan tulad ng nasa itaas upang makontrol ang mga partikular na segment sa 4 na digit, upang baybayin ang mga titik (blangko), E, r, at r. Ang paggamit ng notasyong binary ay ginagawang mas madali ang pagkakaugnay ng mga indibidwal na piraso sa mga segment.

Hakbang 6: Naglo-load ang Code sa isang Arduino Pro Mini (walang USB)

Tulad ng sinabi ko kanina, ang mga item mula sa mga nagbebenta ng ebay ng Tsino ay madalas na tumatagal ng 6 na linggo o higit pa upang makarating, at marami sa aking prototyping at pagsulat ng code ay tapos na habang naghihintay para sa ilang mga sangkap na dumating - ang Arduino Pro Mini ay isa sa mga ito.

Ang isang bagay na hindi ko napansin tungkol sa Pro Mini, hanggang sa maorder ko na ito, ay wala itong USB port dito para sa pag-download ng sketch. Kaya, pagkatapos ng ilang galit na galit na pag-googling, nalaman ko na mayroong dalawang paraan upang mai-load ang isang sketch sa kasong ito - ang isa ay nangangailangan ng isang espesyal na cable na mula sa USB sa iyong PC, sa 6 na tukoy na mga pin sa Pro Mini. Ang pangkat ng 6 na pin na ito ay kilala bilang mga ISP (in-system programmer) na mga pin, at maaari mo talagang magamit ang pamamaraang ito sa anumang Arduino kung nais mo - ngunit dahil ang interface ng USB ay magagamit sa halos lahat ng iba pang mga variant ng Arduino (I tingin), ang paggamit ng opsyong iyon ay mas simple. Kinakailangan ka ng iba pang pamamaraan na magkaroon ka ng isa pang Arduino na may isang interface na USB dito, upang kumilos bilang isang 'go-pagitan'.

Sa kabutihang palad, ang pagkakaroon ng aking Arduino Uno ay nangangahulugang magagamit ko ang pangalawang pamamaraan, na aking ibabalangkas para sa iyo sa ibaba. Tinatawag ito gamit ang 'Arduino bilang ISP'. Sa madaling sabi, naglo-load ka ng isang espesyal na sketch sa iyong 'go-between' Arduino, na ginagawang isang Serial Interface. Pagkatapos i-load ang iyong totoong sketch, ngunit sa halip na ang normal na pagpipilian sa pag-upload, gumagamit ka ng isang pagpipilian mula sa menu ng IDE na nag-a-upload ng 'gamit ang Arduino bilang ISP'. Pagkatapos ay dadalhin ng 'go-between' Arduino ang iyong aktwal na sketch mula sa IDE, at ipasa ito sa mga pin ng ISP ng Pro Mini, sa halip na mai-load ito sa sarili nitong memorya. Hindi mahirap sa sandaling maiikot mo kung paano ito gumagana, ngunit ito ay isang labis na layer ng pagiging kumplikado na maaaring gusto mong iwasan. Kung iyon ang kaso, o wala kang ibang Arduino na maaari mong gamitin bilang 'go-pagitan', pagkatapos ay baka gusto mong bumili ng isang Arduino Nano, o isa sa iba pang mga maliit na modelo ng form factor, kasama dito ang USB interface at ginagawang mas simpleng pag-asam ang programa.

Narito ang isang pares ng mga mapagkukunan na maaari mong makita na kapaki-pakinabang sa pag-unawa sa proseso. Ang Arduino Reference ay partikular na tumutukoy sa pagsunog ng isang bagong bootloader sa target na aparato, ngunit maaari mo ring madaling mai-load ang isang sketch sa parehong paraan. Natagpuan ko ang video ni Julian Ilett na ginagawang mas malinaw ang konsepto, kahit na nilaktawan niya ang bahagi sa sanggunian ng Arduino na nagpapaliwanag kung paano magkasama ang dalawang Arduino, at mag-program ng isang hubad na chip sa isang breadboard sa halip.

  • Ang Arduino Reference Manual - Paggamit ng Arduino bilang isang ISP
  • Ang vide ng YouTube ni Julian Ilett - Paggamit ng isang Arduino bilang isang ISP

Dahil ang Pro Mini ay walang 6 na mga pin ng ISP na maginhawang nakapangkat, kailangan mong i-decode kung alin sa mga digital na pin ang nauugnay sa 4 na pin ng programa (ang iba pang dalawang koneksyon ay Vcc at Gnd lamang - kaya't prangka). Sa kabutihang-palad para sa iyo, napagdaanan ko na ito - at handa akong ibahagi sa iyo ang kaalaman - isang taong mapagbigay ako !!

Ang Arduino Uno, at marami pang iba sa pamilyang Arduino, naayos nang maayos ang 6 na mga pin sa isang 3x2 block, tulad nito (larawan mula sa www.arduino.cc).

Larawan
Larawan

Sa kasamaang palad, ang Pro Mini ay hindi. Tulad ng nakikita mo sa ibaba, ang mga ito ay talagang madaling makilala at nakaayos pa rin sa 2 mga bloke ng 3 mga pin. Ang MOSI, MISO, at SCK ay pareho sa digital pin 11, 12, at 13 ayon sa pagkakasunod-sunod sa parehong Pro Mini at Arduino Uno, at para sa ISP na programa, ikonekta lamang ang 11 hanggang 11, 12 hanggang 12, at 13 hanggang 13. Ang Pro Ang Mini's Reset pin ay dapat na konektado sa Uno pin 10, at ang Pro Mini's Vcc (5v) / Ground ay dapat na konektado sa Arduino + 5v / Ground. (Larawan mula sa www.arduino.cc)

Larawan
Larawan

Hakbang 7: Assembly

Assembly
Assembly

Tulad ng nabanggit ko, kumuha ako ng isang punt sa kaso, at pinagsisihan ito. Upang magkasya ang lahat ng mga bahagi sa ay isang tunay na pisilin. Sa katunayan kailangan kong yumuko ang mga pindutan ng push button palabas sa patagilid, at ilagay ang ilang pag-iimpake sa labas upang maiangat ito nang kaunti pa upang magkasya ito sa lalim ng kahon, at kailangan kong gilingin ang 2-3mm sa bawat panig ng ang display module board para magkasya din ito.

Nag-drill ako ng 2 butas sa kaso para butasin ng mga ultrasonic sensor. Nag-drill ako ng mga butas nang kaunti masyadong maliit at pagkatapos ay unti-unting nadagdagan ang mga ito gamit ang isang maliit na umiinog na gilingan, upang makuha ko sila na maging isang magandang 'push fit'. Sa kasamaang palad, sila ay masyadong malapit sa mga gilid upang magamit ang gilingan mula sa loob ng kahon, at ito ay kailangang gawin mula sa labas, na nagreresulta sa maraming mga gasgas at marka ng skate kung saan nadulas ang gilingan - oh well, lahat yan sa ilalim gayon pa man - sino ang pakialam..?

Pagkatapos ay pinutol ko ang isang puwang sa isang dulo na tamang laki para sa butas ng display. Muli - ang hulaan ko sa laki ng kahon ay nakagat sa akin sa likuran habang iniwan ako ng puwang na may isang napaka-payat na piraso sa itaas ng display, na hindi maiwasang masira habang hinuhusay ko ito. Oh well - iyon ang naimbento para sa sobrang kola …

Sa wakas, sa lahat ng mga bahagi na halos nakaposisyon sa kahon, sinukat ko kung saan ilalagay ang butas sa takip, upang ang katawan ng pindutan ng itulak ay mahuhulog sa huling magagamit na puwang. LANG !!!

Susunod, pinagsama ko ang lahat ng mga sangkap upang subukan ang lahat na nagtrabaho pa rin pagkatapos ng aking baluktot at paggiling at pagpagupit, bago tipunin ang lahat sa kaso. Maaari mong makita ang koneksyon ng jumper sa ibaba lamang ng module ng pagpapakita, na may pin 10 sa Arduino (puting tingga) na konektado sa Gnd, kaya inilalagay ang yunit sa mode ng pagkakalibrate. Ang display ay nagbabasa ng 122cms mula sa aking bench - dapat itong pumili ng isang senyas na makikita mula sa tuktok ng window frame (masyadong mababa upang maging kisame).

Larawan
Larawan

Pagkatapos ito ay isang kaso ng pagsira ng mainit na baril ng pandikit, at pag-horning ng sapatos sa lahat ng mga bahagi sa lugar. Matapos gawin iyon, nalaman ko na ang maliit na clearance sa pagitan ng tuktok ng display module at ang talukap ng mata, sa sandaling nakadikit ang module sa lugar, naiwan ang isang maliit na umbok kung saan ang takip ay hindi magkakasya nang masarap tulad ng gusto ko. Maaari kong subukan at gumawa ng isang bagay tungkol sa isang araw - o mas malamang, hindi ko…

Larawan
Larawan

Hakbang 8: Ang Tapos na Artikulo

Matapos ang ilang mga pagsubok sa post-pagpupulong, at isang pagwawasto sa aking code upang mai-account ang lalim ng tipak ng kahoy na kinutkot ko ang aparato (na ganap kong hindi napansin sa aking mga kalkulasyon - d'oh !!), tapos na ang lahat. Sa wakas!

Nagtipon ng pagsubok

Sa yunit na nakaupo lamang sa aking bangko, malinaw na walang masasalamin na signal, kaya't ang unit ay wastong nagpapakita ng isang kundisyon ng error. Totoo ang pareho kung ang pinakamalapit na nakalarawan na ibabaw ay lampas sa saklaw ng yunit.

Larawan
Larawan

Mukhang mula sa aking bench sa itaas hanggang sa sahig ay 76cms (well, 72cms plus ang 4cm na lalim ng chunk ng kahoy).

Larawan
Larawan

Sa ilalim ng yunit, ipinapakita ang transmitter at tatanggap na overhanging ang tipak ng kahoy - Dapat ko talagang ihinto ang pagtawag nito ng isang tipak na kahoy - mula ngayon ay tatawaging Gauge Stabilization at Precision Placed Platform! Sa kabutihang palad, marahil ito ang huling oras na banggitin ko ito;-)

Ooh - makikita mo ang lahat ng mga hindi magagandang gasgas at marka ng isketing sa isang ito…

Larawan
Larawan

… at narito ang natapos na item, inilagay sa normal na operating mode, na talagang sinusukat ang kapasidad ng aking tanke sa pinakamalapit na 5%. Ito ay isang (napaka) maulan na Linggo ng hapon na nakita akong natapos sa proyektong ito, kaya't ang mga patak ng ulan sa yunit, at ang nakalulugod na 90% na pagbabasa.

Larawan
Larawan

Inaasahan kong nasiyahan ka sa pagbabasa ng itinuturo na ito, at natutunan mo nang kaunti tungkol sa programa ng Arduino, pisika at paggamit ng sonar / ultrasonic na pagmuni-muni, ang mga bitag ng paggamit ng hula sa iyong pagpaplano ng proyekto, at napasigla ka na gawin ang iyong sariling sukat ng tangke ng tubig-ulan - at pagkatapos ay mag-install ng isang tangke ng tubig-ulan upang magamit ito, habang tinutulungan ang kapaligiran ng kaunti at nagse-save sa iyong singil sa tubig.

Mangyaring basahin ang - para sa kung ano ang nangyari sa susunod na araw …!

Hakbang 9: Postkrip - Isang Daan (at Limang) Porsyento?

Kaya, sa Lunes pagkatapos ng maulan na Linggo, ang tanke ay ganap na kasing puno ng maaaring posible. Dahil ito ay isa sa napakakaunting beses na nakita ko ito nang buong buo, naisip ko na ito ang magiging perpektong oras upang i-benchmark ang gauge, ngunit hulaan kung ano - nakarehistro ito bilang 105%, kaya malinaw na may mali.

Nakuha ko ang aking dipstick at nalaman na ang aking orihinal na palagay na 140cms bilang maximum na lalim ng tubig, at 16cms ng headroom (batay sa mga visual guesstimate na ginawa mula sa labas ng tanke), kapwa kaunti sa aktwal na mga sukat. Kaya't armado ng totoong data para sa aking 100% benchmark, nagawa kong i-tweak ang aking code at i-reload ang Arduino.

Ang maximum na lalim ng tubig ay naging 147cms, na may sukat na sukat na nakaupo sa 160cms, na nagbibigay sa 13cms ng headroom (ang kabuuan ng headroom sa loob ng tanke, ang taas ng leeg ng tanke, at ang lalim ng chunk ng… whoa, hindi, ano ?! Ibig kong sabihin ang lalim ng Gauge Stabilization at Precision Placed Platform!).

Matapos maitama ang mga variable ng maxDepth at headroom nang naaayon, pati na rin ang pag-reset ng maximum na saklaw ng sonar object na 160cms, isang mabilis na pagsusulit ay nagpakita ng 100% na bumaba sa 95% habang binuhat ko ang gauge nang kaunti (upang gayahin ang isang maliit na halaga ng nagamit na ang tubig).

Tapos na ang trabaho!

PS - ito ang aking unang pagtatangka sa isang itinuro. Kung gusto mo ang aking istilo, katatawanan, katapatan sa pag-amin ng mga pagkakamali (hey - kahit na hindi ako perpekto …), atbp - ipaalam sa akin at maaari itong bigyan ako ng tulong upang makagawa ng isa pa.

Hakbang 10: Mga Thoughth

Nagagamit na Kapasidad

Kaya't ilang linggo na ngayon mula nang nai-publish ko ang Instructable na ito, at nagkaroon ako ng maraming mga puna bilang tugon, ang ilan sa mga ito ay nagmumungkahi ng ilang mga kahaliling mekanismo - parehong elektronik at manwal. Ngunit naisip ko ito, at may isang bagay na marahil ay naituro ko sa simula.

  • Ang aking tangke ay may isang bomba, na naka-install sa antas ng lupa - bahagyang mas mababa sa ilalim ng tangke. Dahil ang bomba ay ang pinakamababang punto sa system, at ang tubig mula sa bomba ay nasa ilalim ng presyon, magagamit ko ang buong kakayahan ng aking tanke.
  • PAANO - kung ang iyong tanke ay walang isang bomba, at umaasa sa gravity feed, kung gayon ang mabisang kakayahan ng tanke ay nalilimitahan ng taas ng iyong gripo. Kapag ang natitirang tubig sa iyong tangke ay mas mababa kaysa sa gripo, pagkatapos ay walang tubig na dumadaloy.

Kaya, hindi alintana kung gumagamit ka ng isang electronic gauge, o isang manu-manong baso ng paningin, o float at flag type system, magkaroon ng kamalayan na walang isang bomba, ang mabisang 'base' ng iyong tangke ay talagang ang taas ng outlet ng tangke o tapikin

Inirerekumendang: