ამ სტატიაში ჩვენ დავაკავშირებთ HC-SR04 ულტრაბგერითი დიაპაზონი-სონარს Arduino- ს.
აუცილებელია
- - არდუინო;
- - ულტრაბგერითი სენსორი HC-SR04;
- - სადენების დამაკავშირებელი.
ინსტრუქციები
Ნაბიჯი 1
HC-SR04 ულტრაბგერითი დიაპაზონის მოქმედება ემყარება ექოლოკაციის პრინციპს. იგი გამოსცემს ხმოვან იმპულსებს სივრცეში და იღებს დაბრკოლებისგან არეკლილ სიგნალს. ობიექტამდე მანძილი განისაზღვრება ბგერითი ტალღის გავრცელების დრო დაბრკოლებამდე და უკანა მხარეს.
ბგერითი ტალღა იქმნება მინიმალური წამის დადებითი პულსის გამოყენებით მინიმუმ 10 მიკრომ წამი მანძილმზომი TRIG ფეხისთვის. პულსის დამთავრებისთანავე, დიაპაზონი გამოსცემს ხმის იმპულსების ამოფრქვევას 40 კჰც სიხშირით, მის წინა სივრცეში. ამავდროულად, ამოქმედებულია ასახული სიგნალის დაგვიანების დროის განსაზღვრის ალგორითმი და დიაპაზონის ECHO ფეხიზე გამოჩნდება ლოგიკური ერთეული. როგორც კი სენსორი აისახება ასახულ სიგნალს, ECHO ქინძისთავზე გამოჩნდება ლოგიკური ნულოვანი. ამ სიგნალის ხანგრძლივობა (ნახაზზე "ექოს შეფერხება") განსაზღვრავს ობიექტამდე მანძილს.
HC-SR04 დიაპაზონის დისტანციური გაზომვის დიაპაზონი - 4 მეტრამდე 0.3 სმ რეზოლუციით. დაკვირვების კუთხე - 30 გრადუსი, ეფექტური კუთხე - 15 გრადუსი. მიმდინარე მოხმარება ლოდინის რეჟიმში არის 2 mA, მუშაობის დროს - 15 mA.
ნაბიჯი 2
ულტრაბგერითი დიაპაზონის ელექტროენერგიის მიწოდება ხორციელდება +5 ვ ძაბვით. დანარჩენი ორი ქინძისთავები უკავშირდება Arduino- ს ნებისმიერ ციფრულ პორტს, ჩვენ დაუკავშირდებით 11-ს და 12-ს.
ნაბიჯი 3
ახლა მოდით დავწეროთ ესკიზი, რომელიც განსაზღვრავს დაბრკოლების მანძილს და გამოაქვს იგი სერიულ პორტამდე. პირველ რიგში, ჩვენ ვაყენებთ TRIG და ECHO ქინძისთავების ნომრებს - ეს არის 12 და 11 ქინძისთავები. შემდეგ ჩვენ გამოვაცხადებთ ტრიგერს, როგორც გამომავალს და ექოს შეყვანის სახით. ჩვენ სერიულ პორტს ვიწყებთ 9600 baud- ზე. მარყუჟის () გამეორებისას, ჩვენ ვკითხულობთ მანძილს და გამოაქვს იგი პორტამდე.
GetEchoTiming () ფუნქცია იწვევს გამომწვევ პულსს. ის უბრალოდ ქმნის 10 მიკროწამიან პულსს, რაც არის ხმოვანი პაკეტის დიაპაზონის მეშვეობით სივრცეში გამოსხივების დასაწყებად. შემდეგ მას ახსოვს დრო ხმოვანი ტალღის გადაცემის დასაწყისიდან ექოს მოსვლამდე.
GetDistance () ფუნქცია ითვლის ობიექტამდე მანძილს. სკოლის ფიზიკის კურსიდან გვახსოვს, რომ მანძილი ტოლია სიჩქარეზე გამრავლებული სიჩქარეზე: S = V * t. ჰაერში ხმის სიჩქარეა 340 მ / წმ, ჩვენთვის ცნობილია მიკროწამებში "დურატუნია". დროის წამში მისაღებად გაყოფა 1 000 000-ზე. მას შემდეგ, რაც ხმა გადის მანძილზე ორმაგად - ობიექტამდე და უკან - მანძილი შუაზე უნდა გაყოთ. ასე რომ, აღმოჩნდა, რომ მანძილი ობიექტამდე S = 34000 სმ / წმ * ხანგრძლივობა / 1.000.000 წმ / 2 = 1.7 სმ / წმ / 100, რაც ესკიზში დავწერეთ. მიკროკონტროლი უფრო სწრაფად ასრულებს გამრავლებას, ვიდრე გაყოფა, ამიტომ მე შეცვალა "/ 100" ეკვივალენტით "* 0, 01".
ნაბიჯი 4
ასევე, მრავალი ბიბლიოთეკა დაიწერა ულტრაბგერით დიაპაზონთან მუშაობისთვის. მაგალითად, ეს: https://robocraft.ru/files/sensors/Ultrasonic/HC-SR04/ultrasonic-HC-SR04.zip. ბიბლიოთეკა დაინსტალირებულია სტანდარტული გზით: გადმოწერეთ, ამოიღეთ ბიბლიოთეკების დირექტორიაში მოხსნა, რომელიც მდებარეობს Arduino IDE საქაღალდეში. ამის შემდეგ, ბიბლიოთეკის გამოყენება შესაძლებელია.
დაინსტალირებული ბიბლიოთეკა, მოდით დავწეროთ ახალი ესკიზი. მისი მუშაობის შედეგი იგივეა - სერიული პორტის მონიტორი აჩვენებს ობიექტამდე მანძილს სანტიმეტრებში. თუ თქვენ დაწერთ float dist_cm = ულტრაბგერითი. Ranging (INC); ესკიზში, მაშინ მანძილი გამოჩნდება ინჩებში.
ნაბიჯი 5
ასე რომ, ჩვენ დაუკავშირდით HC-SR04 ულტრაბგერით მანძილს Arduino- ს და მისგან მონაცემები მივიღეთ ორი განსხვავებული გზით: სპეციალური ბიბლიოთეკის გამოყენებით და მის გარეშე.
ბიბლიოთეკის გამოყენების უპირატესობა იმაშია, რომ კოდის რაოდენობა მნიშვნელოვნად შემცირდა და პროგრამის კითხვას იუმჯობესებს, თქვენ არ უნდა ჩაუღრმავდეთ აპარატის სიძნელეებს და შეგიძლიათ დაუყოვნებლივ გამოიყენოთ იგი. მაგრამ ეს ასევე არის მინუსი: თქვენ ნაკლებად გესმით, როგორ მუშაობს მოწყობილობა და რა პროცესები ხდება მასში. ნებისმიერ შემთხვევაში, რომელი მეთოდი უნდა გამოიყენოთ, თქვენზეა დამოკიდებული.