U ovom ćemo članku spojiti ultrazvučni sonar HC-SR04 ultrazvučni daljinomjer na Arduino.
Potrebno
- - Arduino;
- - ultrazvučni senzor HC-SR04;
- - spojne žice.
Instrukcije
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 emituje rafal zvučnih impulsa frekvencije 40 kHz u prostor ispred sebe. Istodobno se pokreće algoritam za određivanje vremena kašnjenja reflektiranog signala i na kraku ECHO daljinomera pojavljuje se logička jedinica. Čim senzor detektira reflektirani signal, na ECHO pinu pojavljuje se logička nula. Trajanje ovog signala ("Echo delay" na slici) određuje udaljenost do objekta.
Opseg merenja udaljenosti daljometra HC-SR04 - do 4 metra u rezoluciji 0,3 cm. Ugao posmatranja - 30 stepeni, efektivni ugao - 15 stepeni. Potrošnja struje u režimu mirovanja je 2 mA, a tokom rada - 15 mA.
Korak 2
Napajanje ultrazvučnog daljinomera vrši se naponom od +5 V. Preostala dva pina povezana su na bilo koji digitalni port Arduina, a mi ćemo spojiti na 11 i 12.
Korak 3
Sada napišimo skicu koja određuje udaljenost do prepreke i izbacuje je na serijski port. Prvo postavljamo brojeve TRIG i ECHO pinova - to su pinovi 12 i 11. Zatim okidač deklariramo kao izlaz, a eho kao ulaz. Inicijaliziramo serijski port na 9600 baud. Pri svakom ponavljanju petlje () očitamo udaljenost i izlazimo na port.
Funkcija getEchoTiming () generira impuls okidača. Samo stvara struju od 10 mikrosekundi pulsa, što je okidač za početak zračenja daljinomjerom zvučnog paketa u svemir. Tada se sjeća vremena od početka prenosa zvučnog vala do dolaska jeke.
Funkcija getDistance () izračunava udaljenost do objekta. Iz školskog kursa fizike sjetimo se da je udaljenost jednaka brzini pomnoženoj s vremenom: S = V * t. Brzina zvuka u zraku je 340 m / s, a 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 objekta 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".
Korak 4
Takođe, napisane su mnoge biblioteke 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, raspakujte u direktorij biblioteka, koji se nalazi u mapi s Arduino IDE-om. Nakon toga, biblioteka se može koristiti.
Nakon što smo instalirali biblioteku, 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 biti prikazana u inčima.
Korak 5
Dakle, na Arduino smo povezali ultrazvučni daljinomjer HC-SR04 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 količina koda značajno smanjuje 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.