Fiókom
TERMÉK KATEGÓRIÁK
10/27/2021 Használati útmutató – HC-SR04 ultrahangos távolságérzékelő

Használati útmutató – HC-SR04 ultrahangos távolságérzékelő

Ebben a cikkben az HC-SR04 ultrahangos távolságérzékelővel foglalkozunk. A szenzor használata viszonylag egyszerű, mivel nem igényel külön könyvtárakat, és a fejlesztőpanelhez való csatlakoztatáshoz mindössze két vezetékre van szükség.

A működés elve

Az HC-SR04 ultrahangos modul két beépített ultrahangos átalakítót (transzducert) tartalmaz – egy adót és egy vevőt. A modul négyszögjelet generál az adó számára, amely kb. 40 kHz frekvenciájú ultrahangot bocsát ki. Az emberi fül legfeljebb 20 kHz-ig képes hangokat érzékelni, így ez a hang számunkra nem hallható. Az ultrahang a levegőben terjed, és ha akadályba ütközik, visszaverődik a modul felé. A másik, vevőként működő átalakító érzékeli a visszatérő ultrahangot, és az áramkör ezt logikai 1-es jellé alakítja a kimeneten. A hang oda-vissza megtett idejéből kiszámítható az akadály távolsága.

Detecting distance with HC-SR04 sensor - Arduino Platform

További részletekért ajánlott áttanulmányozni a modul adatlapját.

Az ultrahang kibocsátását a TRIG láb segítségével indítjuk, majd figyeljük, mennyi idő után érkezik vissza a jel a ECHO lábra.

Program és bekötés

Ahogy korábban is említettük, a működéshez nincs szükség külön könyvtárakra, csak egy kis matematikára.

A szenzor vezérléséhez két vezeték szükséges az alábbi bekötés szerint:

HC SR04

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
}

A képlet magyarázata [távolság = időtartam × 0.0343 / 2]

Ahogy korábban említettük, a modul úgy működik, hogy elindítja az ultrahangot, majd megvárja, amíg a jel visszatér a levegőn keresztül. Először tehát az utazási időt megszorozzuk a hangsebességgel a levegőben, ami 343 méter másodpercenként. A mért idő azonban mikroszekundumban van megadva, ezért ezt át kell váltani: 343 m/s = 0,000343 méter mikroszekundumonként.Mivel a végeredményt centiméterben szeretnénk megkapni, megszorozzuk 100-zal: 0,000343 × 100 = 0.0343

Ezután ne felejtsük el, hogy a jel oda-vissza megtette az utat, tehát az eredményt még kettővel osztjuk, mivel minket csak az „oda” irányú távolság érdekel.

További olvasnivaló és források

  • https://sk.wikipedia.org/wiki/R%C3%BDchlos%C5%A5_zvuku
  • https://www.makerguides.com/wp-content/uploads/2019/02/HCSR04-Datasheet.pdf
  • https://www.arduinoplatform.com/detecting-distance-with-hc-sr04-sensor/
  • http://electronoobs.com/eng_arduino_tut80.php

Vélemény, hozzászólás?

Az e-mail címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük