Mündəricat:

Ultrasonik Yağış Suyu Tankı Ölçmə Cihazı: 10 Adım (Şəkillərlə)
Ultrasonik Yağış Suyu Tankı Ölçmə Cihazı: 10 Adım (Şəkillərlə)

Video: Ultrasonik Yağış Suyu Tankı Ölçmə Cihazı: 10 Adım (Şəkillərlə)

Video: Ultrasonik Yağış Suyu Tankı Ölçmə Cihazı: 10 Adım (Şəkillərlə)
Video: Rainwater tank level indicator/gauge 2024, Iyul
Anonim
Ultrasonik Yağış Suyu Tankı Ölçmə Cihazı
Ultrasonik Yağış Suyu Tankı Ölçmə Cihazı

Əgər mənim kimi bir şeysənsə və bir az ətraf mühit vicdanına sahibsənsə (və ya sadəcə bir neçə dollar qənaət etmək istəyən dərilərsənsə - bu da mənəm …), yağış suyu çəninə sahib ola bilərsən. Avstraliyada aldığımız nadir yağışları yığmaq üçün bir tankım var - amma oğlan, oğlan, burada yağış yağanda, həqiqətən də yağış yağır! Tankım təxminən 1,5 m hündürlükdədir və bir plintdədir, yəni suyun səviyyəsini yoxlamaq üçün addımlar atmalıyam (və ya çox tənbəl olduğum üçün barbeküdən götürülmüş köhnə bir qaz şüşəsinin üstündə tarazlıq qururam. tankın yanında 'addım' olaraq daimi yaşayış yeri).

Bir tərəfdən drenaj borusuna asılmadan tankdakı suyun səviyyəsini yoxlamaq üçün bir yol istədim (arxasında hansı hörümçəklərin ola biləcəyini narahat edərkən - Avstraliyalı hörümçəklər haqqında eşitmisiniz - elə deyilmi?) … Beləliklə, həyatın sonlarında elektronikaya olan maraq və ebayda Çindən gələn ucuz Arduino klonları ilə mənim üçün işi görmək üçün bir 'widget' qurmağa qərar verdim.

İndi "xəyalım" widgetı tanka daimi olaraq quraşdırılmalı, qarajımda uzaqdan oxunan günəş enerjisi ilə işləyən bir enerji mənbəyindən istifadə etməli və ya telefonumdan yoxlaya biləcəyim Bluetooth istifadə edərək simsiz bir ötürücü və ya bəlkə də İnternet üzərindən dünyanın hər yerindən tankımdakı suyun səviyyəsini yoxlaya biləcəyim üçün avtomatik olaraq yenilənən bir veb səhifəsinə sahib olan ESP tipli cihaz … amma həqiqətən - bütün bunlara niyə ehtiyacım var? Böyük ideallarımı bir qədər geri çevirdim (yaxşı, xeyli dərəcədə) və həllin simsizliyini, daimi qurulmasını, günəş enerjisi ilə doldurulmasını və tankın səviyyəsini kənarın ucundan yoxlamaq qabiliyyətini yox etdim (həmişə kənarın arxa tərəfində WiFi mövcud olduğunu nəzərə alsaq, yəni …)

Nəticədə ortaya çıxan layihə, yuxarıda göründüyü kimi, tankın açılması üzərində saxlanıla bilən və yerdən oxuna bilən rəqəmsal oxunuşlu bir düymə ilə aktivləşdirilə bilən əl qurğusuna endirildi - daha praktik.

Addım 1: Riyaziyyat…

Su səviyyəsini necə təyin etmək barədə bir neçə fikirlə oynadıqdan sonra - widgetımın əsası olaraq ultrasəs ötürücü/qəbuledici və oxuları götürmək və bütün riyazi hesablamalar aparmaq üçün bir Arduino istifadə etmək qərarına gəldim. Sensordan qaytarılmış oxunuşlar (dolayı yolla) bir məsafə şəklindədir - ultrasəs sensordan sıçradığı səthə (su səthi - və ya boş olduqda tankın dibi) və yenidən geri, buna görə də ehtiyacımız var. tankda qalan bir faizə çatmaq üçün bununla bir neçə şey etmək.

NB - əslində, sensordan qaytarılmış dəyər, həqiqətən, siqnalın emitent tərəfdən çıxıb alıcıya qayıtması üçün sərf olunan vaxtdır. Bu mikrosaniyələrdədir - lakin səsin sürətini bilmək hər bir sm üçün 29 mikrosaniyədir (Nə? Bunu bilmirdinizmi? Pfft…) bir zaman aralığından məsafə ölçməsinə asan bir dönüşüm edir.

Şəkil
Şəkil

Birincisi - əlbəttə ki, sensoru səth məsafəsinə çatdırmaq üçün məsafəni 2 -yə bölməliyik. Sonra, sensordan 'maksimum' su dərinliyinə qədər olan sabit məsafəni çıxarın. Qalan dəyər istifadə olunan suyun dərinliyidir. Sonra, tankdakı suyun dərinliyini tapmaq üçün bu dəyəri maksimum su dərinliyindən çıxarın.

Bu dəyər, suyun bu dərinliyini maksimum dərinliyin bir faizi olaraq işlətmək və ya göstərilə bilən bir su həcmi əldə etmək üçün dərinliyi sabit "səth sahəsi" ilə vurmaq kimi digər hesablamalar üçün əsasdır. litr (və ya galon və ya hər hansı digər vahid - bunu etmək üçün riyazi bildiyiniz müddətcə - sadəlik üçün bir faizə yapışıram).

Addım 2: Praktikliklər

Cihaz əllə tutula bilərdi, ancaq bu cihazın hər dəfə eyni yerdə və eyni bucaq altında saxlanılmadığı təqdirdə kiçik dəqiqliklərə səbəb ola bilər. Yalnız çox kiçik bir səhv olsa da və yəqin ki, qeydiyyatdan keçməsə belə, bu, məndən uzaqlaşan bir şey olardı.

Ancaq əllə tutmaq, lənətə gəlmiş şeyin tanka düşməsi və bir daha görülməməsi ehtimalı daha böyükdür. Bu imkanlardan ikisini də azaltmaq üçün, ağacın uzunluğuna bərkidiləcək, daha sonra tankın ağzının üstünə qoyulacaq - beləliklə ölçü hər dəfə eyni hündürlükdən və bucaqdan alınacaq (və əgər tank, heç olmasa ağac üzəcək).

Bir düymə cihazı aktivləşdirir (bununla da açma/söndürmə açarına ehtiyac yox olur və təsadüfən batareyanın batması ehtimalı aradan qaldırılır) və Arduinonun eskizini işə salır. Bu, HC-SR04-dən bir sıra oxunuşlar alır və onların ortalamasını alır (hər hansı bir qeyri-müəyyən oxunuşu azaltmaq üçün).

Arduino rəqəmsal G/Ç pinlərindən birinin yüksək və ya aşağı olduğunu yoxlamaq və vahidi 'Kalibrləmə' rejiminə daxil etmək üçün istifadə etmək üçün bir az kod da daxil etdim. Bu rejimdə, ekran sadəcə sensor tərəfindən qaytarılmış həqiqi məsafəni (2 -yə bölünmüş) göstərir, buna görə də onun düzgünlüyünü lent ölçüsü ilə yoxlaya bilərəm.

Addım 3: Tərkibi

Cihaz üç əsas komponentdən ibarətdir …

Şəkil
Şəkil
  1. HC-SR04 ultrasəs ötürücü/qəbuledici modulu
  2. Arduino Pro Mini mikro nəzarətçi
  3. 4 rəqəmli 7 seqmentli LED displey və ya TM1637 kimi 'modul'

Yuxarıda göstərilənlərin hamısını ebay -da asanlıqla qalın şriftlə göstərilən terminləri axtarıb tapmaq olar.

Bu tətbiqdə, ekran, litr sayını göstərmək üçün 0-100 və ya 4 rəqəminin % dəyərini göstərmək üçün 3 rəqəmdən istifadə edir (mənim vəziyyətimdə maksimum 2000), buna görə hər hansı bir 4 rəqəmli ekran bunu edəcək - buna ehtiyac yoxdur modulun ondalık və ya iki nöqtəli olub -olmamasından narahat olun. Daha az pin əlaqəsi istifadə etdiyi üçün bir ekran 'modulu' (kəsmə lövhəsinə quraşdırılmış LED) daha asandır, lakin kodda bəzi kiçik dəyişikliklərlə Arduino tərəfindən 12 sancaqlı xam LED displey yerləşdirilə bilər (əslində mənim orijinal dizaynım bu quruluşa əsaslanırdı). Ancaq unutmayın ki, xam LED displeydən istifadə etməklə hər seqmentin çəkdiyi cərəyanı məhdudlaşdırmaq üçün 7 rezistor tələb olunur. TM1637 saat ekran moduluna sahib oldum, buna görə də istifadə etməyə qərar verdim.

Əlavə bit və boblərə 9v batareya klipi (və aydındır ki, batareya), 'bas-to-make' ani düymə açarı, bir layihə qutusu, baş pinləri, birləşdirən tellər və uzunluğu 2 "x4" olan ağac daxildir. tank açılışının diametri.

Əlavə bitlər və taxtalar (taxtadan başqa) Avstraliyadakı Jaycar olan yerli hobbi elektronika satış zəncirimdən alındı. İngiltərədəki Maplin'in uyğun bir alternativ olacağını düşünürəm və düşünürəm ki, ABŞ -da Digikey və Mouser kimi bir neçə var. Başqa ölkələr üçün qorxuram ki, bilmirəm, amma əminəm ki, ölkənizdə uyğun bir küçə satış nöqtəsi və ya onlayn təchizatçınız yoxdursa, Çinli ebay satıcıları sizin üçün keçəcəklər. çatdırılma üçün bir neçə həftə gözləyən ağıl (istehza ilə, ən yaxın qonşularımızdan biri olmasına baxmayaraq, Çindən Avstraliyaya çatdırılma üçün 6 həftə və ya daha çox qeyri -adi deyil!).

Kifayət qədər böyük bir layihə qutusu aldığınızdan əmin olun - komponentləri əldə etməzdən əvvəl özümdə təxmin etdim və bu, həqiqətən də sıx bir sıxışdır - daha az yer istifadə edən fərqli bir düyməyə ehtiyacım ola bilər.

Ah, yeri gəlmişkən, ağacın uzunluğu qarajımın küncündə saxladığım bəzi qırıntılardan (o sevimli örümceklerin daha çoxu üçün bir ev olaraq) gəldi.

Sxematik və funksionallığı başa düşdükdən sonra, versiyanızı uyğunlaşdırmağa və açma/söndürmə açarına əlavə etməyə və ya daim doldurulmasını və işə hazır olmasını təmin etmək üçün günəş paneli və şarj tənzimləyicisi olan 18650 Li-Ion enerji mənbəyindən istifadə etməyə qərar verə bilərsiniz. və ya eyni zamanda qalan faizin və litrin göstərilməsi kimi daha çox məlumat göstərmə variantları olan çox xətti LCD və ya qrafik OLED üçün sadə LED ekranı dəyişdirin. Və ya günəş enerjisi ilə tanka quraşdırılmış, bütün mahnıları oxuyan, rəqs edən simsiz IoT cihazına gedə bilərsiniz. Variantlarınızı və dəyişikliklərinizi eşitmək istərdim.

Addım 4: Prototipin (və Kodun) sınanması

HC-SR04-i ebayda ucuz bir Çin mənbəyindən satın aldıqdan sonra çox dəqiq bir cihaz alacağımı gözləmirdim, buna görə bir az məsafə düzəltmə kodu əlavə etməyim lazım olduğu təqdirdə əvvəlcə çörək taxtasında sınamaq istədim. eskizim.

Bu nöqtədə, HC-SR04-ə necə qoşulmaq və istifadə etmək barədə əsas məlumatları öyrənməyə başladım və jsvester-in təlimatlı "Sadə Arduino və HC-SR04 nümunəsini" qəbul etməliyəm. Onun nümunəsi və təcrübəsi kodlaşdırmağa başlamağım üçün əla bir başlanğıc nöqtəsi idi.

HC-SR04 üçün funksiyaların NewPing kitabxanasını tapdım ki, bu da birdən çox oxunuşun ortalamasını almaq üçün daxili funksiyanı özündə birləşdirir və bununla da kodumu daha da asanlaşdırır.

TM1637 saat ekran modulu üçün də kitabxananı tapdım ki, bu da rəqəmlərin göstərilməsini çox asanlaşdırdı. Orijinal kodumda (4 rəqəmli 7 seqmentli ekran üçün) nömrəni fərdi rəqəmlərə bölmək məcburiyyətində idim, sonra hansı seqmentlərin işıqlandırılacağını bilməklə ekrandakı hər bir fərdi rəqəmi qurmalı idim və sonra rəqəmdəki hər rəqəmdən keçmək lazım idi. və bu nömrəni müvafiq ekran rəqəmi üzərində qurun. Bu üsula multipleksasiya deyilir və bir anda tək bir rəqəmi təsirli bir şəkildə göstərir, ancaq bir rəqəmdən digərinə o qədər sürətlə keçir ki, insan gözü fərq etməz və sizi bütün rəqəmlərin açıq olduğuna inanmağa sövq edir. eyni vaxtda. Ölçmə əməliyyatlarını asanlaşdıran HC-SR04 kitabxanasında olduğu kimi, bu ekran kitabxanası da bütün çoxaltma və rəqəmlərin işlənməsi ilə məşğul olur. Yuxarıda əlaqələndirilən Arduino Referans səhifələri bəzi nümunələr verir və əlbəttə ki, hər kitabxanada böyük bir kömək ola biləcək nümunə kodu verilir.

Şəkil
Şəkil
Şəkil
Şəkil

n

Beləliklə, yuxarıdakı şəkillər mənim test qurğumu göstərir - sadəlik üçün Arduino Uno -da sınaqdan keçirirəm, çünki bu, prototip üçün müvəqqəti olaraq yenidən istifadə edilə bilən bağlantılar üçün qurulmuşdur. Cihaz burada "Kalibrləmə" rejimində işləyir (rəqəmsal pin 10 - ağ telin yerə qoşulduğuna diqqət yetirin) və lent ölçüsündə göstərildiyi kimi təsadüfi olaraq qabağına qoyduğum qutuya 39 sm dəqiqliklə oxuyur. Bu rejimdə, ölçmədən əvvəl kiçik 'c' işarəsini göstərirəm, sadəcə bunun normal ölçü olmadığını göstərirəm.

Vcc (5v) və Ground kimi, HC -SR04 -ün digər 2 əlaqəyə ehtiyacı var - tətik (sarıdan 6 -cı pilə) və əks -səda (yaşıldan 7 -yə qədər). Ekranda ayrıca Vcc (5v) və Ground və daha 2 əlaqə - saat (mavi 8 -dən pin) və DIO (bənövşəyi -pin 9 -a qədər) lazımdır. Artıq qeyd edildiyi kimi, iş rejimi yüksək və ya aşağı pin 10 (ağ) ilə idarə olunur. Bağlantılar Arduino Pro Mini -də eyni sancaqlar istifadə edəcək, lakin daimi olaraq lehimlənəcək. İş rejimi, müvafiq olaraq Vcc, pin 10 və yerə bağlı olan hər üç başlıq pinindən ikisində bir tullanan istifadə edərək seçilə bilər.

HC -SR04 üçün rəsmi xüsusiyyətlər, maksimum 4 metrlik işləmə məsafəsinə qədər yalnız 3 millimetrlik bir maksimum səhv kimi bir şey iddia edir, buna görə də cihazımın 2 metrə qədər dəqiq olduğunu başa düşmək mənim təəccübümü təsəvvür edin. ehtiyacımdan xeyli artıqdır. Sürətli və çirkli bir test qurmaq üçün yer məhdud olduğuna görə, ötürücüdən gələn şüa daha geniş bir sahəyə yayıldığı üçün, test məsafəmdən kənarda olan test nəticələrim pozulub. Ancaq 1,5 metrə qədər yaxşı olduğu müddətdə - bu məni gözəl edəcək, çox sağ ol:-)

Addım 5: Yağış Suyu Göstəricisi İno Sketch

Tam kod əlavə olunur, lakin bəzi addımları izah etmək üçün aşağıda bir neçə çıxarış daxil edəcəyəm.

Hər şeydən əvvəl, quraşdırma…

#daxil edin

#include #include // sancaqlar HC-SR04 üçün #define pinTrig 6 #define pinEcho 7 NewPing sonar (pinTrig, pinEcho, 155); // HC-SR04 üçün maksimum 400cms, tank üçün 155cms maksimumdur // LED Modulu bağlantı pinləri (Digital Pins) #define CLK 8 #define DIO 9 TM1637Display display (CLK, DIO); // Digər sancaqlar #Mod 10 təyin edin

TM1637 və NewPing kitabxanaları ilə yanaşı, 'yuvarlaqlaşdırma' funksiyasına giriş imkanı verən bir Riyaziyyat kitabxanası da daxil etdim. Faizi, məsələn, 5% -ə qədər dəqiq göstərməyimə icazə vermək üçün bunu bəzi riyaziyyatda istifadə edirəm.

Sonra iki cihazın pinləri təyin olunur və cihazlar işə salınır.

Nəhayət, iş rejimi üçün pin 10 təyin edirəm.

// bütün rəqəmlər üçün bütün seqmentləri söndürün

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

Kodun bu bölməsi, hər bir rəqəmdə hər seqmentə fərdi nəzarət etməyə imkan verən, ekran modulunu idarə etməyin bir yolunu nümayiş etdirir. Bayt adlı serialdakı 4 elementi sıfıra qoydum. Bu o deməkdir ki, hər baytın hər biti sıfırdır. 8 bit hər 7 seqmenti və ondalık nöqtəni (və ya saat tipli ekranda iki nöqtəni) idarə etmək üçün istifadə olunur. Beləliklə, bütün bitlər sıfır olarsa, heç bir seqment yanmaz. SetSegments əməliyyatı serialın məzmununu ekrana göndərir və (bu halda) heç nə göstərmir. Bütün seqmentlər deaktivdir.

Şəkil
Şəkil

Bir baytdakı ən əhəmiyyətli bit DP -ni idarə edir və sonra qalan 7 bit G -dən A -a qədər olan 7 seqmenti tərs qaydada idarə edir. Məsələn, 1 sayını göstərmək üçün B və C seqmentləri tələb olunur, buna görə ikili təmsil '0b00000110' olardı. (Yuxarıdakı şəkil üçün CircuitsToday.com saytına təşəkkürlər).

// 10 oxu alın və orta müddətdən istifadə edin.

int müddəti = sonar.ping_median (10); // müddəti mikrosaniyələrdədir, əgər (müddəti == 0) // Ölçmə xətası - nəticəsiz və ya əks -səda yoxdur {uint8_t bayt = {0x00, 0b01111001, 0b01010000, 0b01010000}; // "Err" yazmaq üçün seqmentlər display.setSegments (bayt); }

Burada, HC-SR04-ə 10 oxunması və mənə orta nəticə verməsini söyləyirəm. Heç bir dəyər qaytarılmırsa, vahid aralığın xaricindədir. Daha sonra yuxarıdakı eyni texnikadan istifadə edərək 4 rəqəmin xüsusi seqmentlərini idarə etmək, hərfləri (boş), E, r və r -ni yazmaq üçün istifadə edirəm. İkili işarələrin istifadəsi fərdi bitləri seqmentlərlə əlaqələndirməyi bir az asanlaşdırır.

Addım 6: Arduino Pro Mini -yə Kod Yükləmə (USB olmadan)

Daha əvvəl dediyim kimi, Çinli ebay satıcılarından gələn malların tez -tez gəlməsi 6 həftə və ya daha çox çəkir və bir çox prototip və kod yazma, bəzi komponentlərin gəlməsini gözləyərkən edildi - Arduino Pro Mini onlardan biridir.

Sifariş verməyincə Pro Mini ilə əlaqədar fərq etmədiyim bir şey, eskizi yükləmək üçün USB portunun olmamasıdır. Beləliklə, bir az qəzəbli googlingdən sonra, bu vəziyyətdə bir eskiz yükləməyin iki yolunun olduğunu gördüm - biri PC -də USB -dən Pro Mini -də 6 xüsusi sancağa gedən xüsusi bir kabel tələb edir. Bu 6 pindən ibarət qrup ISP (sistem proqramçısı) pinləri kimi tanınır və istəsəniz bu üsulu hər hansı bir Arduino -da istifadə edə bilərsiniz - ancaq USB interfeysi demək olar ki, bütün digər Arduino variantlarında mövcuddur. düşünün), bu seçimi istifadə etmək daha asandır. Digər üsul, USB interfeysi olan başqa bir Arduinonun olmasını tələb edir.

Xoşbəxtlikdən, Arduino Uno -ya sahib olmaq, aşağıda sizin üçün təsvir edəcəyim ikinci üsuldan istifadə edə biləcəyimi ifadə etdi. Buna 'Arduinonun ISP olaraq istifadə edilməsi' deyilir. Bir sözlə, Arduino'ya Serial İnterfeysinə çevrilən xüsusi bir eskiz yükləyirsiniz. Sonra əsl eskizinizi yükləyin, ancaq normal yükləmə seçimi əvəzinə, IDE menyusundan 'Arduinonu ISP olaraq istifadə edərək' yükləyən bir seçimdən istifadə edirsiniz. 'Arasında gediş-gəliş' Arduino, əsl eskizinizi IDE-dən alır və öz yaddaşına yükləmək əvəzinə Pro Mini-nin İSS pinlərinə ötürür. Başınızı necə işlədiyini başa düşdükdən sonra çətin deyil, ancaq qarşısını almaq istəyə biləcəyiniz əlavə bir mürəkkəblik təbəqəsidir. Əgər belədirsə və ya 'keçid' olaraq istifadə edə biləcəyiniz başqa bir Arduino yoxdursa, USB interfeysi də daxil olmaqla bir Arduino Nano və ya digər kiçik forma modellərindən birini almaq istəyə bilərsiniz. və proqramlaşdırmanı daha da asanlaşdırır.

İşin başa düşülməsində faydalı ola biləcəyiniz bir neçə qaynaq. Arduino İstinadı, xüsusi olaraq hədəf cihaza yeni bir yükləyicinin yazılmasını nəzərdə tutur, ancaq eyni şəkildə bir eskiz yükləyə bilərsiniz. Julian Ilett -in videosunun konsepsiyanı daha aydınlaşdırdığını gördüm, baxmayaraq ki, Arduino istinadındakı iki Arduinonun bir -birinə necə bağlanacağını izah edən hissəni atlayır və bunun əvəzində çörək taxtasında çılpaq bir çip proqramlaşdırır.

  • Arduino İstinad Təlimatı - Arduino -nu ISP olaraq istifadə etmək
  • Julian Ilett -in YouTube videosu - Bir Arduino -nu ISP olaraq istifadə etmək

Pro Mini -də rahatlıqla qruplaşdırılmış 6 ISP pin olmadığından, rəqəmsal pinlərdən hansının 4 proqramlaşdırma sancağına aid olduğunu deşifr etməlisiniz (digər iki əlaqə yalnız Vcc və Gnd -dir, buna görə də olduqca sadədir). Şükürlər olsun ki, mən artıq bu yolu keçmişəm - və biliklərimi sizinlə bölüşmək istəyirəm - nə qədər səxavətli insanam !!

Arduino Uno və Arduino ailəsindəki bir çoxları, 6 pinləri əl ilə 3x2 blokda düzülmüşdür (şəkil www.arduino.cc).

Şəkil
Şəkil

Təəssüf ki, Pro Mini yoxdur. Aşağıda gördüyünüz kimi, onları tanımaq olduqca asandır və hələ də 3 sancaqdan ibarət 2 blokda düzülmüşdür. MOSI, MISO və SCK, həm Pro Mini, həm də Arduino Uno -da sırasıyla 11, 12 və 13 rəqəmsal pinlərlə eynidir və ISP proqramlaşdırması üçün sadəcə 11 -dən 11 -ə, 12 -dən 12 -yə və 13 -dən 13 -ə qoşulun. Mini -nin sıfırlama pimi Uno pin 10 -a, Pro Mini -nin Vcc (5v)/Ground isə Arduino +5v/Ground -a qoşulmalıdır. (Şəkil www.arduino.cc saytından)

Şəkil
Şəkil

Addım 7: Quraşdırma

Məclis
Məclis

Qeyd etdiyim kimi, bu işlə məşğul oldum və peşman oldum. Bütün komponentləri uyğunlaşdırmaq əsl sıxışdır. Əslində, düymənin kontaktlarını kənara əymək və bir az irəli qaldırmaq üçün kənara bir az qablaşdırmaq lazım idi ki, qutunun dərinliyinə sığsın və hər tərəfdən 2-3 mm kənarda üyütməliyəm. uyğun olması üçün ekran modulu lövhəsi.

Ultrasonik sensorların keçməsi üçün qutuda 2 deşik qazdım. Delikləri bir az çox kiçik qazdım və sonra kiçik bir fırlanan öğütücü istifadə edərək tədricən artırdım, buna görə də onları gözəl bir "itələmə" halına gətirə bildim. Təəssüf ki, daşları qutunun içərisindən istifadə edə bilməyəcək qədər yanlara yaxın idilər və bunu kənardan etmək lazım idi, nəticədə üyüdücünün sürüşdüyü bir çox cızıq və skate işarəsi meydana gəldi - yaxşı, hamısı altındadır hər halda - kimin dərdi var..?

Sonra bir ucunda ekranın keçməsi üçün doğru ölçüdə bir yuva kəsdim. Yenə - yuva ekranın üstündə çox incə bir parça qoyduğundan, qutunun ölçüsü ilə bağlı təxminim arxa tərəfimi dişlədi, hamar bir şəkildə təqdim edərkən qaçılmaz olaraq qırıldı. Yaxşı, super yapışqan bunun üçün icad edildi …

Nəhayət, bütün komponentlər təxminən qutuda yerləşdirildikdə, düymənin gövdəsinin son boş yerə düşməsi üçün qapağın çuxurunun hara qoyulacağını ölçdüm. SADƏ !!!

Sonra, hamısını korpusa yığmadan əvvəl əyilmə, üyütmə və düzəltmədən sonra hamısının işlədiklərini yoxlamaq üçün bütün komponentləri bir -birinə lehimlədim. Gnd -ə qoşulmuş Arduino (ağ qurğuşun) üzərindəki pin 10 ilə, ekran modulunun dərhal altında keçid bağlantısını görə bilərsiniz, beləliklə cihazı kalibrləmə rejiminə keçirin. Ekran mənim skamyamdan 122 sm yuxarı oxuyur - pəncərə çərçivəsinin yuxarısından əks olunan bir siqnal almış olmalıdır (tavan üçün çox aşağıdır).

Şəkil
Şəkil

Daha sonra, isti yapışqan tabancasının sındırılması və bütün komponentlərin yerində ayaqqabı atılması hadisəsi oldu. Bunu etdikdən sonra gördüm ki, ekran modulunun üst hissəsi ilə qapaq arasındakı kiçik boşluq, modul yerinə yapışdırıldıqdan sonra, qapağın istədiyim qədər möhkəm oturmayacağı bir az qabarıqlıq buraxdı.. Bir gün bu mövzuda bir şey etməyə çalışa bilərəm - ya da çox güman ki, etməyəcəyəm …

Şəkil
Şəkil

Addım 8: Bitmiş məqalə

Bir neçə montajdan sonra sınaqdan keçirildikdən və taxta hissəsinin dərinliyini nəzərə alaraq kodumu düzəltdikdən sonra cihazı (hesablamalarımda tamamilə gözdən qaçırdım - d'oh !!) hamısı bitdi. Nəhayət!

Yığılmış test

Cihaz mənim skamyamda üzü aşağı oturduqda, aydındır ki, əks olunan bir siqnal olmayacaq, buna görə də cihaz səhv vəziyyətini düzgün göstərir. Ən yaxın əks etdirən səth vahidin əhatə dairəsindən kənarda olarsa, bu da belə olar.

Şəkil
Şəkil

Dəzgahımdan zəminə qədər 76 sm (yaxşı, 72 sm üstəgəl ağacın 4 sm dərinliyi) kimi görünür.

Şəkil
Şəkil

Vahidin alt tərəfində, ötürücü və qəbuledicinin taxta parçasını aşdığını göstərir - Mən onu həqiqətən bir ağac parçası adlandırmağı dayandırmalıyam - bundan sonra Ölçmə Stabilizasiyası və Həssas Yerləşdirmə Platforması adlandırılacaq! Şükürlər olsun ki, bu, bəlkə də sonuncu dəfə qeyd edəcəyəm;-)

Ooh - bütün bu pis cızıqları və konki izlərini görə bilərsiniz …

Şəkil
Şəkil

… Və burada normal iş rejimində yerləşdirilmiş, tankımın tutumunu 5%-ə yaxın ölçən hazır məhsul. Bu layihəni başa vurduğumu görən (çox) yağışlı bir bazar günü günortası idi, buna görə də qurğunun üzərindəki yağış damlaları və çox sevindirici 90% oxu.

Şəkil
Şəkil

Ümid edirəm ki, bu təlimatı oxumaqdan zövq aldınız və Arduino proqramlaşdırma, fizika və sonar/ultrasəs əks etdirmənin istifadəsi, layihə planlamanızda fərziyyələrdən istifadə etmənin tələləri haqqında bir az məlumat əldə etdiniz və bunu etmək üçün ilham aldınız. öz yağış su anbarı - sonra ətraf mühitə bir az kömək edərkən və su hesabınıza qənaət etmək üçün istifadə etmək üçün bir yağış suyu çəni quraşdırın.

Zəhmət olmasa oxuyun - ertəsi gün baş verənlər üçün …!

Addım 9: Postscript - Yüz (və Beş) Yüzdə?

Beləliklə, yağışlı bazar günündən sonra Bazar ertəsi günü, tank ola biləcəyi qədər tamamilə dolu idi. Tamamilə dolu olduğunu gördüyüm çox az vaxtlardan biri olduğu üçün, ölçmə vasitəsini müqayisə etmək üçün ideal vaxt olacağını düşündüm, amma nə olduğunu təxmin et - 105%olaraq qeydiyyatdan keçdi, buna görə açıq -aşkar bir səhv var idi.

Çubuğumu çıxarıb gördüm ki, maksimum suyun dərinliyi 140 sm və 16 sm başlıq (tankın xaricindən edilən vizual gestimasiyalara əsaslanaraq) kimi orijinal fərziyyələrim hər ikisi də faktiki ölçülərdən bir qədər fərqlidir. 100% göstəricim üçün real məlumatlarla silahlanaraq kodumu düzəltməyi və Arduino'yu yenidən yükləyə bildim.

Maksimum suyun dərinliyi 147 sm -dir, ölçmə nöqtəsi 160 sm -dir və 13 sm boşluq verir (tankın içindəki boşluğun cəmi, tankın boyunun hündürlüyü və…, yox, nə?! Ölçmə Stabilizasiyası və Həssas Yerləşdirmə Platformasının dərinliyini nəzərdə tuturam!).

MaxDepth və headroom dəyişənlərini buna uyğun olaraq düzəltdikdən və sonar obyektinin maksimum aralığını 160 cms olaraq sıfırladıqdan sonra, ölçmə cihazını bir qədər qaldırdığımda (kiçik bir hissəni simulyasiya etmək üçün) sürətli bir test 100% göstərdi və 95% -ə düşdü. su istifadə edilmişdir).

İş bitdi!

PS - bu təlimatlandırmaq üçün ilk cəhdimdir. Üslubumdan, yumor duyğumdan, səhvləri qəbul etməkdə dürüstlüyünüzdən (hey - hətta mükəmməl deyiləmsə …) və s. İstəsəniz, mənə bildirin və bu mənə başqa bir iş görməyimə təkan verə bilər.

Addım 10: Sonrakı fikirlər

İstifadə olunan tutum

Bu Təlimatı nəşr etdiyimdən bir neçə həftə keçdi və cavab olaraq bir çox şərhlər aldım, bəziləri həm elektron, həm də əl ilə alternativ mexanizmlər təklif edir. Ancaq bu məni düşündürdü və yəqin ki, əvvəldən qeyd etməli olduğum bir şey var.

  • Tankımın yer səviyyəsində quraşdırılmış bir nasosu var - tankın bazasından bir qədər aşağı. Pompa sistemdəki ən aşağı nöqtə olduğundan və nasosdan gələn su təzyiq altındadır, tankımın tam gücündən istifadə edə bilərəm.
  • Bununla birlikdə - tankınızda nasos yoxdursa və cazibə qüvvəsinə güvənirsinizsə, tankın effektiv gücü kranın hündürlüyü ilə məhdudlaşır. Tankınızda qalan su krandan aşağı düşdükdə su axmayacaq.

Beləliklə, istər elektron ölçmə cihazı, istərsə də əl ilə gözlük şüşəsi, yaxud üzən və bayraq tipli sistemdən istifadə etməyinizdən asılı olmayaraq, nəzərə alın ki, nasos olmadan tankınızın effektiv 'əsası' tankın çıxışının hündürlüyüdür. vurun.

Tövsiyə: