HC-SR04 je ultrazvukový senzor určený na meranie vzdialenosti na základe doby odrazu ultrazvukového signálu od prekážky. Senzor pracuje s frekvenciou 40 kHz a je vhodný pre aplikácie vyžadujúce detekciu a meranie vzdialenosti objektov.
Technické parametre
Napájacie napätie
3,8 – 5,5 V
Spotreba prúdu
8 mA
Pracovná frekvencia
40 kHz
Merací rozsah
2 – 400 cm
Minimálna vzdialenosť
1-2 cm
Maximálna vzdialenosť
400 cm (4 m)
Presnosť
3 mm
Uhol detekcie
15°
Dĺžka trigger impulzu
10 µs
Rozhranie
digitálne – Echo výstup
Princíp činnosti
Senzor obsahuje vysielač (transmitter) a prijímač (receiver) ultrazvukového signálu. Vysielač generuje sériu ultrazvukových pulzov, ktoré sa šíria vzduchu a odrážajú od prekážky. Prijímač zachytí odrazený signál a na základe času medzi vyslaním a prijatím sa vypočíta vzdialenosť. Presnosť merania závisí od kvality napájania a stability elektrickej siete.
Zapojenie a používanie
Senzor má štyri vývodné piny: VCC (napájanie), GND (zem), TRIG (trigger vstup) a ECHO (výstup). Meranie sa spúšťa krátkym pulzom na TRIG pine (minimum 10 µs). Výstup ECHO vracia pulz, ktorého trvanie je úmerné nameranej vzdialenosti. Kalkulácia vzdialenosti sa uskutočňuje programovo na základe dĺžky ECHO pulzu.
Presnosť merania je ovplyvňovaná kvalitou a stabilitou napájacieho napätia. Oscilujúce alebo nízko-kvalitné napájanie môže spôsobiť nepresnosti v meraniach. Pri meraní vlhkých alebo mokrých povrchov sa môže odrážajúci signál oslabiť. Ultrazvukový signál sa odráža predovšetkým od tuhých objektov; mäkké materiály (penový plast, textil) odrážajú zvuk s nižšou účinnosťou.
Výrobok nie je samostatne funkčný celok a vyžaduje odbornú montáž
Návod
Návod - ultrazvukový senzor HC-SR04
V nasledujúcom článku sa povenujeme ultrazvukovému senzoru vzdialenosti HC-SR04. Používanie senzora je pomerne jednoduché, nakoľko nepotrebujeme žiadne knižnice a na pripojenie k vývojovej doske stačia 2 kábliky.
Ultrazvukový modul HC-SR04 má na doske zabudované 2 kusy ultrazvukových transducerov. Jedná sa o vysielací a prijímací ultrazvukový reproduktor. Modul generuje štvorcový signál pre vysielací transducer, ktorý generuje ultrazvuk približne s frekvenciou 40KHz. Ľudské ucho počuje zvukové signály len do frekvencie 20KHz, takže pre nás je zvuk nepočuteľný. Tento ultrazvuk cestuje priestorom a v prípade, že sa v blízkosti nachádza prekážka, odrazí sa od nej naspäť smerom k modulu. Druhý prijímací transducer ultrazvuk deteguje a pomocou zabudovaných komponentov na doske sa ultrazvuk interpretuje na elektrický signál logickej 1 na výstupe. Podľa toho, ako dlho zvuku trvalo cestovanie priestorom vieme odhadnúť, v akej vzdialenosti sa prekážka nachádza.
Pre viac informácií odporúčame preštudovať datasheet.
Spustenie ultrazvuku vieme ovládať pomocou pinu TRIG a následne teda sledujeme, za aký čas sa nám objaví signál na pine ECHO.
Program a zapojenie
Ako bolo spomínané vyššie, na správne fungovanie nepotrebujeme žiadne knižnice, stačí nám trošku matematiky.
Pre ovládanie senzora použijeme 2 kábliky podľa zapojenia:
A kód:
//tento kód nám zabezpečí odmeranie vzdialenosti a zároveň ju vypíšeme na seriálový monitor
int triggerPin = 11; // Trigger pin
int echoPin = 12; // Echo pin
long trvanie;
int vzdialenosť;
void setup() {
Serial.begin(9600); //inicializácia komunikácie s PC
pinMode(triggerPin, OUTPUT); //definovanie pinu ako výstup
pinMode(echoPin, INPUT); //definovanie pinu ako vstup
}
void loop() {
// na veľmi krátky čas 10 mikrosekúnd spustíme ultrazvuk
digitalWrite(triggerPin, LOW);
delayMicroseconds(5);
digitalWrite(triggerPin, HIGH);
delayMicroseconds(10);
digitalWrite(triggerPin, LOW);
pinMode(echoPin, INPUT);
trvanie = pulseIn(echoPin, HIGH); //funkcia pulseIn() nám počká kým na pine echoPin bude signál a vráti nám hodnotu v mikrosekundách
// konverzia času na vzdialenosť
vzdialenost = trvanie * 0.0343 / 2;
Serial.print(vzdialenost); //výpis vzdialenosti
Serial.print("cm"); //výpis
Serial.println(); //prázdny riadok pre medzeru
delay(250); //chvíĺu medzi meraniami počkáme, konkrétne 250 milisekúnd
}
Ako sme spomínali vyššie, modul funguje tak, že spustí ultrazvuk a čaká, kým sa nám signál vráti cez priestor naspäť. Najskôr teda vynásobíme trvanie tohto cestovania rýchlosťou zvuku vo vzduchu, teda 343 metrov za sekundu. My však máme nameraný časv mikrosekundách, takže keď to premeníme je to 0.000343 metrov za mikrosekundu. Okrem toho potrebujeme centimetre takže *100 = 0.0343.
Potom myslime na to, že signál vlastne cestoval tam a späť, takže ešte musíme vydeliť výsledok dvomi (my chceme len vzdialenosť cesty „tam“).
Senzor vysiela ultrazvukový pulz na frekvencii 40 kHz. Signál sa odráža od prekážky a vráti sa k prijímaču. Čas medzi vyslaním a príchodom odrazu sa konvertuje na vzdialenosť na základe rýchlosti zvuku vo vzduchu.
Aký je minimálny a maximálny rozsah merania?
Minimálna merateľná vzdialenosť je 1-2 cm, maximálna je 400 cm (4 m). Presnosť v celom rozsahu je približne 3 mm.
Ako sa pripája senzor k Arduino?
TRIG pin sa pripája na ľubovoľný digitálny výstupný pin, ECHO pin na vstup s možnosťou merania času (ideálne pin s prerušením). VCC sa pripája na 5V, GND na zem. Programovo sa vytvorí 10 µs pulz na TRIG pine a meria sa trvanie ECHO pulzu.
Prečo senzor nie vždy dáva presné hodnoty?
Merania sú ovplyvňovaná kvalitou napájania. Nestabilné napájanie alebo výrazné kolísanie napätia sa prejavuje na presnosti. Takisto teplota vzduchu ovplyvňuje rýchlosť zvuku. Ultrazvuková energia sa tlmí na väčšie vzdialenosti.
Čo sa stane, keď senzor nemeraný objekt nevidí?
Ak sa ultrazvukový pulz nevracia (bez prekážky v dosahu), ECHO pin ostáva HIGH podľa nastavenia timeout hodnoty. Programovo sa zvyčajne nastaví maximálny čas čakania (typicky okolo 30 ms), aby sa zabránilo zacykleniu.
Ako ovplyvňuje teplota presnosť merania?
Teplota vzduchu priamo ovplyvňuje rýchlosť zvuku. Pri vyšších teplotách sa zvuk šíri rýchlejšie, pri nižších pomalšie. Teplotné zmeny až o niekoľko stupňov Celzia spôsobujú odchýlky v meraniach v rozsahu jednotiek milimetrov.
Používame cookies na zlepšenie vášho zážitku, analýzu návštevnosti a zobrazovanie relevantného obsahu. Môžete prijať všetky, odmietnuť nepodstatné alebo si spravovať svoje preferencie.
Predvoľby cookies
Táto webová stránka používa súbory cookie, aby sme vám mohli poskytnúť čo najlepší používateľský zážitok. Informácie o cookies sa ukladajú vo vašom prehliadači a slúžia napríklad na rozpoznanie vašej opätovnej návštevy alebo na to, aby nám pomohli pochopiť, ktoré časti webu sú pre vás najzaujímavejšie a najužitočnejšie.
Vďaka týmto cookies Vám môžeme ponúknuť relevantné produkty a služby na mieru, a to na základe Vašich nákupov, Vášho správania a Vašich preferencií.
Nevyhnutné
Nevyhnutné cookies musia byť vždy povolené, aby sme si mohli zapamätať vaše preferencie pre cookies nastavenia.
Personalizácia obsahu
Tieto cookies nám umožnia zobraziť Vám obsah a reklamy podľa údajov, ktoré sú o Vás dostupné tak, aby sme sa čo najlepšie trafili do Vašich potrieb. Ide najmä o to, aký obsah ste si zobrazili alebo to, na akom zariadení na naše stránky prichádzate.
Analytické
Táto webová stránka používa službu Google Analytics na zhromažďovanie anonymných informácií, ako je počet návštevníkov stránky alebo najnavštevovanejšie stránky. Ponechanie týchto cookies zapnutých nám pomáha zlepšovať našu webovú stránku.
Marketingové
Slúžia na zobrazovanie personalizovaných reklám a meranie kampaní.