Bemerkung

Hallo und willkommen in der SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasten-Gemeinschaft auf Facebook! Tauchen Sie tiefer ein in die Welt von Raspberry Pi, Arduino und ESP32 mit anderen Enthusiasten.

Warum beitreten?

  • Expertenunterstützung: Lösen Sie Nachverkaufsprobleme und technische Herausforderungen mit Hilfe unserer Gemeinschaft und unseres Teams.

  • Lernen & Teilen: Tauschen Sie Tipps und Anleitungen aus, um Ihre Fähigkeiten zu verbessern.

  • Exklusive Vorschauen: Erhalten Sie frühzeitigen Zugang zu neuen Produktankündigungen und exklusiven Einblicken.

  • Spezialrabatte: Genießen Sie exklusive Rabatte auf unsere neuesten Produkte.

  • Festliche Aktionen und Gewinnspiele: Nehmen Sie an Gewinnspielen und Feiertagsaktionen teil.

👉 Sind Sie bereit, mit uns zu erkunden und zu erschaffen? Klicken Sie auf [hier] und treten Sie heute bei!

2.2.8 Ultraschallsensor-Modul

Einführung

Der Ultraschallsensor verwendet Ultraschall, um Objekte präzise zu erkennen und Entfernungen zu messen. Er sendet Ultraschallwellen aus und wandelt sie in elektronische Signale um.

Benötigte Komponenten

Für dieses Projekt benötigen wir die folgenden Komponenten.

../_images/list_2.2.5.png

Es ist definitiv praktisch, ein ganzes Kit zu kaufen, hier ist der Link:

Name

ARTIKEL IN DIESEM KIT

LINK

Raphael Kit

337

Raphael Kit

Sie können diese auch separat über die untenstehenden Links kaufen.

KOMPONENTENBESCHREIBUNG

KAUF-LINK

GPIO Extension Board

KAUFEN

Steckbrett

KAUFEN

Jumper-Kabel

KAUFEN

Ultraschallmodul

KAUFEN

Schaltplan

../_images/image329.png

Experimentelle Verfahren

Schritt 1: Bauen Sie den Schaltkreis.

../_images/image220.png

Schritt 2: Navigieren Sie zum Ordner des Codes.

cd ~/raphael-kit/python/

Schritt 3: Führen Sie die ausführbare Datei aus.

sudo python3 2.2.8_Ultrasonic.py

Nachdem der Code ausgeführt wurde, erkennt das Ultraschallsensor-Modul den Abstand zwischen dem vorausliegenden Hindernis und dem Modul selbst, dann wird der Abstandswert auf dem Bildschirm angezeigt.

Code

Bemerkung

Sie können den untenstehenden Code Ändern/Zurücksetzen/Kopieren/Ausführen/Stoppen. Bevor Sie das tun, müssen Sie jedoch zum Quellcodepfad wie raphael-kit/python navigieren. Nachdem Sie den Code geändert haben, können Sie ihn direkt ausführen, um das Ergebnis zu sehen.

import RPi.GPIO as GPIO
import time

TRIG = 16
ECHO = 18

def setup():
    GPIO.setmode(GPIO.BOARD)
    GPIO.setup(TRIG, GPIO.OUT)
    GPIO.setup(ECHO, GPIO.IN)

def distance():
    GPIO.output(TRIG, 0)
    time.sleep(0.000002)

    GPIO.output(TRIG, 1)
    time.sleep(0.00001)
    GPIO.output(TRIG, 0)

    while GPIO.input(ECHO) == 0:
        a = 0
    time1 = time.time()
    while GPIO.input(ECHO) == 1:
        a = 1
    time2 = time.time()

    during = time2 - time1
    return during * 340 / 2 * 100

def loop():
    while True:
        dis = distance()
        print ('Distance: %.2f' % dis )
        time.sleep(0.3)

def destroy():
    GPIO.cleanup()

if __name__ == "__main__":
    setup()
    try:
        loop()
    except KeyboardInterrupt:
        destroy()

Code-Erklärung

def distance():

Diese Funktion wird verwendet, um die Funktion des Ultraschallsensors durch Berechnung der zurückgegebenen Erkennungsentfernung zu realisieren.

GPIO.output(TRIG, 1)
time.sleep(0.00001)
GPIO.output(TRIG, 0)

Hier wird ein 10µs Ultraschall-Impuls ausgesendet.

while GPIO.input(ECHO) == 0:
    a = 0
time1 = time.time()

Diese leere Schleife stellt sicher, dass beim Senden des Auslösesignals kein störendes Echo-Signal vorhanden ist und erfasst dann die aktuelle Zeit.

while GPIO.input(ECHO) == 1:
    a = 1
time2 = time.time()

Diese leere Schleife stellt sicher, dass der nächste Schritt nicht ausgeführt wird, bis das Echo-Signal empfangen wird, und erfasst dann die aktuelle Zeit.

during = time2 - time1

Führen Sie die Intervallberechnung aus.

return during * 340 / 2 * 100

Die Entfernung wird anhand des Zeitintervalls und der Schallgeschwindigkeit berechnet. Die Schallgeschwindigkeit in der Luft beträgt: 340m/s.

Phänomen-Bild

../_images/image221.jpeg