Távolságmérés

HC‑SR04

A modul a hangvisszaverődés idejét mérve következtet a távolságra, azaz szonár-elven működik (mint a tengeralattjárók szonárja). Természetesen ez a modul is több néven ismert, például: SRF04 - Ultra-Sonic Ranger.

A mérés egy 10 μs-os TTL impulzussal indítható. Ezt követően a modul 8 cikluson keresztül 40 kHz-es hangimpulzusokat ad ki, majd a mikrofonnal érzékeli ezeknek a visszaverődését. A távolság a
válaszidő (μs) / 58 = távolság (cm)
vagy
válaszidő (μs) / 148 = távolság (inch)
képletekkel számolható ki, ennek a számításnak a háttere:

A távolságmérés a hanghullámok visszaverődésének a figyelése alapján történik. A hanghullámok kibocsátási és visszaérkezési idejét ismerve kiszámolható a mérés ideje.

HC-SR04 sonárszenzor működési elve

Ezt kell a hangsebességgel beszorozni. Az ehhez szükséges számolásban a csavar, hogy a hangsebesség a légköri nyomás és hőmérséklet függvényében is változik. Jelen esetben csak a hőmérséklet-korrekciót építjük be a számításba, az ehhez szükséges formula:

331.5 + 0.6 * t

Ha a hőmérséklet például 20° C, akkor a hang terjedési sebessége: 331.5 + 0.6 * 20 = 331.5 + 12 = 343.5 m/s, azaz 0.03435 cm/µs. Ebből az is átszámolható, hogy a hangnak 29,112 mikroszekundumra van szüksége egy centiméter megtételéhez (1/0.03435 cm/µs = 29.112 µs/cm). Nyilván a hang esetén az oda-vissza utat is számolni kell, így jön ki a fenti (kerekített)

válaszidő (μs) / 58 = távolság (cm)

A méréseket nem érdemes 60 ms-on belül ismételni, mert zavarhatják egymást:

HC‑SR04 működése

A modult a tapasztalatok alapján érdemes úgy a tápfeszülségre csatlakoztatni, hogy először a grund (GND) kerüljön a modulra.

A mérés bizonytalanná válik, ha a visszaverődési felület kisebb, mint 0,5 m².

A legtöbb szoftver, ha kifut a felügyeleti időből, válasz nélkül (azaz túl nagy a távolság), "0" értékkel tér vissza, amit a szoftverben külön vizsgálni kell.

Technikai adatok

jellemzőadat
Üzemi feszültségDC 5V
Áramfelvétel15 mA
Üzemi frekvencia40 kHz
Maximális távolság4m
Minimális távolság2cm
Mérés pontossága> 3mm
Mérési tartomány (szög)15°
Trigger jel10 μs TTL impulzus

Pinek

jelölésleírás
Vcctáp, 5V DC
Trig"ping" kiküldése
Echoválasz (viszhang) a "ping"-re
GNDgrund

HC‑SR04 adatlap

Vezetékezés

Arduino 5V ↔ HC-SR04 Vcc
Arduino GND ↔ HC-SR04 Gnd
Arduino pin 11 ↔ HC-SR04 "Echo"
Arduino pin 12 ↔ HC-SR04 "Trig"

HC‑SR04 vezetékezés

Github

A modulhoz könyvtár és példaprogramok a Github-ról letölthetők:

Források

en: IR obstacle avoidance sensor

Az IR-08H egy szűk tartományban hangolható digitális akadály-érzékelő modul. Technikailag megegyezik az alábbi (eltérő gyártójú) modulokkal: HXJ-38, AD-032, KY-032, KeyesIR, FC-51..

A modul az IR LED-et (SN74LS00) 38 kHz-es frekvencián vezérli, ha az engedélyező-jel (EN) kint van. Az (általában) HS0038B típusú érzékelő a közeli és látószögbe eső tárgyakról vagy felfestésekről visszaverődő jeleket figyeli. A vevőegység tartalmaz AGC (Automatic Gain Control) funkciót; ez egy külső, optikai, 950 nm-es IR szűrő és egy belső, elektronikus, 38 kHz-es sávszűrő, így a vevő csak az adott frekvencián pulzáló infravörös fényt érzékeli.

Egyes fajtákon egy, míg más típusain kettő potméterrel lehet a modult hangolni:

IR-08H infravörös digitális akadály-érzékelő modul beállítása

Technikai jellemzők

  • Működési feszültség: 3.3V .. 5V DC
  • Üzemi áram: ≥ 20mA
  • Működési hőmérséklet: -10 °C .. 50 °C
  • Érzékelési távolság: 2 .. 40 cm
  • Kimeneti jel: TTL logikai szintek
  • - LOW szint, ha akadály észlelhető
  • - HIGH, ha nem észlelt akadályt
  • Látószög: ± 35 °

Pin-ek, beállítási lehetőségek

beállítási lehetőségleírás
R6 potmétera LED 38 kHz-ének a finomhangolása állítható
R5 potmétera jel munkaciklusának az állítása, ezzel az IR LED világossága hangolható
zöld jumperHa a jumper a helyén van, a modul folyamatosan működni fog. Ha nincs a helyén, az érzékelés az "EN" pin-nel indítható / leállítható.
EN, 1.pin"engedélyezés": Az érzékelő működésének engedélyezése (HIGH aktív). Ha a zöld jumper a helyén van, nem használható.
OUT, 2.pinJel kimenet
+, 3.pinTápfeszültség, 3.3V..5V DC
GND, 4.pingrund

Az AGC működésének "jót tesz", azaz a modul megbízhatóbban működik, ha nem folyamatos üzemben alkalmazzuk, hanem (jumper nélkül) az "EN"-nel aktiváljuk a működését (azaz rászánunk egy digitális kimenetet is).

A LED és a vevőegység bizonyos esetekben zavarni tudja egymást, ilyenkor érdemes a LED-et egy rövid csővel (pl. zsugorcsővel) körülvenni.

Szoftver

digitalWrite( enablePin, HIGH);     // Enable the internal 38kHz signal.
microDelay( 210);                   // Wait 210µs (8 pulses of 38kHz).
if( digitalRead( outputPin))        // If detector Output is HIGH,
{
    objectDetect = false;           // then no object was detected;
}
else                                // but if the Output is LOW,
{
    microDelay( 395);               // wait for another 15 pulses.
    if( digitalRead( outputPin))    // If the Output is now HIGH,
    {                               // then first Read was noise
        objectDetect = false;       // and no object was detected;
    }
    else                            // but if the Output is still LOW,
    {
        objectDetect = true;        // then an object was truly detected.
    }
}
digitalWrite( enablePin, LOW);      // Disable the internal 38kHz signal.

Az infravörös átvitelről egy áttekintés a Kommunikáció fejezetben, az IR-nél található.
Az Arduino infravörös átvitellel ez a fejezet foglalkozik.

Források

Az Sharp távérzékelők népszerűek olyan projektekhez, melyek pontos távolságmérést igényelnek. Ez az infravörös érzékelő sorozat megbízhatóságával kiemelkedik a többi IR érzékelő sorából. Illesztése a mikrokontrollerekhez egyszerű: az egy analóg kimenet analóg-digitális átalakítóhoz csatlakoztatható távolságmérések elvégzéséhez, vagy a kimenet kompenzátorhoz csatlakoztatható a küszöbérzékeléshez.

A különböző verziónak az érzékelési tartománya nagyjából 10 cm-től 150 cm-ig terjed; a távolságot minden esetben a kimeneti feszültséggel képezik le a mérőegységek.

A legtöbb Sharp típus 3 pólusú JST csatlakozót használ, amely a 3 pólusú JST kábelhez csatlakozik az Sharp távérzékelőkhöz. A hátulról nézve a balról jobbra lévő három csatlakozás a táp (piros), a föld (fekete) és a kimeneti jel (sárga).

A Sharp IR távérzékelők méréshez PSD szenzort használnak:

PSD szenzor

Fontos tudni, hogy a szenzorok távolság-feszültségkonverziója még véletlenül sem lineáris. A lenti ábrán például a GP2Y0A21YK feszültség -távolsággörbéje látható:

GP2Y0A21YK feszültség -távolsággörbéje

Néhány Sharp IR távérzékelő típus

típusÜzemi feszültségÁramfelvetelTávolságmérési
tartomány
megjegyzés
GP2Y0A60SZ(LF)2 működési mód
3V: 2,7..3,6V
5V: 2,7V..5,5V
33 mA10..150 cm-igModul: 3V Pololu
Válaszidő: kb. 16.5 ± 4 ms
Engedélyező jel is van rajta
GP2Y0A02(YK0F)4,5..5,5 V33 mA20..150 cm-igKimeneti feszültségkülönbség a távolságtartományon belül: 2,05 V
Válaszidő: kb. 38.3ms ± 9.6ms
GP2Y0A21(YK0F)4,5..5,5 V30 mA10..80 cm-ig (4"..32")Talán a leggyakoribb alkalmazott típus
Kimeneti feszültségkülönbség a távolságtartományon belül: 1,9 V
Válaszidő: kb. 38.3ms ± 9.6ms
GP2Y0A41(SK0F)0,4..2,5 V12 mA4..30 cm-igKimeneti feszültségkülönbség a távolságtartományon belül: 2,3 V
Válaszidő: kb. 16.5 ± 4 ms
GP2Y0A51(SK0F)0,4..2,5 V12 mA2..15 cm-igKimeneti feszültségkülönbség a távolságtartományon belül: 1,65 V
Válaszidő: kb. 16.5 ± 4 ms

Sharp IR távérzékelők

Néhány Sharp IR távérzékelő adatlap

Vezetékezés

piros vezeték (táp): Arduino +5V DC
fekete vezeték (föld): Arduino GND
sárga vezeték (jel): Arduino analóg input

Az IR-LED belső időzítése miatt előfordulhat, hogy a tápvezetéken zavarójelek kerülhetnek ki a mérőegységből. Ezek kiküszöbölésére többen javasolják, hogy érdemes a táp- és földvezeték közé egy 1..10μF-os szűrőkondenzátort beiktatni.

Szoftver

GP2Y0A21(YK0F), GP2Y0A41(SK0F):
A szoftverpéldákat ezúttal is a Githubon érdemes keresgélni, például itt: https://github.com/jeroendoggen/Arduino-distance-sensor-library