Instructions
KY-050 Ultraschallabstandssensor
Ausgabe: 29.04.2016 Copyright by Joy-IT - Published under CC BY-NC-SA 3.0 Seite 209 von 227
Codebeispiel Raspberry Pi
!! !! !! !!Achtung 5V Spannungslevel Achtung
Der Raspberry Pi arbeitet mit seinem ARM-Prozessorkern, anders als der auf Atmel Atmega basierende
Arduino, mit 3,3V Spannungslevel, anstatt mit 5V - dieser Sensor funktioniert jedoch nur mit dem höheren
Spannungslevel. Würde man den Sensor uneingeschränkt am Raspberry Pi ohne Vorsichtsmaßnahmen
betreiben, könnten dies bei den Eingängen des Raspberry Pi's permanente Schäden hervorrufen.
Für solche Fälle Grund besitzt dieses Sensorkit-Set mit dem KY-051 einen Voltage-Translator, welcher die
Spannungslevel anpasst und somit einen sicheren Betrieb gewährleistet. Dieser muss bei diesem Sensor
.zwischen den Rasperry Pi und dem Sensor zwischengeschaltet sein
Nähere Informationen entnehmen Sie der Informationsseite zum KY-051 Voltage Translator / Level Shifter
!! !! !! !!Achtung 5V Spannungslevel Achtung
Das Beispielprogramm aktiviert nach o.g. Prinzip die Abstandsmessung und misst mit Hilfe einer Art
Stoppuhr die Zeit, wie lang das Ultraschallsignal in der Luft ist. Diese Stoppuhr wird realisiert, indem beim
Zeitpunkt des Umschaltens des Echosignals, die aktuelle Systemzeit aus time.time() herausgelesen wird; die
Differenz zwischen der Einschaltzeit und der Ausschaltzeit ist die gesuchte Zeit wie lang das Signal
unterwegs ist.
Diese Zeit wird dann für die Umrechnung des Abstands als Basis genommen - das Ergebnis wird danach in
der Kosnole ausgegeben. Sollte das Signal außerhalb des Messbereichs sein, wird eine entsprechende
Fehlermeldung ausgegeben.
# coding=utf-8
# Benötigte Module werden eingefügt und konfiguriert
import time
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
# Hier können die jeweiligen Eingangs-/Ausgangspins ausgewählt werden
Trigger_AusgangsPin = 17
Echo_EingangsPin = 27
# Die Pause zwischen den einzelnen Messugnen kann hier in Sekunden eingestellt werden
sleeptime = 0.8
# Hier werden die Ein-/Ausgangspins konfiguriert
GPIO.setup(Trigger_AusgangsPin, GPIO.OUT)
GPIO.setup(Echo_EingangsPin, GPIO.IN)
GPIO.output(Trigger_AusgangsPin, False)
# Hauptprogrammschleife
try:
while True:
# Abstandsmessung wird mittels des 10us langen Triggersignals gestartet
GPIO.output(Trigger_AusgangsPin, True)
time.sleep(0.00001)
GPIO.output(Trigger_AusgangsPin, False)
# Hier wird die Stopuhr gestartet
EinschaltZeit = time.time()
while GPIO.input(Echo_EingangsPin) == 0:
EinschaltZeit = time.time() # Es wird solange die aktuelle Zeit gespeichert, bis das Signal aktiviert wird










