.. note::
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 [|link_sf_facebook|] und treten Sie heute bei!
.. _2.2.8_py:
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.
.. image:: ../img/list_2.2.5.png
Es ist definitiv praktisch, ein ganzes Kit zu kaufen, hier ist der Link:
.. list-table::
:widths: 20 20 20
:header-rows: 1
* - Name
- ARTIKEL IN DIESEM KIT
- LINK
* - Raphael Kit
- 337
- |link_Raphael_kit|
Sie können diese auch separat über die untenstehenden Links kaufen.
.. list-table::
:widths: 30 20
:header-rows: 1
* - KOMPONENTENBESCHREIBUNG
- KAUF-LINK
* - :ref:`cpn_gpio_board`
- |link_gpio_board_buy|
* - :ref:`cpn_breadboard`
- |link_breadboard_buy|
* - :ref:`cpn_wires`
- |link_wires_buy|
* - :ref:`cpn_ultrasonic_sensor`
- |link_ultrasonic_buy|
Schaltplan
-----------------
.. image:: ../img/image329.png
Experimentelle Verfahren
---------------------------
**Schritt 1:** Bauen Sie den Schaltkreis.
.. image:: ../img/image220.png
**Schritt 2:** Navigieren Sie zum Ordner des Codes.
.. raw:: html
.. code-block::
cd ~/raphael-kit/python/
**Schritt 3:** Führen Sie die ausführbare Datei aus.
.. raw:: html
.. code-block::
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**
.. note::
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.
.. raw:: html
.. code-block:: python
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**
.. code-block:: python
def distance():
Diese Funktion wird verwendet, um die Funktion des Ultraschallsensors durch
Berechnung der zurückgegebenen Erkennungsentfernung zu realisieren.
.. code-block:: python
GPIO.output(TRIG, 1)
time.sleep(0.00001)
GPIO.output(TRIG, 0)
Hier wird ein 10µs Ultraschall-Impuls ausgesendet.
.. code-block:: python
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.
.. code-block:: python
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.
.. code-block:: python
during = time2 - time1
Führen Sie die Intervallberechnung aus.
.. code-block:: python
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
------------------
.. image:: ../img/image221.jpeg