V tomto článku pripojíme ultrazvukový diaľkomer-sonar HC-SR04 k Arduinu.
Nevyhnutné
- - Arduino;
- - ultrazvukový snímač HC-SR04;
- - spojovacie vodiče.
Inštrukcie
Krok 1
Pôsobenie ultrazvukového diaľkomeru HC-SR04 je založené na princípe echolokácie. Vydáva zvukové impulzy do vesmíru a prijíma signál odrazený od prekážky. Vzdialenosť od objektu je určená časom šírenia zvukovej vlny k prekážke a späť.
Zvuková vlna sa spustí aplikáciou pozitívneho impulzu najmenej 10 mikrosekúnd na TRIG nohu diaľkomeru. Len čo impulz skončí, diaľkomer vyšle do priestoru pred ním výbuch zvukových impulzov s frekvenciou 40 kHz. Zároveň sa spustí algoritmus na určenie času oneskorenia odrazeného signálu a na nohe diaľkomeru ECHO sa objaví logická jednotka. Len čo snímač detekuje odrazený signál, na kolíku ECHO sa objaví logická nula. Trvanie tohto signálu („oneskorenie ozveny“na obrázku) určuje vzdialenosť k objektu.
Rozsah merania vzdialenosti diaľkomeru HC-SR04 - až 4 metre s rozlíšením 0,3 cm. Uhol pozorovania - 30 stupňov, efektívny uhol - 15 stupňov. Spotreba prúdu v pohotovostnom režime je 2 mA, počas prevádzky - 15 mA.
Krok 2
Napájanie ultrazvukového diaľkomeru sa vykonáva s napätím +5 V. Ďalšie dva piny sú pripojené k akýmkoľvek digitálnym portom Arduina, pripojíme k 11 a 12.
Krok 3
Teraz napíšeme náčrt, ktorý určuje vzdialenosť od prekážky a odošle ju na sériový port. Najskôr nastavíme čísla pinov TRIG a ECHO - jedná sa o pin 12 a 11. Potom deklarujeme spúšť ako výstup a echo ako vstup. Sériový port inicializujeme pri 9600 baudoch. Pri každom opakovaní cyklu () načítame vzdialenosť a odošleme ju na port.
Funkcia getEchoTiming () generuje spúšťací impulz. Iba vytvára prúd 10 mikrosekúnd pulz, ktorý je spúšťačom začiatku žiarenia diaľkomerom zvukového paketu do vesmíru. Potom si pamätá čas od začiatku prenosu zvukovej vlny po príchod ozveny.
Funkcia getDistance () počíta vzdialenosť od objektu. Zo školského kurzu fyziky si pamätáme, že vzdialenosť sa rovná rýchlosti vynásobenej časom: S = V * t. Rýchlosť zvuku vo vzduchu je 340 m / s, čas v mikrosekundách, ktorý poznáme, je „duratuion“. Ak chcete získať čas v sekundách, vydelte 1 000 000. Pretože zvuk prechádza dvojnásobne ďaleko - k objektu a dozadu - musíte vzdialenosť rozdeliť na polovicu. Ukazuje sa teda, že vzdialenosť k objektu S = 34000 cm / s * doba trvania / 1 000 000 s / 2 = 1,7 cm / s / 100, ktorú sme si napísali do náčrtu. Mikrokontrolér vykonáva množenie rýchlejšie ako delenie, preto som nahradil „/ 100“ekvivalentom „* 0, 01“.
Krok 4
Mnoho knižníc bolo napísaných aj na prácu s ultrazvukovým diaľkomerom. Napríklad tento: https://robocraft.ru/files/sensors/Ultrasonic/HC-SR04/ultrasonic-HC-SR04.zip. Knižnica sa inštaluje štandardným spôsobom: stiahnite si a rozbaľte adresár knižníc, ktorý sa nachádza v priečinku s Arduino IDE. Potom je možné knižnicu používať.
Po nainštalovaní knižnice napíšeme nový náčrt. Výsledok jeho práce je rovnaký - monitor sériového portu zobrazuje vzdialenosť k objektu v centimetroch. Ak napíšete float dist_cm = ultrasonic. Ranging (INC); v náčrte sa vzdialenosť zobrazí v palcoch.
Krok 5
Pripojili sme teda ultrazvukový diaľkomer HC-SR04 k Arduinu a dáta sme od neho prijímali dvoma rôznymi spôsobmi: pomocou špeciálnej knižnice a bez nej.
Výhodou používania knižnice je, že sa výrazne zníži množstvo kódu a zlepší sa čitateľnosť programu, nemusíte sa vŕtať v zložitostiach zariadenia a môžete ho okamžite použiť. Je to však aj nevýhoda: menej dobre rozumiete tomu, ako zariadenie funguje a aké procesy v ňom prebiehajú. V každom prípade, ktorá metóda sa použije, je len na vás.