A HC-SR04 használata a Raspberry PI-vel

Using the HC-SR04 With the Raspberry Pi

A HC-SR04 ultrahangos érzékelő népszerű, költséghatékony eszköz a távolság mérésére különféle barkácsolás és szakmai projektek során. Ha párosul egy Raspberry Pi -vel, akkor lehetőséget nyit az olyan alkalmazások létrehozására, mint az akadályok észlelése, a szintmérés és akár az interaktív telepítések. Ez a blogbejegyzés végigvezeti Önt a HC-SR04 érzékelő beállításának és használatának folyamatán a Raspberry PI-vel.

Mi a HC-SR04 ultrahangos érzékelő?

A HC-SR04 egy ultrahangos érzékelő modul, amely méri a távolságot ultrahangos hullámok kibocsátásával és az ECHO visszatéréséhez szükséges idő kiszámításával. 5 V-nál működik, és pontosságáról és megbízhatóságáról ismert, rövid és közepes távolságú távolság méréseiben, jellemzően 2 és 400 cm között.

Az összetevők, amelyekre szükséged lesz

  • Raspberry Pi (bármilyen modell GPIO -csapokkal, például Raspberry Pi 4)
  • HC-SR04 ultrahangos érzékelő
  • Jumper vezetékek
  • Kenyér
  • 10kΩ ellenállás (feszültségosztályhoz)
  • Opcionális: LED és ellenállás a vizuális visszajelzéshez

A HC-SR04 huzalozása a Raspberry PI-hez

A HC-SR04 és a Raspberry PI csatlakoztatása gondos kezelést igényel, főleg mivel a Raspberry PI GPIO csapok 3,3 V-os sebességgel működnek, a HC-SR04 5 V-nál működik. A PI károsodásának elkerülése érdekében elengedhetetlen a feszültségválasztó használata az ECHO PIN -n.

PIN -csatlakozások

  • VCC HC-SR04-től 5 V -os Pin a Raspberry Pi -re
  • GND HC-SR04-től GND A Raspberry Pi -n
  • Kerékkötő Pin HC-SR04-a GPIO PIN A Raspberry Pi -n (például GPIO23)
  • Visszhang Pin HC-SR04-a Raspberry Pi-hez egy feszültségválasztón keresztül

A feszültség elválasztó beállítása

Az ECHO PIN -kód biztonságos csatlakoztatásához a Raspberry PI -hez használjon egy feszültség -elválasztót 10 kΩ -os ellenállással és 20 kΩ -os ellenállással. Ez csökkenti az 5 V -os jelet körülbelül 3,3 V -ra.


# Example schematic for voltage divider
# HC-SR04 Echo pin ---- 10kΩ ----> Raspberry Pi GPIO (Echo)
#                             |
#                           20kΩ
#                             |
#                           GND

A szükséges könyvtárak telepítése

A kód megírása előtt ellenőrizze, hogy a Raspberry Pi naprakész -e, és telepítve van a szükséges könyvtárakkal.


sudo apt-get update
sudo apt-get upgrade
sudo apt-get install python3-rpi.gpio

A Python szkript írása

Az alábbiakban egy egyszerű Python szkript található, amely összekapcsolja a HC-SR04 érzékelőt. Ez a szkript elküldi egy trigger impulzust, várja a visszhangot, és kiszámítja a távolságot a visszhang visszatérésének idő alapján.


import RPi.GPIO as GPIO
import time

# GPIO Mode (BOARD / BCM)
GPIO.setmode(GPIO.BCM)

# Set GPIO Pins
TRIG = 23
ECHO = 24

print("Distance Measurement In Progress")

# Set GPIO direction (IN / OUT)
GPIO.setup(TRIG, GPIO.OUT)
GPIO.setup(ECHO, GPIO.IN)

def distance():
    # Set TRIG to LOW
    GPIO.output(TRIG, False)
    time.sleep(2)

    # Send 10us pulse to TRIG
    GPIO.output(TRIG, True)
    time.sleep(0.00001)
    GPIO.output(TRIG, False)

    start_time = time.time()
    stop_time = time.time()

    # Save StartTime
    while GPIO.input(ECHO) == 0:
        start_time = time.time()

    # Save Time of Arrival
    while GPIO.input(ECHO) == 1:
        stop_time = time.time()

    # Time difference between start and arrival
    time_elapsed = stop_time - start_time
    # Multiply with speed of sound (34300 cm/s)
    # and divide by 2, because there and back
    distance = (time_elapsed * 34300) / 2

    return distance

if __name__ == '__main__':
    try:
        while True:
            dist = distance()
            print("Measured Distance = %.1f cm" % dist)
            time.sleep(1)
    except KeyboardInterrupt:
        print("Measurement stopped by User")
        GPIO.cleanup()

A szkript futtatása

Győződjön meg arról, hogy a vezetéke helyes -e, majd futtassa a szkriptet a Python 3 segítségével:


python3 hc-sr04.py

Látnia kell a mért távolságot centiméterben a konzolra nyomtatva. Ha LED -et használ a vizuális visszacsatoláshoz, akkor módosíthatja a szkriptet a LED megvilágításához, ha egy objektum egy bizonyos tartományon belül van.

A projekt javítása

Miután működött az alapvető távolságmérések, fontolja meg a további szolgáltatások integrálását:

  • LED mutatók: Használjon LED -eket a különböző távolsági tartományok jelzésére.
  • LCD kijelző: Mutassa meg a távolságot egy LCD képernyőn.
  • Adatnaplózás: Rögzítse a távolságméréseket az idő múlásával az elemzéshez.
  • Riasztási rendszerek: Vigyázzatok vagy értesítések indításakor, ha az objektumok túl közel vannak.

Általános kérdések hibaelhárítása

Az érzékelőkkel és a GPIO -val való munka néha kihívást jelenthet. Íme néhány általános kérdés és hogyan lehet kezelni őket:

  • Helytelen vezetékek: Ellenőrizze duplán az összes csatlakozást, különös tekintettel az ECHO PIN-es feszültség-elválasztóra.
  • Zajos mérések: Győződjön meg arról, hogy a beállítás stabil -e, és fontolja meg a kondenzátorok hozzáadását a zaj szűrésére.
  • GPIO konfliktusok: Győződjön meg arról, hogy más szkriptek vagy szolgáltatások sem használják ugyanazokat a GPIO -csapokat.
  • Engedélyek: Futtassa a szkripteket megfelelő engedélyekkel, használva sudo Ha szükséges.

Következtetés

A HC-SR04 ultrahangos érzékelő sokoldalú és megbízható alkatrész, amely a Raspberry PI-vel kombinálva sok alkalmazást szolgálhat az egyszerű távolságméréstől a komplex automatizálási rendszerekig. Az ezen útmutatóban vázolt lépések betartásával képesnek kell lennie arra, hogy beállítson és elkezdje kísérletezni a HC-SR04-rel a Raspberry PI-n. Boldog bántalmazást!

Hagyj egy megjegyzést

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.