Ultrasonik yomg'ir suvlari sig'imi o'lchagichi: 10 qadam (rasmlar bilan)
Ultrasonik yomg'ir suvlari sig'imi o'lchagichi: 10 qadam (rasmlar bilan)
Anonim
Ultrasonik yomg'ir suvlari uchun tank hajmi
Ultrasonik yomg'ir suvlari uchun tank hajmi

Agar siz menga o'xshagan bo'lsangiz va ozgina ekologik vijdonga ega bo'lsangiz (yoki bir necha dollar tejashga intilasiz - men ham …), sizda yomg'ir suvi uchun idish bo'lishi mumkin. Menda Avstraliyada kamdan -kam uchraydigan yomg'irni yig'ish uchun tank bor, lekin o'g'il bola, bu erga yomg'ir yog'sa, haqiqatan ham yomg'ir yog'adi! Mening tankim balandligi taxminan 1,5 m va pintda joylashgan, ya'ni men suv sathini tekshirish uchun qadamlar tashlashim kerak (yoki men dangasa bo'lganim uchun, barbekyu ichidagi eski gaz shishasi ustidan muvozanatni saqlayman) tank yonidagi "qadam" sifatida doimiy yashash joyi).

Men bir qo'li bilan drenaj trubasiga osilmasdan, tankdagi suv sathini tekshirishni xohlardim (uning orqasida qanday o'rgimchaklar bo'lishi mumkinligi haqida qayg'urayotganda - siz avstraliyalik o'rgimchaklar haqida eshitgansiz - to'g'rimi?) … Shunday qilib, elektronikaga bo'lgan qiziqish va eBayda Xitoydan arzon Arduino klonlari paydo bo'lganidan so'ng, men o'z ishimni bajarish uchun "vidjet" yaratishga qaror qildim.

Endi mening "orzuim" vidjeti tankga doimiy ravishda o'rnatilishi, quyosh batareyali quvvat manbasidan foydalanish, garajimda masofadan o'qish bo'lishi mumkin, yoki simsiz uzatgichni Bluetooth orqali tekshirib ko'rishim mumkin edi, yoki ehtimol Avtomatik ravishda yangilanadigan veb -sahifaga ega ESP tipidagi qurilma, men Internetdagi dunyoning istalgan joyidan mening tankimdagi suv darajasini tekshirishim mumkin edi … lekin haqiqatan ham - menga bularning barchasi nima uchun kerak? Shunday qilib, men o'z ideal g'oyalarimni bir oz orqaga qaytardim va echimning simsizligini, doimiy o'rnatilishini, quyosh zaryadlanishini va tankning darajasini chetidan orqadan tekshirish qobiliyatini yo'q qildim (har doim) Chegaraning orqa tomonida Wi -Fi mavjud bo'lsa, bu …)

Olingan loyiha yuqorida ko'rsatilgan qo'lda ishlaydigan qurilmaga tushirildi, uni faqat tank ochilishida ushlab turish mumkin va uni tugmacha yordamida faollashtirish mumkin, uni raqamli o'qish bilan, er sathidan o'qish mumkin - bu ancha amaliy.

1 -qadam: Matematika …

Suv darajasini aniqlash bo'yicha bir nechta g'oyalar bilan o'ynaganimdan so'ng - men vidjetim uchun asos sifatida ultratovushli uzatuvchi/qabul qilgichni va Arduino yordamida o'qish va barcha matematikani bajarishga qaror qildim. Sensordan qaytarilgan ko'rsatkichlar (bilvosita) masofa shaklida bo'ladi - ultratovush sensordan tortib tushgan sirtgacha (suv yuzasi - yoki tankning pastki qismi, agar bo'sh bo'lsa) va yana orqaga, shuning uchun bizga kerak. Tankda qolgan foizga erishish uchun bu bilan bir nechta ish qilish.

NB - aslida, sensordan qaytarilgan qiymat - bu signalning emitent tomondan chiqib, qabul qiluvchiga qaytishi uchun sarflangan vaqt. Bu mikrosaniyalarda - lekin ovoz tezligini bilish har bir sm uchun 29 mikrosaniyadir (nima? Siz buni bilmaganmisiz?

Rasm
Rasm

Birinchidan - albatta, biz sensorni sirt masofasiga etkazish uchun masofani 2 ga bo'lishimiz kerak. Keyin, sensordan maksimal "maksimal" suv chuqurligiga doimiy masofani olib tashlang. Qolgan qiymat ishlatilgan suvning chuqurligidir. Keyin, bu qiymatni suvning maksimal chuqurligidan chiqarib tashlab, idishda qolgan suv chuqurligini toping.

Bu qiymat har qanday boshqa hisob -kitoblar uchun asos bo'lib xizmat qiladi, masalan, suv chuqurligini maksimal chuqurlikdagi foiz sifatida hisoblash yoki doimiy "sirt maydoni" ga ko'paytirib, ko'rsatilishi mumkin bo'lgan suv hajmini olish uchun. litrda (yoki galon yoki boshqa har qanday birlikda - agar siz matematikani bilsangiz - men soddalik uchun foizga tayanaman).

2 -qadam: Amaliylik

Jihozni qo'lda ushlab turish mumkin edi, lekin bu har doim ham bir xil joyda va bir xil burchakda ushlab turilmasa, kichik noaniqliklar paydo bo'lishi mumkin. Garchi bu juda kichik xato bo'lsa -da, va hatto ro'yxatga olinmagan bo'lsa ham, bu menga nigoh tashlagan narsadir.

Biroq, qo'lda ushlab turish, la'natlangan narsa tankga tashlanishi va boshqa ko'rilmasligi ehtimoli katta. Ikkala imkoniyatni ham yumshatish uchun, u yog'och uzunligiga o'rnatiladi, so'ngra tank ochiladigan joyga o'rnatiladi, shuning uchun o'lchov har doim bir xil balandlik va burchakdan olinadi (va agar u tushsa) tank, hech bo'lmaganda o'tin suzadi).

Bosish tugmasi qurilmani ishga tushiradi (shu bilan yoqish/o'chirish tugmachasi va tasodifan batareyaning ishdan chiqishi ehtimolini yo'q qiladi) va Arduino eskizini o'chiradi. Bu HC-SR04-dan bir qator o'qishlarni oladi va ularning o'rtacha qiymatini oladi (har qanday noto'g'ri o'qishni yumshatish uchun).

Bundan tashqari, Arduino raqamli kirish -chiqish pinlaridan birining yuqori yoki pastligini tekshirish uchun bir nechta kodni kiritdim va undan foydalanib, men qurilmani "kalibrlash" rejimiga qo'ydim. Ushbu rejimda displey sensor tomonidan qaytarilgan haqiqiy masofani ko'rsatadi (2 ga bo'linadi), shuning uchun men uning to'g'riligini lenta o'lchovi bilan tekshirishim mumkin edi.

3 -qadam: Tarkibi

Qurilma uchta asosiy komponentdan iborat …

Rasm
Rasm
  1. HC-SR04 ultratovushli uzatuvchi/qabul qiluvchi moduli
  2. Arduino Pro Mini mikrokontroller
  3. 4 xonali 7 segmentli LED displey yoki displey "moduli", masalan TM1637

Yuqorida aytilganlarning barchasini ebayda osongina topish mumkin, shunchaki qalin harflar bilan ko'rsatilgan shartlarni qidirish.

Bu ilovada displeyda 3 ta raqam ishlatiladi, ular 0-100 % qiymatini ko'rsatadi yoki litr sonini ko'rsatish uchun 4 ta raqamdan iborat (mening holatimda maksimal 2000), shuning uchun har qanday 4 ta raqamli displey shunday qiladi - bunga hojat yo'q modulda o'nlik nuqta yoki ikki nuqta borligi haqida tashvishlaning. "Modul" displeyi (svetodiodli panelga o'rnatilgan, interfeysi chipli) osonroq, chunki u kamroq pinli ulanishni ishlatadi, lekin 12 pinli xom LED displey Arduino tomonidan kodga ozgina o'zgartirishlar kiritilishi mumkin (aslida mening asl dizaynim shu sozlamaga asoslangan edi). Shuni esda tutingki, LED displeyni ishlatishda har bir segment tomonidan o'tkaziladigan tokni cheklash uchun 7 ta rezistor kerak bo'ladi. Menda TM1637 soatli displey moduli bor edi, shuning uchun uni ishlatishga qaror qildim.

Qo'shimcha bit va boblarga 9V akkumulyator qisqichi (va, albatta, batareya), "bosish" tugmachasi, loyiha qutisi, bosh pinlari, ulash simlari va uzunligi 2 "x4" dan oshadigan yog'och kiradi. tank ochilishining diametri.

Qo'shimcha bit va boblar (yog'ochdan tashqari) mening sevimli mashg'ulotlarim elektronika tarmog'idan sotib olingan - bu Avstraliyadagi Jaykar. Menimcha, Buyuk Britaniyadagi Maplin munosib alternativa bo'lardi va menimcha, AQShda Digikey va Mouser kabi bir nechtasi bor. Boshqa mamlakatlar uchun, men bilmayman deb qo'rqaman, lekin ishonchim komilki, agar sizning mamlakatingizda mos keladigan ko'cha ko'chasi yoki Internet -provayderingiz bo'lmasa, xitoylik ebay sotuvchilari siz uchun keladi. etkazib berish uchun bir necha hafta kutish ongi (ajablanarli tomoni shundaki, eng yaqin qo'shnilarimizdan biri bo'lishiga qaramay, Xitoydan Avstraliyaga etkazib berish 6 hafta yoki undan ko'p emas).

Siz etarlicha katta loyiha qutisini olganingizga ishonch hosil qiling - men komponentlar mavjud bo'lishidan oldin taxmin qildim va bu juda qattiq siqilish - men o'zimga kamroq joy ishlatadigan boshqa tugmachani olishim kerak bo'lishi mumkin.

Aytgancha, yog'och uzunligi men garajning burchagida saqlagan bo'laklardan qilingan (bu o'rgimchaklarning ko'pchiligi uchun uy sifatida).

Sxematik va funksionallikni tushunganingizdan so'ng, siz o'z versiyangizni moslashtirishga, yoqish/o'chirishga, yoki quyosh panelli va zaryad regulyatoriga ega 18650 Li-Ion quvvat manbaidan foydalanishga qaror qilishingiz mumkin., yoki oddiy LED displeyini ko'p chiziqli LCD yoki grafik OLED uchun o'zgartiring, masalan, bir vaqtning o'zida qolgan foiz va V litrni ko'rsatish kabi qo'shimcha ma'lumotni ko'rsatish imkoniyatlari bilan. Yoki siz quyosh batareyasi bilan tankga o'rnatilgan, qo'shiq aytadigan, raqsga tushadigan simsiz IoT qurilmasini tanlashingiz mumkin. O'zgarishlaringiz va o'zgartirishlaringiz haqida eshitishni istardim.

4 -qadam: Prototipni (va kodni) sinovdan o'tkazish

HC-SR04-ni ebaydan arzon xitoylik manbadan sotib olganimdan so'ng, men juda aniq qurilmani olishni kutmagan edim, shuning uchun men masofani to'g'rilash kodini kiritishim kerak bo'lsa, men uni birinchi bo'lib taxtada sinab ko'rmoqchi edim. eskizim.

Bu vaqtda men HC-SR04-ni qanday ulash va ishlatish haqida asosiy ma'lumotni qidirayotgan edim va jsvesterning ko'rsatmasi "Oddiy Arduino va HC-SR04 misoli" ni tan olishim kerak. Uning namunasi va tajribasi men uchun kodlashni boshlash uchun ajoyib boshlanish nuqtasi bo'ldi.

Men HC-SR04 uchun funktsiyalarning NewPing kutubxonasini topdim, u o'z ichiga o'rtacha funktsiyalarni bir necha o'qish uchun oladi va shu bilan mening kodimni ancha soddalashtiradi.

Men TM1637 soatli displey moduli uchun kutubxona topdim, bu raqamlarni ko'rsatishni ancha soddalashtirdi. Mening asl kodimda (4 xonali 7 segmentli displey uchun), men raqamni alohida raqamlarga bo'lishim kerak edi, keyin ekranning har bir alohida raqamini qaysi segmentlar yoritilishini bilib, keyin raqamning har bir raqamini aylanib o'tishim kerak edi. va bu raqamni tegishli displey raqamiga yarating. Bu usul multiplekslash deb ataladi va bir vaqtning o'zida bitta raqamni samarali ko'rsatadi, lekin ular bir raqamdan ikkinchisiga shunchalik tez o'tib ketadiki, inson ko'zlari sezmaydi va sizni barcha raqamlar yoqilgan deb ishontiradi. xuddi shu paytni o'zida. HC-SR04 kutubxonasida bo'lgani kabi, o'lchash operatsiyalari ham osonlashadi, bu kutubxona barcha ko'paytirish va raqamli ishlov berish bilan shug'ullanadi. Yuqorida bog'langan Arduino ma'lumotnomasi sahifalarida ba'zi misollar keltirilgan va, albatta, har bir kutubxonada katta yordamchi bo'lishi mumkin bo'lgan namunaviy kod mavjud.

Rasm
Rasm
Rasm
Rasm

n

Shunday qilib, yuqoridagi rasmlar mening sinov qurilmamni ko'rsatadi - men uni Arduino Uno -da soddaligi uchun sinovdan o'tkazyapman, chunki bu prototiplash uchun vaqtincha qayta ishlatiladigan ulanishlar uchun o'rnatilgan. Jihoz bu erda "kalibrlash" rejimida ishlaydi (raqamli pin 10 - oq sim - erga ulangan) va tasma o'lchovida ko'rsatilgandek, men tasodifan uning oldiga qo'ygan qutiga 39 sm aniq o'qiladi. Bu rejimda men kichik "c" ni o'lchov oldidan ko'rsataman, bu oddiy o'lchov emasligini ko'rsatish uchun.

Vcc (5v) va Ground singari, HC -SR04 yana 2 ta ulanishga muhtoj - tetik (sariqdan 6 -pingacha) va aks -sado (yashildan 7 -pingacha). Shuningdek, displeyga Vcc (5v) va Ground va yana 2 ta ulanish kerak - soat (ko'kdan 8 -pingacha) va DIO (binafsha rangdan 9 -pingacha). Yuqorida aytib o'tilganidek, ish rejimi yuqori yoki past pin 10 (oq) bilan boshqariladi. Ulanishlar Arduino Pro Mini -da bir xil pinlardan foydalaniladi, lekin ular doimiy ravishda lehimlanadi. Ishlash rejimi VC, pin 10 va erga ulangan uchta bosh pimdan ikkitasida o'tish moslamasi yordamida tanlanadi.

HC -SR04 -ning rasmiy ma'lumotlariga ko'ra, maksimal xato 4 millimetrgacha bo'lgan 3 millimetrlik xatoga to'g'ri keladi, shuning uchun mening qurilmam 2 metrgacha aniqligini aniqlaganimdan hayron qoling. bu menga kerak bo'lganidan ancha yaxshi. Tez va iflos testlarni o'rnatish uchun joy cheklanganligi sababli, mening masofadan uzoqroqdagi test natijalarim buzilgan edi, chunki transmitterning nurlari tarqalib, kengroq maydonni egalladi. Ammo, agar u 1,5 metrgacha yaxshi bo'lsa - bu menga yaxshi bo'ladi, sizga katta rahmat:-)

5 -qadam: Yomg'ir suvi o'lchagichi Ino eskiz

To'liq kod biriktirilgan, lekin men ba'zi qadamlarni tushuntirish uchun quyida bir nechta ko'chirmalarni qo'shaman.

Birinchidan, sozlash …

#qo'shing

#include #include // HC-SR04 uchun pinlar #pinTrig 6 ni belgilang #pinni aniqlangEcho 7 NewPing sonar (pinTrig, pinEcho, 155); // HC-SR04 uchun maksimal 400 sm, tank uchun maksimal 155 sm // LED modulli ulanish pinlari (raqamli pinlar) #define CLK 8 #define DIO 9 TM1637 displey (CLK, DIO); // Boshqa pinlar #define opMode 10

TM1637 va NewPing kutubxonalaridan tashqari, men matematik kutubxonani ham o'z ichiga oldim, bu menga "yaxlitlash" funktsiyasidan foydalanish imkonini beradi. Men buni ba'zi matematikalarda ishlataman, masalan, foizni 5% aniqlik bilan ko'rsatishga imkon beradi.

Keyin ikkita qurilmaning pinlari aniqlanadi va qurilmalar ishga tushiriladi.

Nihoyat, ish rejimi uchun 10 -pinni aniqlayman.

// barcha raqamlar uchun barcha segmentlarni o'chirib qo'ying

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

Kodning ushbu bo'limi displey modulini boshqarishning bir usulini ko'rsatadi, bu har bir sonda har bir segmentni individual nazorat qilish imkonini beradi. Men bayt deb nomlangan 4 ta elementni nolga o'rnatdim. Bu shuni anglatadiki, har bir baytning har bir biti nolga teng. 8 bit 7 segmentning har birini va kasr nuqtasini (yoki soat turidagi displeyda yo'g'on ichakni) boshqarish uchun ishlatiladi. Shunday qilib, agar barcha bitlar nol bo'lsa, segmentlarning hech biri yonmaydi. SetSegments operatsiyasi massiv tarkibini displeyga yuboradi va (bu holda) hech narsani ko'rsatmaydi. Barcha segmentlar o'chirilgan.

Rasm
Rasm

Baytdagi eng muhim bit DPni nazorat qiladi, keyin qolgan 7 bit G -A dan 7 segmentni teskari tartibda boshqaradi. Masalan, 1 raqamini ko'rsatish uchun B va C segmentlari kerak, shuning uchun ikkilik tasvir "0b00000110" bo'ladi. (Yuqoridagi rasm uchun CircuitsToday.com saytiga rahmat).

// 10 marta o'qing va o'rtacha davomiylikdan foydalaning.

int davomiyligi = sonar.ping_median (10); // davomiyligi mikrosaniyalarda, agar (davomiylik == 0) // O'lchov xatosi - aniq emas yoki aks sado yo'q {uint8_t bayt = {0x00, 0b01111001, 0b01010000, 0b01010000}; // "Err" yozuvi uchun segmentlar display.setSegments (bayt); }

Bu erda men HC-SR04 ga 10 o'qishni va o'rtacha natijani berishini aytaman. Agar qiymat qaytarilmasa, birlik chegaradan tashqarida. So'ngra men 4 ta raqamli segmentlarni nazorat qilish, harflarni (bo'sh), E, r va r harflarini yozish uchun yuqoridagi usuldan foydalanaman. Ikkilik yozuvlardan foydalanish alohida bitlarni segmentlarga bog'lashni biroz osonlashtiradi.

6 -qadam: Arduino Pro Mini -ga kodni yuklash (USB holda)

Yuqorida aytganimdek, Xitoyning ebay sotuvchilaridan keladigan buyumlar odatda 6 hafta yoki undan ko'proq vaqtni oladi va mening prototiplarim va kod yozishimning bir qismi ba'zi komponentalar kelishini kutish paytida qilingan - Arduino Pro Mini ulardan biri.

Men buyurtma bermagunimcha, Pro Mini haqida men sezmagan narsa shundaki, unda eskizni yuklab olish uchun USB porti yo'q. Shunday qilib, biroz shov -shuvli googlingdan so'ng, men eskizni yuklashning ikkita usuli borligini aniqladim - bunda sizning shaxsiy kompyuteringiz USB -dan, Pro Mini -dagi 6 ta maxsus pingacha bo'lgan maxsus kabel kerak. Bu 6 pinli guruh ISP (tizim ichidagi dasturchi) pinlari sifatida tanilgan va agar xohlasangiz, bu usulni har qanday Arduino -da ishlatishingiz mumkin, lekin USB interfeysi Arduino -ning boshqa barcha variantlarida mavjud bo'lgani uchun (I) o'ylab ko'ring), bu variantni ishlatish ancha sodda. Boshqa usul sizga USB interfeysi bo'lgan boshqa Arduino-ni o'rnatishni talab qiladi.

Yaxshiyamki, mening Arduino Uno -ga ega bo'lishim, men sizga ikkinchi usulni ishlatishni anglatardi, men sizga quyida aytib beraman. U "Arduino provayder sifatida" deb nomlanadi. Xulosa qilib aytganda, siz Arduino-ga ketma-ket interfeysga aylanadigan maxsus eskizni yuklaysiz. Keyin haqiqiy eskizni yuklang, lekin oddiy yuklash opsiyasi o'rniga siz "Arduino -ni ISP sifatida yuklaydigan" IDE menyusidan variantni ishlatasiz. Keyin "o'tish" Arduino sizning haqiqiy eskizingizni IDE-dan oladi va uni o'z xotirasiga yuklamasdan, uni Pro Mini provayderining pinlariga o'tkazadi. Boshingizni qanday ishlashini bilib olsangiz, bu qiyin emas, lekin siz undan qochishni xohlashingiz mumkin bo'lgan qo'shimcha murakkablik. Agar shunday bo'lsa yoki sizda "o'tish" sifatida ishlatadigan boshqa Arduino bo'lmasa, unda siz USB interfeysini o'z ichiga olgan Arduino Nano yoki boshqa kichik form faktorli modellardan birini sotib olishni xohlashingiz mumkin. va dasturlashni soddalashtirilgan istiqbolga aylantiradi.

Bu erda siz jarayonni tushunishga yordam beradigan bir nechta manbalar mavjud. Arduino ma'lumotnomasi maqsadli qurilmaga yangi yuklash qurilmasini yozishni nazarda tutadi, lekin siz xuddi shu tarzda eskizni osongina yuklashingiz mumkin. Men Julian Ilettning videosi kontseptsiyani yanada aniqroq qilib ko'rsatdi, lekin u Arduino ma'lumotnomasida ikkita Arduino simini qanday ulash kerakligini tushuntirib beradi va uning o'rniga non taxtasida yalang'och chipni dasturlab qo'yadi.

  • Arduino ma'lumotnomasi - Arduino -dan Internet -provayder sifatida foydalanish
  • Julian Ilettning YouTube videosi - Arduino -dan Internet -provayder sifatida foydalanish

Pro Mini -da 6 ta Internet -provayder pinlari qulay tarzda guruhlangani yo'q, siz raqamli pinlarning qaysi biri 4 ta dasturlash piniga tegishli ekanligini hal qilishingiz kerak (qolgan ikkita ulanish faqat Vcc va Gnd - shuning uchun juda oddiy). Yaxshiyamki, men buni boshimdan kechirdim - va men o'z bilimlarimni siz bilan bo'lishishga tayyorman - men qanday saxiy odamman !!

Arduino Uno va boshqa ko'plab Arduino oilasida 3x2 blokli 6 pin bor.

Rasm
Rasm

Afsuski, Pro Mini unday emas. Quyida ko'rib turganingizdek, ularni aniqlash juda oson va ular hali ham 3 pinli 2 blokdan iborat. MOSI, MISO va SCK Pro Mini va Arduino Uno -da mos ravishda 11, 12 va 13 raqamli pinlar bilan bir xil bo'ladi va ISP dasturlash uchun 11 dan 11 gacha, 12 dan 12 gacha va 13 dan 13 gacha ulang. Mini -ni tiklash pinini Uno pin 10 -ga, Pro Mini -ning Vcc (5v)/Ground -ni Arduino +5v/Ground -ga ulash lozim. (Rasm www.arduino.cc saytidan)

Rasm
Rasm

7 -qadam: yig'ish

O'rnatish
O'rnatish

Yuqorida aytib o'tganimdek, men bu ishni ko'rib chiqdim va pushaymon bo'ldim. Barcha komponentlarni moslashtirish haqiqiy siqish edi. Darhaqiqat, men tugmachaning kontaktlarini yon tomonga burishim kerak edi va qutiga chuqurroq joylashishi uchun uni biroz yuqoriga ko'tarish uchun tashqariga qadoq qo'yish kerak edi va men har tomondan 2-3 mm masofada silliqlashim kerak edi. unga mos kelishi uchun displey moduli taxtasi.

Ultrasonik datchiklar o'tishi uchun men 2 teshik ochdim. Men teshiklarni juda kichik burg'uladim, so'ngra ularni kichik aylanadigan tegirmon yordamida asta -sekin oshirib yubordim, shuning uchun ularni yaxshi "itarish" ga aylantirdim. Afsuski, ular maydalagichni qutining ichidan ishlata olmasliklari uchun yon tomonlarga juda yaqin edilar va buni tashqaridan qilish kerak edi, natijada maydalagich siljigan joyida ko'plab chizish va konki izlari paydo bo'ldi - oh, hammasi pastda baribir - kim qiziqadi..?

Keyin men bir uchidan displey o'tishi uchun to'g'ri o'lchamdagi uyani kesib tashladim. Yana - qutining kattaligi haqidagi taxminim meni orqa tomondan tishlab oldi, chunki uyasi displeyning tepasida juda nozik bo'lakni qoldirdi, men uni silliq topshirayotganda muqarrar ravishda sindirib tashladim. Xo'sh, super elim bu uchun ixtiro qilingan …

Nihoyat, barcha komponentlar taxminan qutiga joylashtirilganida, men tugmachaning tanasi oxirgi bo'sh joyga tushishi uchun qopqog'idagi teshikni qaerga qo'yish kerakligini o'lchadim. FAQAT !!!

Keyinchalik, men barcha komponentlarni lehim bilan birlashtirdim va ularning hammasini korpusga yig'ishdan oldin, ular egilganidan, silliqlaganimdan va qirqib bo'lgandan keyin ham ishlaganligini tekshirish uchun. Siz o'tish modulining pastida, Gnd -ga ulangan Arduino -dagi (oq sim) 10 -pinli ekran modulining pastida ulanishni ko'rishingiz mumkin, shu bilan jihozni kalibrlash rejimiga o'tkazasiz. Displey mening skameykadan 122 sm balandlikda o'qiydi - u deraza romining tepasidan aks etgan signalni olgan bo'lishi kerak (u shiftga juda past).

Rasm
Rasm

Bu issiq yopishtiruvchi qurolni sindirish va uning barcha qismlarini poyabzal bilan o'rash edi. Buni qilganimdan so'ng, men ko'rdimki, modul yopishtirilgandan so'ng, displey modulining yuqori qismi va qopqog'i orasidagi kichik bo'shliq, bir oz bo'rtma bo'lib qoldi, bu erda qopqoq men xohlagan darajada mahkam o'rnashmaydi.. Men bir kuni bu haqda biror narsa qilishga urinib ko'rsam bo'ladi, yoki, ehtimol …

Rasm
Rasm

8 -qadam: Tayyor maqola

O'rnatishdan keyingi bir nechta sinovlardan so'ng va yog'och qismining chuqurligini hisobga olgan holda kodimni tuzatgandan so'ng, men qurilmani burab qo'ydim (men buni o'z hisob -kitoblarimda umuman e'tibordan chetda qoldirdim - d'oh !!), hammasi bajarildi. Nihoyat!

O'rnatilgan sinov

Jihoz skameykada o'tirgan holda, hech qanday signal bo'lmaydi, shuning uchun qurilma xato holatini to'g'ri ko'rsatadi. Agar eng yaqin aks ettiruvchi sirt birlik diapazonidan tashqarida bo'lsa, xuddi shunday bo'ladi.

Rasm
Rasm

Mening skameykadan polgacha 76 sm (yaxshi, 72 sm va 4 sm yog'och chuqurligi).

Rasm
Rasm

Jihozning pastki tomoni, uzatuvchi va qabul qilgichning yog'och bo'laklarini ko'rsatib turibdi - men uni yog'och bo'lagi deb atashni to'xtatishim kerak - bundan buyon uni o'lchash stabillashishi va aniq joylashish platformasi deb atashadi! Yaxshiyamki, bu men oxirgi marta aytganimdir;-)

Ooh - siz bu yoqimsiz tirnalishlar va konki belgilarini ko'rishingiz mumkin …

Rasm
Rasm

… va bu erda mening ish hajmimni 5%aniqlik bilan o'lchaydigan oddiy ish rejimida tayyor mahsulot. Yakshanba kuni tushdan keyin yomg'ir yog'di, men loyihani tugatdim, shuning uchun yomg'ir tomchilari va 90% o'qish juda yoqdi.

Rasm
Rasm

Umid qilamanki, siz ushbu ko'rsatmalarni o'qishni yoqtirdingiz va siz Arduino dasturlash, fizika va sonar/ultratovushli aks ettirish, loyihalarni rejalashtirishda taxminlardan foydalanishning tuzoqlari haqida bir oz ma'lumotga ega bo'ldingiz va o'zingizdan ilhom oldingiz. O'zingizning yomg'ir suvini o'lchash moslamasi - keyin uni ishlatish uchun yomg'irli suv idishini o'rnatib, atrof -muhitga ozgina yordam berib, suv hisobini tejang.

Iltimos, o'qing - ertasi kuni nima bo'lganini …!

9 -qadam: Postscript - yuz (va besh) foizmi?

Shunday qilib, dushanba kuni yomg'irli yakshanbadan keyin, tank iloji boricha to'la edi. Men uni to'la -to'kis ko'rganim juda kamdan -kam holatlardan biri bo'lgani uchun, men o'lchagichni taqqoslash uchun ideal vaqt bo'ladi deb o'yladim, lekin taxmin qil - bu 105%deb qayd etilgan, shuning uchun noto'g'ri narsa bo'lgan.

Men o'lchov tayog'ini oldim va suvning maksimal chuqurligi 140 sm va bosh balandligi 16 sm (tank tashqarisidan qilingan vizual taxminlarga asoslangan) haqidagi taxminlarim haqiqiy o'lchovlardan bir oz farq qiladi. 100% benchmark uchun haqiqiy ma'lumotlar bilan qurollanib, men o'z kodimni o'zgartirib, Arduino -ni qayta yuklay oldim.

Maksimal suv chuqurligi 147 sm ni tashkil qiladi, o'lchash nuqtasi 160 sm bo'lib, 13 sm bosh bo'shlig'ini beradi (tank ichidagi bosh bo'shlig'ining yig'indisi, tank bo'yinining balandligi va bo'lakning chuqurligi …, Yo'q, nima?! Men o'lchagichni barqarorlashtirish va aniq joylashtirish platformasining chuqurligini nazarda tutyapman!).

MaxDepth va headroom o'zgaruvchilarini mos ravishda tuzatgandan so'ng, shuningdek, sonar ob'ektining maksimal diapazoni 160 sm ga o'rnatilgandan so'ng, tez test 100% ni ko'rsatdi, men o'lchagichni biroz ko'targanimda (95% gacha) suv ishlatilgan).

Ish tugadi!

PS - bu mening ko'rsatma berishga bo'lgan birinchi urinishim. Agar sizga mening uslubim, hazil tuyg'usi, xatolarni tan olishning halolligi yoqsa (men - men mukammal emasman …) va hokazo - menga xabar bering, bu menga boshqasini qilishga turtki berishi mumkin.

10 -qadam: So'nggi fikrlar

Foydalanish quvvati

Shunday qilib, men bu ko'rsatmalarni nashr qilganimga bir necha hafta bo'ldi va men bunga javoban ko'plab sharhlar berdim, ulardan ba'zilari elektron yoki qo'lda muqobil mexanizmlarni taklif qilishdi. Lekin bu meni o'ylantirdi va men boshida ta'kidlashim kerak bo'lgan narsa bor.

  • Mening tankimda nasos bor, u er sathida - tank tagidan biroz pastda. Nasos tizimning eng past nuqtasi bo'lgani uchun va nasosdan keladigan suv bosim ostida, men o'z tankimning to'liq quvvatidan foydalanishim mumkin.
  • Ammo - agar sizning tankingizda nasos bo'lmasa va u tortish kuchiga tayansa, tankning samarali quvvati kran balandligingiz bilan chegaralanadi. Tankingizda qolgan suv musluktan pastroq bo'lsa, suv oqmaydi.

Shunday qilib, siz elektron o'lchagich, qo'lda ishlaydigan ko'zoynak yoki suzuvchi va bayroqli tizimdan foydalanmasligingizdan qat'i nazar, shuni bilingki, nasossiz, sizning tankingizning samarali "asosi" tankning chiqish balandligi yoki teging.

Tavsiya: