U ovom ćemo članku spojiti ultrazvučni sonar HC-SR04 ultrazvučni daljinomjer na Arduino.
Potrebno
- - Arduino;
- - ultrazvučni senzor HC-SR04;
- - spojne žice.
Upute
Korak 1
Djelovanje ultrazvučnog daljinomjera HC-SR04 temelji se na principu eholokacije. Emitira zvučne impulse u svemir i prima signal koji se odražava od prepreke. Udaljenost do objekta određuje se vremenom širenja zvučnog vala do prepreke i natrag.
Zvučni se val aktivira primjenom pozitivnog impulsa od najmanje 10 mikrosekundi na TRIG nogu daljinomjera. Čim puls završi, daljinomjer emitira rafal zvučnih impulsa frekvencije 40 kHz u prostor ispred sebe. Istodobno se pokreće algoritam za određivanje vremena kašnjenja reflektiranog signala, a na ECHO kraku daljinomjera pojavljuje se logička jedinica. Čim senzor detektira reflektirani signal, na ECHO pinu pojavljuje se logička nula. Trajanje ovog signala ("Odgoda odjeka" na slici) određuje udaljenost do objekta.
Raspon mjerenja udaljenosti daljinomjera HC-SR04 - do 4 metra s razlučivošću 0,3 cm. Kut promatranja - 30 stupnjeva, efektivni kut - 15 stupnjeva. Potrošnja struje u stanju čekanja je 2 mA, a tijekom rada - 15 mA.
Korak 2
Napajanje ultrazvučnog daljinomjera vrši se naponom od +5 V. Ostala dva pina spojena su na bilo koji digitalni priključak Arduina, spojit ćemo na 11 i 12.
3. korak
Napišimo sada skicu koja određuje udaljenost do prepreke i izbacuje je na serijski priključak. Prvo postavljamo brojeve TRIG i ECHO pinova - to su pinovi 12 i 11. Tada okidač deklariramo kao izlaz, a eho kao ulaz. Inicijaliziramo serijski port na 9600 baud. Pri svakom ponavljanju petlje () očitamo udaljenost i izlazimo na priključak.
Funkcija getEchoTiming () generira okidački impuls. Samo stvara struju od 10 mikrosekundi pulsa, što je okidač za početak zračenja daljinomjerom zvučnog paketa u svemir. Tada se prisjeća vremena od početka prijenosa zvučnog vala do dolaska jeke.
Funkcija getDistance () izračunava udaljenost do objekta. Iz školskog tečaja fizike sjetimo se da je udaljenost jednaka brzini pomnoženoj s vremenom: S = V * t. Brzina zvuka u zraku je 340 m / s, vrijeme u mikrosekundama koje znamo je "duratuion". Da biste dobili vrijeme u sekundama, podijelite s 1.000.000. Budući da zvuk prelazi dvostruku udaljenost - do predmeta i natrag - udaljenost morate podijeliti na pola. Tako ispada da je udaljenost do objekta S = 34000 cm / sec * trajanje / 1.000.000 sec / 2 = 1,7 cm / sec / 100, što smo i napisali na skici. Mikrokontroler izvodi množenje brže od dijeljenja, pa sam zamijenio "/ 100" ekvivalentom "* 0, 01".
4. korak
Također, napisane su mnoge knjižnice za rad s ultrazvučnim daljinomjerom. Na primjer, ovaj: https://robocraft.ru/files/sensors/Ultrasonic/HC-SR04/ultrasonic-HC-SR04.zip. Biblioteka se instalira na standardni način: preuzmite, raspakirajte u direktorij knjižnica, koji se nalazi u mapi s Arduino IDE-om. Nakon toga knjižnica se može koristiti.
Nakon što smo instalirali knjižnicu, napišite novu skicu. Rezultat njegovog rada je isti - monitor serijskog porta prikazuje udaljenost do objekta u centimetrima. Ako na skici napišete float dist_cm = ultrazvuk. Ranging (INC); udaljenost će se prikazati u inčima.
Korak 5
Dakle, povezali smo ultrazvučni daljinomjer HC-SR04 s Arduinom i od njega dobivali podatke na dva različita načina: pomoću posebne biblioteke i bez njega.
Prednost korištenja knjižnice je u tome što se znatno smanjuje količina koda i poboljšava čitljivost programa, ne morate se upuštati u zamršenost uređaja i možete ga odmah koristiti. Ali to je i nedostatak: slabije razumijete kako uređaj radi i koji se procesi u njemu odvijaju. U svakom slučaju, koju ćete metodu koristiti ovisi o vama.