Სარჩევი:

ულტრაბგერითი წვიმის წყლის ავზის მოცულობა: 10 ნაბიჯი (სურათებით)
ულტრაბგერითი წვიმის წყლის ავზის მოცულობა: 10 ნაბიჯი (სურათებით)

ვიდეო: ულტრაბგერითი წვიმის წყლის ავზის მოცულობა: 10 ნაბიჯი (სურათებით)

ვიდეო: ულტრაბგერითი წვიმის წყლის ავზის მოცულობა: 10 ნაბიჯი (სურათებით)
ვიდეო: მჟავიანობის (ph) გაზომვა. ონკანის წყალი, ძმარი, წვიმის წყალი და სოდიანი წყალი. 2024, ნოემბერი
Anonim
ულტრაბგერითი წვიმის წყლის სატანკო სიმძლავრის მეტრი
ულტრაბგერითი წვიმის წყლის სატანკო სიმძლავრის მეტრი

თუ თქვენ ჩემნაირი ხართ და გაქვთ მცირეოდენი გარემოსდაცვითი სინდისი (ან უბრალოდ კანის ძაფები გისურვებთ დაზოგოთ რამდენიმე დოლარი - რაც მეც ვარ …), შეიძლება გქონდეთ წვიმის წყლის ავზი. მე მაქვს ავზი ავსტრალიაში საკმაოდ იშვიათი წვიმის მოსავლელად - მაგრამ ბიჭო, ბიჭო, როცა წვიმს აქ, მართლა წვიმს! ჩემი ავზი დგას დაახლოებით 1.5 მეტრის სიმაღლეზე და არის ძირში, რაც იმას ნიშნავს, რომ მე უნდა გავიდე წყლის დონის შესამოწმებლად (ან - იმიტომ, რომ მე ვარ ზარმაცი, დაბალანსებული ვარ ბურღულის BBQ– ის ძველი გაზის ბოთლის თავზე. მუდმივი რეზიდენცია, როგორც "ნაბიჯი" ტანკის გვერდით).

მინდოდა როგორმე შევძლო წყლის დონის შემოწმება ავზში, ყოველგვარი ასვლისა და ერთი ხელით სადინარში ჩამოკიდების გარეშე (ხოლო იმაზე ფიქრი, თუ რა შეიძლება იყოს მის უკან ობობები - გსმენიათ ავსტრალიური ობობების შესახებ - არა?) … ასე რომ, გვიანდელი ცხოვრების ინტერესით ელექტრონიკით და იაფი არდუინოს კლონებით ჩინეთიდან ebay- ზე, მე გადავწყვიტე, რომ შემექმნა "ვიჯეტი" სამუშაოს გასაკეთებლად.

ახლა, ჩემი "ოცნების" ვიჯეტი იყო სამუდამოდ დაყენებული ავზში, გამოვიყენო მზის ენერგიის წყარო, ჩემს ავტოფარეხში დისტანციური გადამოწმება, ან შესაძლოა უკაბელო გადამცემი Bluetooth- ის გამოყენებით, რომელსაც შევამოწმებდი ჩემი ტელეფონიდან, ან შესაძლოა ESP ტიპის მოწყობილობა მასპინძლობს ავტომატურად განახლებულ ვებ გვერდს, ასე რომ შემიძლია შევამოწმო წყლის დონე ჩემს ავზში მსოფლიოს ნებისმიერი ადგილიდან ინტერნეტით … მაგრამ მართლაც - რატომ მჭირდება ეს ყველაფერი? ასე რომ, მე დავურეკე ჩემი დიდი იდეალები ცოტათი (კარგად, საკმაოდ მნიშვნელოვნად) და მოვიშორე გამოსავლის უკაბელოობა, მუდმივი დაყენება, მზის დამუხტვა და ჩემი ტანკის დონის შემოწმება უკნიდან უკნიდან (ყოველთვის ვივარაუდოთ, რომ მიღმა უკანა მხარეს არის WiFi ხელმისაწვდომი, ანუ …)

შედეგად მიღებული პროექტი დაქვეითდა ხელის ერთეულში, რომელიც ზემოთ ჩანს, რომელიც შეიძლება უბრალოდ დაიჭიროს ავზის გახსნისას და გააქტიურდეს ღილაკზე, ციფრული წაკითხვით, რომლის წაკითხვა შესაძლებელია მიწის დონიდან - ბევრად უფრო პრაქტიკული.

ნაბიჯი 1: მათემატიკა…

მას შემდეგ, რაც ვიმუშავე რამდენიმე იდეაზე, თუ როგორ უნდა დადგინდეს წყლის დონე - მე გადავწყვიტე ულტრაბგერითი გადამცემი/მიმღები, როგორც საფუძველი ჩემი ვიჯეტისთვის და არდუინოს გამოყენებით, რომ წავიკითხე და გავაკეთო ყველა მათემატიკა. სენსორიდან დაბრუნებული კითხვები (არაპირდაპირი გზით) არის მანძილის სახით - ულტრაბგერითი სენსორიდან ზედაპირამდე (წყლის ზედაპირი - ან ავზის ქვედა ნაწილი, თუ ცარიელია) და ისევ უკან, ასე რომ ჩვენ გვჭირდება რამდენიმე რამის გაკეთება, რათა ავზში დარჩენილი პროცენტის მიღწევა.

NB - ფაქტობრივად, სენსორიდან დაბრუნებული მნიშვნელობა არის მხოლოდ დრო, რომელიც საჭიროა სიგნალის დატოვებისთვის ემიტერის მხრიდან და მიმღებში დაბრუნებისთვის. ეს არის მიკროწამებში - მაგრამ იცოდე ხმის სიჩქარე არის 29 მიკრო წამი სმ -ზე (რა? შენ არ იცოდი? Pfft…) იძლევა მარტივ გარდაქმნას დროის მონაკვეთიდან მანძილის გაზომვაზე.

გამოსახულება
გამოსახულება

პირველი - რა თქმა უნდა, ჩვენ უნდა გავყოთ მანძილი 2 -ზე, რომ მივიღოთ სენსორი ზედაპირის მანძილზე. შემდეგ, გამოაკელით მუდმივი მანძილი სენსორიდან წყლის "მაქსიმალურ" სიღრმეზე. დარჩენილი მნიშვნელობა არის წყლის სიღრმე, რომელიც გამოყენებულია. შემდეგი, გამოაკლეთ ეს მნიშვნელობა წყლის მაქსიმალური სიღრმიდან, რათა იპოვოთ ავზში დარჩენილი წყლის სიღრმე.

ეს მნიშვნელობა არის ნებისმიერი სხვა გამოთვლის საფუძველი, როგორიცაა წყლის სიღრმის მაქსიმალური სიღრმის პროცენტულად დამუშავება, ან სიღრმის გამრავლება მუდმივი "ზედაპირის ფართობით", წყლის მოცულობის მისაღებად ლიტრებში (ან გალონში, ან სხვა ერთეულში - რამდენადაც თქვენ იცით მათემატიკა ამის გასაკეთებლად - მე ვიცავ პროცენტს სიმარტივისთვის).

ნაბიჯი 2: პრაქტიკულობა

ერთეული შეიძლება იყოს ხელთ, მაგრამ ეს მცირე უზუსტობების მცირე შესაძლებლობას იძლევა, თუ ერთეული არ არის ერთსა და იმავე ადგილას და ყოველ ჯერზე იმავე კუთხით. მიუხედავად იმისა, რომ ეს იქნებოდა მხოლოდ უმნიშვნელო შეცდომა და, ალბათ, არც ის, ვინც დარეგისტრირდებოდა, ეს იქნებოდა ისეთი რამ, რაც ჩემზე მაღიზიანებდა.

თუმცა, ხელის დაჭერა გაცილებით დიდ შესაძლებლობას იძლევა, რომ დაწყევლილი ნივთი ჩააგდოს ტანკში და აღარასოდეს ნახოს. ამ შესაძლებლობების შემსუბუქების მიზნით, იგი დაფიქსირდება ხის სიგრძეზე, რომელიც შემდეგ მოთავსებულია ავზის ღიობზე - ისე, რომ გაზომვა მიიღება ზუსტად იგივე სიმაღლიდან და კუთხიდან ყოველ ჯერზე (და თუ ის დაეცა სატანკო, მინიმუმ ხე იქნება float).

ღილაკზე დაჭერით ააქტიურებს ერთეულს (ამით აღმოიფხვრა ჩართვის/გამორთვის საჭიროება და შემთხვევით გაბერილი ბატარეის შესაძლებლობა) და აწვდის ესკიზს არდუინოში. ეს იღებს უამრავ კითხვას HC-SR04– დან და იღებს მათ საშუალო მაჩვენებელს (ნებისმიერი არასტაბილური კითხვის შესამცირებლად).

მე ასევე ჩავრთე ცოტა კოდი, რომ შევამოწმო მაღალი ან დაბალი Arduino ციფრული I/O პინზე და გამოვიყენო ის იმისათვის, რომ დავაყენო ის, რასაც მე ვუწოდებ "კალიბრაციის" რეჟიმში. ამ რეჟიმში, ეკრანი უბრალოდ აჩვენებს სენსორის მიერ დაბრუნებულ რეალურ მანძილს (გაყოფილი 2 -ზე), ასე რომ მე შემეძლო მისი სიზუსტის შემოწმება ფირზე.

ნაბიჯი 3: ინგრედიენტები

განყოფილება შედგება სამი ძირითადი კომპონენტისგან…

გამოსახულება
გამოსახულება
  1. HC-SR04 ულტრაბგერითი გადამცემი/მიმღების მოდული
  2. Arduino Pro Mini მიკროკონტროლი
  3. 4 ციფრიანი 7 სეგმენტიანი LED დისპლეი ან ჩვენების 'მოდული', როგორიცაა TM1637

ყოველივე ზემოთქმული ადვილად მოიძებნება ebay– ზე, უბრალოდ თამამი ბეჭდვით ნაჩვენები ტერმინების ძებნით.

ამ აპლიკაციაში ეკრანი უბრალოდ იყენებს 3 ციფრს 0-100 % –იანი მნიშვნელობის გამოსახატავად ან 4 ციფრი ლიტრების რაოდენობის საჩვენებლად (ჩემს შემთხვევაში მაქსიმუმ 2000), ასე რომ ნებისმიერი 4 ციფრიანი ეკრანი გააკეთებს - თქვენ არ გჭირდებათ ინერვიულოთ იმაზე, აქვს თუ არა მოდულს ათობითი წერტილები ან მსხვილი ნაწლავი. ჩვენების 'მოდული' (LED დამონტაჟებულია გარღვევის დაფაზე, ინტერფეისის ჩიპით) უფრო ადვილია, რადგან ის იყენებს ნაკლებ პინ კავშირს, მაგრამ ნედლი LED ეკრანი 12 ქინძისთავით შეიძლება განთავსდეს Arduino– ს მიერ კოდის მცირე ცვლილებებით (სინამდვილეში ჩემი ორიგინალური დიზაინი ემყარებოდა ამ კონფიგურაციას). ამასთან, გაითვალისწინეთ, რომ ნედლი LED დისპლეის გამოყენებას ასევე სჭირდება 7 რეზისტორი თითოეული სეგმენტის მიერ შედგენილი დენის შეზღუდვისთვის. მე შემთხვევით მქონდა TM1637 საათის ჩვენების მოდული, ამიტომ გადავწყვიტე მისი გამოყენება.

დამატებითი ნაწილები და ბატარეები მოიცავს 9 ვ ბატარეის სამაგრს (და ბატარეას, ცხადია), ღილაკს "push-to-make" მომენტალური ღილაკი, პროექტის ყუთს, სათაურის ქინძისთავებს, მავთულხლართებს და 2 "x4" სიგრძის მერქანს, რომელიც აღემატება ავზის გახსნის დიამეტრი.

დამატებითი ნაწილები და ბობოქები (გარდა ხის ნაჭრებისა) შეიძინა ჩემი ადგილობრივი ჰობი ელექტრონიკის ქსელში - რომელიც არის ჯეიკარი ავსტრალიაში. მე წარმომიდგენია, რომ Maplin დიდ ბრიტანეთში იქნება სიცოცხლისუნარიანი ალტერნატივა და ვფიქრობ, რომ არსებობს რამდენიმე აშშ - ში, მაგალითად დიგიკეი და მაუზერი. სხვა ქვეყნებისთვის, მეშინია არ ვიცი, მაგრამ დარწმუნებული ვარ, რომ თუ თქვენ არ გექნებათ შესაბამისი მაღალი ქუჩის განყოფილება ან ონლაინ მიმწოდებელი თქვენს ქვეყანაში, მაშინ ჩინელი ebay გამყიდველები მოდიან თქვენთვის, თუ არა გონება ელოდება რამდენიმე კვირას მშობიარობას (ბედის ირონიით, მიუხედავად იმისა, რომ ჩვენი ერთ -ერთი უახლოესი მეზობელი იყო, 6 კვირა ან მეტი არ არის უჩვეულო ჩინეთიდან ავსტრალიაში მშობიარობისთვის!).

დარწმუნდით, რომ თქვენ მიიღებთ საპროექტო ყუთს, რომელიც საკმაოდ დიდია - ვხვდებოდი ჩემში, სანამ კომპონენტები ხელმისაწვდომი იქნებოდა და ეს მართლაც ძალიან მჭიდროა - შეიძლება დამჭირდეს სხვა ღილაკის მოპოვება, რომელიც ნაკლებ სივრცეს იყენებს.

ო, და სხვათა შორის, ხე -ტყის სიგრძე მხოლოდ რამოდენიმე ნატეხიდან მოვიდა, რომელსაც მე ვნახავ ჩემი ავტოფარეხის კუთხეში (როგორც სახლი იმ უფრო საყვარელი ობობებისათვის).

მას შემდეგ რაც გაიგებთ სქემატურ მახასიათებლებს და ფუნქციონირებას, შეგიძლიათ გადაწყვიტოთ თქვენი ვერსიის ადაპტირება და ჩართოთ ჩართვა/გამორთვა, ან გამოიყენოთ 18650 Li-Ion ენერგიის წყარო, მზის პანელებითა და დამუხტვის კონტროლერით, რომ ის მუდმივად იყოს გადახურული და წასასვლელად მზად., ან შეცვალეთ მარტივი LED დისპლეი მრავალ ხაზიანი LCD ან გრაფიკული OLED– ისთვის დამატებითი ინფორმაციის ჩვენების ვარიანტებით, როგორიცაა ერთდროულად დარჩენილი პროცენტის და ლიტრების ჩვენება. ან შეგიძლიათ წასვლა ყოვლისმომცველი, ყველა მოცეკვავე უკაბელო IoT ერთეულის მუდმივ რეჟიმში, რომელიც დამონტაჟებულია ავზში მზის დატენვით. სიამოვნებით მოვისმენ თქვენს ვარიაციებსა და მოდიფიკაციებს.

ნაბიჯი 4: პროტოტიპის (და კოდის) ტესტირება

იყიდა HC-SR04 იაფი ჩინური წყაროდან ebay– ზე, მე ნამდვილად არ ველოდი, რომ მივიღებდი უკიდურესად ზუსტ ერთეულს, ამიტომ მინდოდა ჯერ გამომეცადა ის პურის დაფაზე, იმ შემთხვევაში თუ დამჭირდებოდა მანძილის შესწორების კოდის დამატება ჩემი ესკიზი

ამ დროს, მე ვიცოდი ძირითადი ინფორმაციის შესახებ, თუ როგორ უნდა შეერთო და გამოვიყენო HC-SR04, და უნდა ვაღიარო jsvester– ის სასწავლო ინსტრუქცია „მარტივი არდუინო და HC-SR04 მაგალითი“. მისი მაგალითი და გამოცდილება იყო დიდი საწყისი წერტილი ჩემთვის კოდირების დასაწყებად.

აღმოვაჩინე ფუნქციების ბიბლიოთეკა NewPing HC-SR04– ისთვის, რომელიც მოიცავს ჩამონტაჟებულ ფუნქციონირებას, რომ მიიღოს საშუალო რაოდენობის მრავალჯერადი კითხვა, რითაც ჩემი კოდი ბევრად გამარტივდა.

ვიპოვე ბიბლიოთეკა TM1637 საათის ჩვენების მოდულისთვისაც, რამაც ციფრების ჩვენება ბევრად გაამარტივა. ჩემს პირვანდელ კოდში (4-ნიშნა 7 სეგმენტის ჩვენებისთვის) მე უნდა გამეყო რიცხვი ცალკეულ ციფრებად, შემდეგ აეშენებინა თითოეული ცალკეული ციფრი ეკრანზე იმის ცოდნით, თუ რომელი სეგმენტების განათება მოხდებოდა და შემდეგ ველოსიპედით გავდიოდი ნომრის თითოეულ ციფრს. და ამ რიცხვის აგება შესაბამის ჩვენების ციფრზე. ამ მეთოდს ეწოდება მულტიპლექსირება და ეფექტურად აჩვენებს ერთ ციფრს ერთდროულად, მაგრამ ისე სწრაფად შემოდის მათში ერთი ციფრიდან მეორეზე, რომ ადამიანის თვალი ვერ ამჩნევს და შეგატყობინებთ, რომ ყველა ციფრი ჩართულია ამავე დროს. რაც შეეხება HC-SR04 ბიბლიოთეკას, რაც გაზომვის ოპერაციებს აადვილებს, ეს ბიბლიოთეკა ზრუნავს ყველა მულტიპლექსისა და ციფრების დამუშავებაზე. Arduino Reference გვერდები, რომლებიც დაკავშირებულია ზემოთ, იძლევა მაგალითებს და, რა თქმა უნდა, თითოეულ ბიბლიოთეკას აქვს კოდის ნიმუში, რომელიც შეიძლება იყოს დიდი დახმარება.

გამოსახულება
გამოსახულება
გამოსახულება
გამოსახულება

n

ამრიგად, ზემოთ მოყვანილი სურათები აჩვენებს ჩემს საცდელ მოწყობილობას - მე ვამოწმებ მას Arduino Uno– ზე სიმარტივისთვის, რადგან ეს უკვე დაყენებულია დროებითი ხელახლა გამოსაყენებელი კავშირებისთვის პროტოტიპისთვის. განყოფილება მუშაობს "კალიბრაციის" რეჟიმში (გაითვალისწინეთ, რომ ციფრული პინ 10 - თეთრი მავთული - მიწასთან არის დაკავშირებული) და ზუსტად კითხულობს 39 სმ იმ ყუთს, რომელიც მე შემთხვევით მოვათავსე მის წინ, როგორც ეს ნაჩვენებია ფირზე. ამ რეჟიმში, მე ვაჩვენებ მცირე 'c' გაზომვის წინ, მხოლოდ იმის მითითებით, რომ ეს არ არის ნორმალური გაზომვა.

ისევე როგორც Vcc (5v) და Ground, HC -SR04– ს სჭირდება 2 სხვა კავშირი - ტრიგერი (ყვითელიდან 6 – მდე) და ექო (მწვანედან 7 – მდე). ეკრანს ასევე სჭირდება Vcc (5v) და Ground, და კიდევ 2 კავშირი - საათი (ლურჯი პინ 8 -მდე) და DIO (მეწამული პინ 9). როგორც უკვე აღვნიშნეთ, ოპერაციული რეჟიმი კონტროლდება მაღალი ან დაბალი პინ 10 -ით (თეთრი). კავშირები გამოიყენებს ერთსა და იმავე ქინძისთავებს Arduino Pro Mini– ზე, მაგრამ იქნება სამუდამოდ გასაყიდი. საოპერაციო რეჟიმი შეირჩევა ჯუმბერის გამოყენებით სამიდან ორ სათაურში, რომელიც დაკავშირებულია Vcc- სთან, პინ 10 -თან და მიწასთან შესაბამისად.

HC -SR04– ის ოფიციალური მახასიათებლები აცხადებენ რაღაც მაქსიმალურ შეცდომას სულ რაღაც 3 მილიმეტრამდე, მაქსიმალურ დაპროექტებულ ოპერაციულ მანძილზე 4 მეტრამდე, ასე რომ წარმოიდგინეთ ჩემი გაკვირვება, როდესაც აღმოვაჩინე, რომ ჩემი ერთეული, რა თქმა უნდა, ზუსტი იყო იმ ხარისხით 2 მეტრამდე - რაც ბევრად აღემატება იმას, რაც მჭირდება. შეზღუდული სივრცის გამო, სწრაფი და ბინძური ტესტის დასაყენებლად, ჩემი მანძილის მიღმა ტესტის შედეგები იყო დაზიანებული ზედაპირის ამრეკლებით, გარდა ჩემი საცდელი სამიზნე, რადგან გადამცემი სხივი გაშლილი და გაფართოვდა უფრო ფართო არეალში. მაგრამ სანამ კარგია 1.5 მეტრი - ეს მშვენივრად გამომადგება, დიდი მადლობა:-)

ნაბიჯი 5: წვიმის მრიცხველის ინო ესკიზი

სრული კოდი თან ერთვის, მაგრამ ქვემოთ მოვიყვან რამდენიმე ამონაწერს ზოგიერთი ნაბიჯის ასახსნელად.

უპირველეს ყოვლისა, დაყენება…

#ჩართეთ

#მოიცავს #ჩართავს // ქინძისთავებს HC-SR04 #განსაზღვრეთ pinTrig 6 #განსაზღვრეთ pinEcho 7 NewPing სონარი (pinTrig, pinEcho, 155); // 400 სმ მაქსიმალურია HC-SR04– ისთვის, 155 სმ მაქსიმალური სატანკოა // LED მოდულის კავშირის ქინძისთავები (ციფრული ქინძისთავები) #განსაზღვრეთ CLK 8 #განსაზღვრეთ DIO 9 TM1637 ჩვენების ჩვენება (CLK, DIO); // სხვა ქინძისთავები #განსაზღვრეთ opMode 10

ისევე როგორც TM1637 და NewPing ბიბლიოთეკები, მე ასევე ჩავრთე მათემატიკის ბიბლიოთეკა, რომელიც მაძლევს წვდომას "დამრგვალების" ფუნქციაზე. მე ვიყენებ ამას ზოგიერთ მათემატიკაში, რათა შემიძლია გამოვხატო პროცენტი უახლოეს 5% –ზე, მაგალითად.

შემდეგ ორი მოწყობილობის ქინძისთავები განისაზღვრება და მოწყობილობები ინიცირებული.

დაბოლოს, მე განსაზღვრავს პინ 10 ოპერაციის რეჟიმს.

// გამორთეთ ყველა სეგმენტი ყველა ციფრისთვის

uint8_t ბაიტი = {0x00, 0x00, 0x00, 0x00}; display.setSegment (ბაიტი);

კოდის ეს მონაკვეთი აჩვენებს ეკრანის მოდულის კონტროლის ერთ გზას, რაც თითოეულ ციფრზე თითოეული სეგმენტის ინდივიდუალური კონტროლის საშუალებას იძლევა. მასივის 4 ელემენტი დავაყენე ბაიტებად, ყველა ნულის ტოლია. ეს ნიშნავს, რომ თითოეული ბაიტის თითოეული ბიტი ნულის ტოლია. 8 ბიტი გამოიყენება თითოეული 7 სეგმენტისა და ათობითი წერტილის გასაკონტროლებლად (ან მსხვილი ნაწლავი საათის ტიპის ეკრანზე). ასე რომ, თუ ყველა ბიტი ნულის ტოლია, მაშინ არცერთი სეგმენტი არ იქნება განათებული. SetSegments ოპერაცია აგზავნის მასივის შინაარსს ჩვენებაზე და არაფერს აჩვენებს (ამ შემთხვევაში). ყველა სეგმენტი გამორთულია.

გამოსახულება
გამოსახულება

ბაიტის ყველაზე მნიშვნელოვანი ბიტი აკონტროლებს DP- ს, შემდეგ კი დანარჩენი 7 ბიტი აკონტროლებს G– დან A– ს 7 სეგმენტს საპირისპირო მიზნით. მაგალითად, რიცხვის 1 ჩვენებისათვის საჭიროა B და C სეგმენტები, ამიტომ ორობითი წარმოდგენა იქნება '0b00000110'. (მადლობა CircuitsToday.com– ს ზემოთ მოცემული სურათისთვის).

// აიღეთ 10 კითხვა და გამოიყენეთ საშუალო ხანგრძლივობა.

int ხანგრძლივობა = sonar.ping_median (10); // ხანგრძლივობა არის მიკროწამებში, თუ (ხანგრძლივობა == 0) // გაზომვის შეცდომა - არადამაჯერებელი ან ექოს გარეშე {uint8_t ბაიტი = {0x00, 0b01111001, 0b01010000, 0b01010000}; // სეგმენტები "Err" display.setSegments (bytes); }

აი, მე ვეუბნები HC-SR04- ს მიიღოს 10 კითხვა და მომეცი საშუალო შედეგი. თუ მნიშვნელობა არ ბრუნდება, მაშინ ერთეული დიაპაზონის მიღმაა. მე ვიყენებ იმავე ტექნიკას, რომელიც ზემოაღნიშნულია 4 ციფრის კონკრეტული სეგმენტების გასაკონტროლებლად, ასოს (ცარიელი), E, r და r. ორობითი აღნიშვნის გამოყენება ოდნავ ამარტივებს ცალკეული ბიტების დაკავშირებას სეგმენტებთან.

ნაბიჯი 6: კოდის ჩატვირთვა Arduino Pro Mini– ზე (USB– ის გარეშე)

როგორც უკვე ვთქვი, ჩინელი ebay გამყიდველების ნივთებს ხშირად 6 კვირა ან მეტი დრო სჭირდება და ჩემი ბევრი პროტოტიპი და კოდის წერა გაკეთდა ზოგიერთი კომპონენტის ჩამოსვლის მოლოდინში - Arduino Pro Mini ერთ -ერთი მათგანია.

ერთი რამ, რაც მე არ შევამჩნიე Pro Mini- ში, სანამ ის უკვე შეკვეთილი მქონდა, არის ის, რომ მას არ აქვს USB პორტი ესკიზის ჩამოსატვირთად. ამრიგად, სასტიკი გუგლის შემდეგ, აღმოვაჩინე, რომ ამ შემთხვევაში ესკიზის ჩატვირთვის ორი გზა არსებობს - ერთი მოითხოვს სპეციალურ კაბელს, რომელიც მიდის USB– დან თქვენს კომპიუტერში, 6 კონკრეტულ ქინძისთავზე Pro Mini– ზე. 6 ქინძისთავის ეს ჯგუფი ცნობილია როგორც ISP (სისტემის პროგრამისტი) ქინძისთავები და თქვენ შეგიძლიათ გამოიყენოთ ეს მეთოდი ნებისმიერ Arduino– ზე, თუ გსურთ - მაგრამ რადგან USB ინტერფეისი ხელმისაწვდომია Arduino– ს თითქმის ყველა სხვა ვარიანტზე (I ვფიქრობ), ამ ვარიანტის გამოყენება გაცილებით მარტივია. სხვა მეთოდი მოითხოვს თქვენ გქონდეთ სხვა Arduino USB ინტერფეისით, რათა იმოქმედოთ როგორც „შუამავალი“.

საბედნიეროდ, ჩემი Arduino Uno– ს ქონა ნიშნავს იმას, რომ მე შემიძლია გამოვიყენო მეორე მეთოდი, რომელსაც ქვემოთ მოგიყვებით. მას ეწოდება "Arduino როგორც ISP". მოკლედ, თქვენ ატვირთავთ სპეციალურ ესკიზს თქვენს "შუალედურ" არდუინოში, რომელიც მას სერიულ ინტერფეისად აქცევს. შემდეგ ჩატვირთეთ თქვენი რეალური ესკიზი, მაგრამ ჩვეულებრივი ატვირთვის ვარიანტის ნაცვლად, თქვენ იყენებთ ვარიანტს IDE მენიუდან, რომელიც იტვირთება "Arduino- ს ISP- ის გამოყენებით". Arduino- ს "შუალედური" შემდეგ იღებს თქვენს რეალურ ესკიზს IDE– დან და გადასცემს მას Pro Mini- ის ISP ქინძისთავებს, ვიდრე იტვირთება საკუთარ მეხსიერებაში. ეს არ არის რთული მას შემდეგ, რაც გაარკვევთ, როგორ მუშაობს, მაგრამ ეს არის სირთულის დამატებითი ფენა, რომლის თავიდან აცილებაც გსურთ. თუ ეს ასეა, ან არ გაქვთ სხვა Arduino, რომელიც შეგიძლიათ გამოიყენოთ როგორც „შუამავალი“, მაშინ შეიძლება დაგჭირდეთ Arduino Nano– ს ან სხვა მცირე ზომის ფაქტორების მოდელის შეძენა, რომელიც მოიცავს USB ინტერფეისს და პროგრამირებას უფრო მარტივ პერსპექტივად აქცევს.

აქ მოცემულია რამდენიმე რესურსი, რომელიც შეიძლება დაგეხმაროთ პროცესის გაგებაში. Arduino Reference კონკრეტულად გულისხმობს ახალი ჩამტვირთველის დაწვას სამიზნე მოწყობილობაზე, მაგრამ თქვენ შეგიძლიათ მარტივად ჩატვირთოთ ესკიზი ანალოგიურად. აღმოვაჩინე, რომ ჯულიან ილეტის ვიდეო კონცეფციას უფრო ნათელს ხდის, თუმცა ის გამოტოვებს არდუინოს მითითების ნაწილს, რომელიც განმარტავს, თუ როგორ უნდა დააკავშიროთ ორი არდუინო ერთმანეთთან და ამის ნაცვლად პროგრამირებს შიშველ ჩიპს პურის დაფაზე.

  • არდუინოს საცნობარო სახელმძღვანელო - არდუინოს პროვაიდერის გამოყენება
  • ჯულიან ილეტის YouTube ვიდეო - არდუინოს გამოყენება როგორც პროვაიდერი

ვინაიდან Pro Mini- ს არ აქვს 6 პროვაიდერის ქინძისთავი ერთმანეთთან მოსახერხებლად დაჯგუფებული, თქვენ უნდა გაშიფროთ რომელი ციფრული ქინძისთავები უკავშირდება 4 პროგრამირების პინს (დანარჩენი ორი კავშირი მხოლოდ Vcc და Gnd - ასე რომ საკმაოდ მარტივია). თქვენი საბედნიეროდ, მე უკვე გადავიტანე ეს - და მზად ვარ გაგიზიაროთ ცოდნა - რა გულუხვი ადამიანი ვარ !!

Arduino Uno– ს და ბევრ სხვას Arduino– ს ოჯახში აქვს 6 ქინძისთავი ხელით მოწყობილი 3x2 ბლოკში, როგორც ეს (სურათი www.arduino.cc– დან).

გამოსახულება
გამოსახულება

სამწუხაროდ, Pro Mini არა. როგორც ქვემოთ ხედავთ, მათი ამოცნობა საკმაოდ ადვილია და კვლავ განლაგებულია 3 ქინძისთავის 2 ბლოკში. MOSI, MISO და SCK იგივეა რაც ციფრული ქინძისთავები 11, 12 და 13 შესაბამისად ორივე Pro Mini და Arduino Uno, ხოლო ISP პროგრამირებისათვის უბრალოდ დააკავშირეთ 11 11 – დან 12 – დან 12 – მდე და 13 – დან 13 – მდე. Pro Mini Reset pin უნდა იყოს დაკავშირებული Uno pin 10 – თან, ხოლო Pro Mini Vcc (5v)/Ground უნდა იყოს დაკავშირებული Arduino +5v/Ground– თან. (სურათი www.arduino.cc– დან)

გამოსახულება
გამოსახულება

ნაბიჯი 7: შეკრება

შეკრება
შეკრება

როგორც აღვნიშნე, საქმეზე წამოვედი და ვნანობ. ყველა კომპონენტის მორგება იყო ნამდვილი შესუსტება. ფაქტობრივად, მე უნდა გადავახვიო ღილაკზე კონტაქტები გვერდით და გარედან ჩავალაგო რაღაც პაკეტი, რომ ოდნავ მომეშორებინა ისე, რომ იგი მოთავსებულიყო ყუთის სიღრმეში, და მე უნდა გავხეხე 2-3 მმ თითოეული მხრიდან ჩვენების მოდულის დაფა, რომ ისიც მოერგოს.

მე გავაღე 2 ხვრელი საქმეში ულტრაბგერითი სენსორების გასავლელად. მე გაბურღული ხვრელები ძალიან პატარა და შემდეგ თანდათანობით გავზარდე ისინი პატარა მბრუნავი საფქვავის გამოყენებით, ასე რომ მე შემეძლო ისინი გამხდარიყო სასიამოვნო "ბიძგის მორგებისთვის". სამწუხაროდ, ისინი იმდენად ახლოს იყვნენ გვერდებთან, რომ შეეძლოთ საფქვავის გამოყენება ყუთის შიგნიდან და ეს უნდა გაკეთებულიყო გარედან, რამაც გამოიწვია მრავალი ნაკაწრი და სკეიტის კვალი, სადაც საფქვავი გადმოვარდა - ოჰ, ეს ყველაფერი ბოლოშია მაინც - ვის აინტერესებს..?

შემდეგ ერთ ბოლოში ვჭრი სლოტს, რომელიც არის ეკრანის სწორი ზომის შესაცვლელად.ისევ და ისევ - ჩემი ვარაუდი ყუთის ზურგზე უკნიდან უკბინა, რადგან სლოტმა დამიტოვა ძალიან თხელი ნაჭერი ეკრანის ზემოთ, რომელიც გარდაუვლად გატეხილი იყო, როდესაც მე მას უპრობლემოდ ვიღებდი. კარგი - ეს არის ის, რისთვისაც გამოიგონეს სუპერ წებო …

დაბოლოს, ყუთში უხეშად განლაგებული ყველა კომპონენტით, გავზომე სად უნდა ჩავდოთ ხვრელი სახურავზე, ისე რომ ღილაკის სხეული ჩავარდეს საბოლოო ხელმისაწვდომ სივრცეში. ᲣᲑᲠᲐᲚᲝᲓ!!!

შემდეგი, მე გავამაგრე ყველა კომპონენტი ერთად შესამოწმებლად, რომ ისინი კვლავ მუშაობდნენ ჩემი მოქნევის, დაფქვისა და მორთვის შემდეგ, სანამ ყველა მათგანს შევიკრიბებოდი. თქვენ შეგიძლიათ ნახოთ ჯუმბერის კავშირი ეკრანის მოდულის ქვემოთ, პინ 10 Arduino- სთან (თეთრი ტყვიის) Gnd- თან არის დაკავშირებული, რითაც აყენებთ ერთეულს კალიბრაციის რეჟიმში. ეკრანი იკითხება ჩემი სკამიდან 122 სმ -ით - მას უნდა აეღო ფანჯრის ჩარჩოს ზემოდან ასახული სიგნალი (ის ძალიან დაბალია ჭერისთვის).

გამოსახულება
გამოსახულება

შემდეგ მოხდა ცხელი წებოს იარაღის გარღვევა და ფეხსაცმლის რქის ყველა კომპონენტის თავის ადგილზე დაყენება. ამის გაკეთების შემდეგ, აღმოვაჩინე, რომ ეკრანის მოდულის ზედა ნაწილსა და სახურავს შორის მცირე მანძილი, მას შემდეგ რაც მოდული დაიმალა ადგილზე, დატოვა ცოტა ამობურცულობა, სადაც სახურავი არ ჯდება ისე მაგრად, როგორც მე მსურს რა მე შეიძლება ვცდილობ და გავაკეთო რამე ამის შესახებ ერთ დღეს - ან უფრო სავარაუდოა, რომ არ გავაკეთებ…

გამოსახულება
გამოსახულება

ნაბიჯი 8: დასრულებული სტატია

რამოდენიმე შემდგომი შეკრების ტესტის შემდეგ და ჩემი კოდის შესწორების მიზნით, ხის ნაჭრის სიღრმის გასათვალისწინებლად, მე ჩავახველე მოწყობილობა (რასაც მე მთლიანად გამოვტოვებდი ჩემს გამოთვლებში - ოჰ !!), ყველაფერი დასრულებულია რა საბოლოოდ!

აწყობილი ტესტირება

როდესაც აპარატი უბრალოდ ზურგზე იჯდა ჩემს სკამზე, ცხადია, არ იქნება ასახული სიგნალი, ამიტომ ერთეული სწორად აჩვენებს შეცდომის მდგომარეობას. იგივე იქნება თუ უახლოესი ამრეკლი ზედაპირი სცილდება ერთეულის დიაპაზონს.

გამოსახულება
გამოსახულება

როგორც ჩანს, ჩემი სკამიდან იატაკამდე არის 76 სმ (კარგად, 72 სმ პლუს 4 სმ სიღრმის ხის ნაჭერი).

გამოსახულება
გამოსახულება

ქვედა ნაწილში, სადაც ჩანს გადამცემი და მიმღები გადახურული ხის ნაწილი - მე ნამდვილად უნდა შევწყვიტო მას ხის ნაწილად დავარქვა - ის ამიერიდან მოხსენიებული იქნება როგორც Gauge Stabilization and Precision Placement Platform! საბედნიეროდ, ალბათ ბოლოჯერ ვახსენებ ამას;-)

ოჰ - თქვენ შეგიძლიათ ნახოთ ყველა ის უსიამოვნო ნაკაწრი და სკეიტის კვალი ამ ერთში…

გამოსახულება
გამოსახულება

… და აქ არის დასრულებული ნივთი, მოთავსებული ნორმალურ ოპერაციულ რეჟიმში, რომელიც რეალურად ზომავს ჩემი ავზის ტევადობას უახლოეს 5%-მდე. ეს იყო (ძალიან) წვიმიანი კვირა შუადღე, რომელმაც დამინახა, რომ დავასრულე ეს პროექტი, აქედან გამომდინარე წვიმის წვეთები ერთეულზე და ძალიან სასიამოვნო კითხვა 90%.

გამოსახულება
გამოსახულება

ვიმედოვნებ, რომ თქვენ ისიამოვნეთ ამ სასწავლო ინსტრუქციის წაკითხვით და რომ თქვენ ცოტა რამ ისწავლეთ არდუინოს პროგრამირების, ფიზიკისა და სონარის/ულტრაბგერითი ასახვის გამოყენების, თქვენი პროექტის დაგეგმვისას გამოცნობის გამოყენების პრობლემების შესახებ და რომ თქვენ შთაგონებული ხართ თქვენი საკუთარი წვიმის წყლის სატანკო ლიანდაგი - და შემდეგ დააყენეთ წვიმის წყლის ავზი მის გამოსაყენებლად, ხოლო ოდნავ ეხმარებით გარემოს და დაზოგავთ თქვენს წყლის გადასახადს.

გთხოვთ წაიკითხოთ - რა მოხდა მეორე დღეს …!

ნაბიჯი 9: პოსტსკრიპტი - ასი (და ხუთი) პროცენტი?

ასე რომ, წვიმიანი კვირის შემდეგ ორშაბათს, ავზი აბსოლუტურად სავსე იყო, როგორც ეს შეიძლებოდა ყოფილიყო. ვინაიდან ის ერთ -ერთია იმ იშვიათ შემთხვევებში, როდესაც მე მინახავს ის სავსე, ვფიქრობდი, რომ იდეალური დრო იქნებოდა გაზომვისთვის, მაგრამ გამოიცანით რა - ის დარეგისტრირდა როგორც 105%, ასე რომ აშკარად რაღაც იყო არასწორი.

მე ამოვიღე საცობი და აღმოვაჩინე, რომ ჩემი საწყისი ვარაუდები 140 სმ წყლის მაქსიმალური სიღრმე და 16 სმ თავისუფალი ადგილი (ავზის გარედან გაკეთებული ვიზუალური მოსაზრებების საფუძველზე) ორივე მცირედი იყო რეალურ გაზომვებზე. ასე რომ, შეიარაღებული ვიქნები ჩემი 100% ნიშნულის რეალური მონაცემებით, მე შევძელი ჩემი კოდის შეცვლა და არდუინოს გადატვირთვა.

წყლის მაქსიმალური სიღრმე 147 სმ -ია, საზომი წერტილი 160 სმ -ზეა, რაც იძლევა 13 სმ -ს თავის ზედაპირზე (სატანკოში თავსახურის ჯამი, ავზის კისრის სიმაღლე და ნაწილის სიღრმე … უი, არა, რა?! ვგულისხმობ Gauge Stabilization and Precision Placement Platform- ის სიღრმეს!).

მაქს. სიღრმისა და სათაურის ცვლადების შესაბამისად შესწორების შემდეგ, ისევე როგორც სონარის ობიექტის მაქსიმალური დიაპაზონის 160 სმ -ზე, სწრაფმა გამოცდამ აჩვენა 100%, რომელიც დაეცა 95% -მდე, როდესაც მე ოდნავ ავწიე ლიანდაგი (მცირე რაოდენობის სიმულაციისთვის წყალი გამოიყენება).

სამუშაო დასრულებულია!

PS - ეს არის ჩემი პირველი მცდელობა სასწავლო. თუ მოგწონთ ჩემი სტილი, იუმორის გრძნობა, შეცდომების აღიარების გულახდილობა (ჰეი - მე არც ვარ სრულყოფილი …) და ა.შ. - შემატყობინეთ და შეიძლება მომეცი სტიმული, რომ გავაკეთო სხვა.

ნაბიჯი 10: შემდგომი ფიქრები

გამოსაყენებელი სიმძლავრე

ასე რომ, უკვე რამოდენიმე კვირაა, რაც გამოვაქვეყნე ეს ინსტრუქცია და მე მივიღე ბევრი კომენტარი საპასუხოდ, რომელთაგან ზოგი მე გთავაზობთ ალტერნატიულ მექანიზმებს - როგორც ელექტრონულ, ასევე სახელმძღვანელოს. მაგრამ ამან დამაფიქრა და არის რაღაც, რაც ალბათ თავიდანვე უნდა მეთქვა.

  • ჩემს ავზს აქვს ტუმბო, რომელიც დამონტაჟებულია მიწის დონეზე - ტანკის ძირიდან ოდნავ ქვემოთ. რადგან ტუმბო არის სისტემის ყველაზე დაბალი წერტილი და ტუმბოდან წყალი წნევის ქვეშაა, შემიძლია გამოვიყენო ჩემი ავზის სრული სიმძლავრე.
  • თუმცა - თუ თქვენს ავზს არ აქვს ტუმბო და ეყრდნობა გრავიტაციულ საკვებს, მაშინ ავზის ეფექტური სიმძლავრე შეზღუდულია თქვენი ონკანის სიმაღლით. მას შემდეგ, რაც თქვენს ავზში დარჩენილი წყალი ონკანზე დაბალია, მაშინ წყალი არ შემოვა.

ასე რომ, განურჩევლად იმისა, იყენებთ თუ არა ელექტრონულ ლიანდაგს, თუ მექანიკური სანახავი მინის, ან float და flag ტიპის სისტემას, უბრალოდ იცოდეთ, რომ ტუმბოს გარეშე, თქვენი ავზის ეფექტური 'ბაზა' რეალურად არის ავზის გასასვლელის სიმაღლე ან დაკრავენ.

გირჩევთ: