HC-SR04: všetko o ultrazvukovom senzore

Senzor HC-SR04

Niekedy je to nevyhnutné Zmerajte vzdialenosti a preto máte k dispozícii niekoľko senzorov. Už sme venovali článok rozhovorom o a vysoko presný snímač vzdialenosti, ako napríklad VL52L0X. Tento snímač bol typu ToF a bol založený na veľmi presných meraniach vďaka svojmu laseru. Ale ak pre vás presnosť nie je až taká dôležitá a chcete niečo, čo vám umožní merať vzdialenosti za nízku cenu, je tu ešte jedna možnosť máte na dosah ruky je HC-SR04.

V prípade Senzor vzdialenosti HC-SR04, vzdialenosť sa meria ultrazvukom. Systém je podobný optickej metóde modelu VL52L0X. To znamená, že je emitovaný, dôjde k odrazu a je prijatý, ale v tomto prípade je to namiesto laseru alebo infračerveného žiarenia ultrazvuk. Ak sa zaujímate o elektroniku, robotiku alebo amatérskych výrobcov, môžete ich použiť na množstvo DIY projektov, ako sú systémy detekcie prekážok pre roboty, snímače prítomnosti atď.

Čo je HC-SR04?

Je zrejmé, ako som už uviedol v predchádzajúcich odsekoch, HC-SR04 je snímač vzdialenosti s nízkou presnosťou založený na ultrazvuku. S ním umožňuje merať vzdialenosti jednoduchým a rýchlym spôsobom, aj keď v zásade sa na to zvyčajne nepoužíva. Najčastejšie sa používa ako prevodník na detekciu prekážok a vyhýbanie sa im pomocou iných mechanizmov spojených s reakciou snímača.

Vzhľad HC-SR04 je veľmi charakteristický a ľahko rozpoznateľný. Okrem toho je to veľmi populárna položka v štartovacích súpravách Arduino a je nevyhnutná pre množstvo projektov. Je ľahko identifikovateľný, pretože má dve „oči“, ktoré sú vlastne ultrazvukovými prístrojmi, ktoré tento modul integruje. Jedným z nich je ultrazvukový žiarič a druhým prijímač. Funguje na frekvencii 40 Khz, preto je pre ľudí nepočuteľné.

Princípy ultrazvukového snímača

Princíp, v ktorom Je založená na simulácii toho, ktorý sa použije pri hodení kameňa do studne, aby sa zmerala jeho hĺbka. Hodíte kameň a čas, ako dlho trvá, kým spadne na dno. Potom urobíte výpočty rýchlosti za uplynulý čas a získate vzdialenosť, ktorú kameň prešiel. Ale v takom prípade ste snímačom vy.

ESP8266
Súvisiaci článok:
ESP8266: modul WIFI pre Arduino

V modeli HC-SR04 bude vysielač emitovať ultrazvuk a keď sa odrazia od predmetu alebo prekážky tak, že ich zachytí prijímač. The obvod urobí potrebné výpočty tejto ozveny na určenie vzdialenosti. To vám môže byť tiež známe, ak poznáte systém, ktorý niektoré zvieratá, ako sú delfíny, veľryby alebo netopiere, používajú na lokalizáciu prekážok, koristi atď.

Počítaním času od okamihu vyslania impulzu do prijatia odpovede možno presne určiť čas a teda aj vzdialenosť. Zapamätaj si to [Medzerník = čas rýchlosti] ale v prípade HC-SR04 musíte túto veličinu vydeliť číslom / 2, pretože sa meral čas od okamihu, keď vyjde ultrazvuk a pohybuje sa vesmírom, kým nenarazí na prekážku a na cestu späť, takže to bude približne polovica z toho ...

Pinout a údajové listy

Už viete, že najlepšie sú informácie o kompletných údajoch o modeli, ktoré ste získali nájsť údajový list betón výrobcu. Napríklad tu je a Datasheet Sparkfun, ale v PDF je k dispozícii oveľa viac. Tu sú však najdôležitejšie technické údaje modelu HC-SR04:

  • pinov: 4 piny pre napájanie (Vcc), spúšť (spúšť), prijímač (ozvena) a zem (GND). Spúšť indikuje, kedy by sa mal senzor aktivovať (pri spustení ultrazvuku), a tak bude možné poznať čas, ktorý uplynul, keď prijímač prijme signál.
  • Alimentación: 5 v
  • Frekvencia ultrazvuku: 40 Khz, ľudské ucho počuje iba od 20 Hz do 20 kHz. Všetko pod 20 Hz (infrazvuk) a nad 20 Khz (ultrazvuk) nebude vnímateľné.
  • Spotreba (pohotovostný režim): <2mA
  • Spotreba funkčná: 15 mA
  • Efektívny uhol: <15º, v závislosti od uhlov objektov môžete mať lepšie alebo horšie výsledky.
  • Nameraná vzdialenosť: od 2 cm do 400 cm, aj keď od 250 cm nebude rozlíšenie veľmi dobré.
  • Stredné rozlíšenie: 0.3 cm odchýlka medzi skutočnou vzdialenosťou a meraním, takže napriek tomu, že sa nepovažujú za vysoko presné ako lasery, sú merania pre väčšinu aplikácií celkom prijateľné.
  • cena: od asi 0,65 €

Integrácia s Arduino

HC-SR04 s Arduino

na pripojenie k Arduinu už nemôže byť jednoduchšie. Musíte len zodpovedať za pripojenie GND k zodpovedajúcemu výstupu vášho Arduina, ktorý je takto označený, Vcc s napájaním Arduino 5v a ďalšie dva piny HC-SR04 so vstupmi / výstupmi zvolenými pre váš projekt. Ako je vidieť, na hornej Fritzingovej schéme je to jednoduché ...

Musíte len vziať do úvahy, že tigger musí dostať elektrický impulz najmenej 10 mikrosekúnd, aby sa správne aktivoval. Predtým sa musíte ubezpečiť, že je v NÍZKEJ hodnote.

Pokiaľ ide o kód pre Arduino IDE, nemusíte používať žiadnu knižnicu ani nič podobné ako s inými komponentmi. Vytvorte vzorec na výpočet vzdialenosti a ešte niečo ... Samozrejme, ak chcete, aby váš projekt urobil niečo ako odpoveď na meranie senzora HC-SR04, budete musieť pridať požadovaný kód. Napríklad namiesto jednoduchého zobrazenia meraní na konzole môžete nechať servomotory pohybovať jedným alebo druhým smerom na určité vzdialenosti, aby ste sa vyhli prekážke, alebo aby sa zastavil motor, aby sa aktivoval alarm, keď zistí blízkosť atď. .

 Viac informácií o programovaní: Príručka Arduino (PDF zadarmo)

Môžete to napríklad vidieť základný kód, ktorý sa má použiť ako základ:

//Define las constantes para los pines donde hayas conectado el pin Echo y Trigger
const int EchoPin = 8;
const int TriggerPin = 9;
 
void setup() {
   Serial.begin(9600);
   pinMode(TriggerPin, OUTPUT);
   pinMode(EchoPin, INPUT);
}

//Aquí la muestra de las mediciones
void loop() {
   int cm = ping(TriggerPin, EchoPin);
   Serial.print("Distancia medida: ");
   Serial.println(cm);
   delay(1000);
}

//Cálculo para la distancia
int ping(int TriggerPin, int EchoPin) {
   long duration, distanceCm;
   
   digitalWrite(TriggerPin, LOW);  //para generar un pulso limpio ponemos a LOW 4us
   delayMicroseconds(4);
   digitalWrite(TriggerPin, HIGH);  //generamos Trigger (disparo) de 10us
   delayMicroseconds(10);
   digitalWrite(TriggerPin, LOW);
   
   duration = pulseIn(EchoPin, HIGH);  //medimos el tiempo entre pulsos, en microsegundos
   
   distanceCm = duration * 10 / 292/ 2;   //convertimos a distancia, en cm
   return distanceCm;
}


Komentár, nechajte svoj

Zanechajte svoj komentár

Vaša e-mailová adresa nebude zverejnená. Povinné položky sú označené *

*

*

  1. Zodpovedný za údaje: Miguel Ángel Gatón
  2. Účel údajov: Kontrolný SPAM, správa komentárov.
  3. Legitimácia: Váš súhlas
  4. Oznamovanie údajov: Údaje nebudú poskytnuté tretím stranám, iba ak to vyplýva zo zákona.
  5. Ukladanie dát: Databáza hostená spoločnosťou Occentus Networks (EU)
  6. Práva: Svoje údaje môžete kedykoľvek obmedziť, obnoviť a vymazať.

  1.   Jose dijo

    Zdalo sa mi vysvetlenie veľmi užitočné a jednoduché.