Hallo.
Ich habe gegenwärtig Schwierigkeiten den US-Sonsor DYP-ME007Y in Betrieb zu nehmen. Ich bin mir 100%-sicher die TX-Version und nicht PWM-Version des Sensors zu besitzen.
PWM oder Serial + weitere Informationen.
Mir erscheint der von kaiserem verfasste Pyhton-Code (#19) mit der Abfrage des seriellen Ports (GPIO 15 RX) daher passend für meine Sensor. Leider habe ich keinerlei Erfahrung mit Python und meine algemeinen Programmierkenntnisse sind mitlerweile auch mehr als verstaubt.
Beim Versuch den Code auszuführen, tauchen verschidene Fehler auf, die ein Einrücken (Tab/4Spaces) erfordern. Ich habe versucht die Logik nachzuvollziehen um passende "indent" zu setzen, aber nö...ich bekomme keinen ausführbaren Code zustande.
Kann mir jemand helfen den Code zum Ausführen zu bringen?
Die Verdrahtung erflogt nach folgendem Schaltplan, nur das der 470 Ohm Widerstand durch eine 10 KOhm Widerstand getauscht wurde und RX/Trig. nicht (auf GPIO 18) verschaltet wird.
Ich habe IDLE zur Systax-Kontrolle verwendet und dies ist mein letzter Stand. Im #Abbruch sind immernoch indents abkömmlich, sagt IDLE:
#Bibliotheken einbinden
import time
import serial
#seriellen Port einstellen
ser = serial.Serial("/dev/ttyAMA0")
ser.baudrate = 9600
#Funktionen
def distanze():
ser.flushInput()
startbyte = ord(ser.read(1))
while startbyte != 255:
startbyte = ord(ser.read(1))
hbyte = ord(ser.read(1))
lbyte = ord(ser.read(1))
sbyte = ord(ser.read(1))
distanz = hbyte * 256 + lbyte
summe = startbyte + hbyte + lbyte
summe = summe - (int(summe/256) * 256)
if summe != sbyte:
distanz = 0
print(startbyte, hbyte, lbyte, sbyte, distanz)
return distanz
#Hauptprogramm
if __name__ == '__main__':
try:
while True:
abstanda = distanze()
abstandb = distanze()
vergleiche = 3
while vergleiche > 0:
vergleiche = vergleiche - 1
if abstanda == abstandb:
gleich = True
abstandb = abstanda
abstanda = distanze()
else:
gleich = False
break
if gleich == True:
print ("Gemessene Entfernung = " + str(abstandb) + " mm")
time.sleep(1)
# Beim Abbruch durch STRG+C resetten
except KeyboardInterrupt:
print(" Messung vom User gestoppt ")
Alles anzeigen
Ich bin für jeden Tipp dankbar.
Viele Grüße.
Yabow