next test

Signed-off-by: Ebbe Baß <ebbe@ping-mee.de>
master
Ebbe Baß 2022-07-09 23:55:42 +02:00
parent 1428fa5722
commit 8fd8483121
1 changed files with 44 additions and 10 deletions

54
test.py
View File

@ -1,15 +1,49 @@
import smbus import RPi.GPIO as GPIO
import time import time
address = 0x57 GPIO.setmode(GPIO.BCM)
sensor = smbus.SMBus(1)
while True: GPIO_TRIGGER = 18
sensor.write_byte(address, 0x01) GPIO_ECHO = 24
time.sleep(0.2)
bytes = sensor.read_i2c_block_data(address, 0, 3) GPIO.setup(GPIO_TRIGGER, GPIO.OUT)
distance = ((bytes[0] << 16) + (bytes[1] << 8) + bytes[2]) / 10000 GPIO.setup(GPIO_ECHO, GPIO.IN)
print(distance) def distanz():
# setze Trigger auf HIGH
GPIO.output(GPIO_TRIGGER, True)
# setze Trigger nach 0.01ms aus LOW
time.sleep(0.00001)
GPIO.output(GPIO_TRIGGER, False)
StartZeit = time.time()
StopZeit = time.time()
# speichere Startzeit
while GPIO.input(GPIO_ECHO) == 0:
StartZeit = time.time()
# speichere Ankunftszeit
while GPIO.input(GPIO_ECHO) == 1:
StopZeit = time.time()
# Zeit Differenz zwischen Start und Ankunft
TimeElapsed = StopZeit - StartZeit
# mit der Schallgeschwindigkeit (34300 cm/s) multiplizieren
# und durch 2 teilen, da hin und zurueck
distanz = (TimeElapsed * 34300) / 2
return distanz
if __name__ == '__main__':
try:
while True:
abstand = distanz()
print ("Gemessene Entfernung = %.1f cm" % abstand)
time.sleep(1)
# Beim Abbruch durch STRG+C resetten
except KeyboardInterrupt:
print("Messung vom User gestoppt")
GPIO.cleanup()