Hi Leute,
ich habe nun schon ein wenig Programmcode in python zusammengeschrieben.
Allerdings gibt mir der Compiler aus, dass irgendwas mit der "else" bedingung nicht stimmt?! Und ich weiß nicht was...
Ich denke der Code ist weitestgehend selbsterklärend. Ein input fängt HI-Signale von einem Hallsensor der am Wagenrad sitzt auf und der andere Schalter soll zum starten/stoppen der Messfunktion sein.
Könnte es an den Interrupts liegen, die ich in die If funktion reingeschreiben habe?
Nicht irritieren lassen von Sachen, die ich durch kommentieren wieder rausgenommen habe...wie gesagt, bin noch in der testphase.
Leider wurden die ganzen formatierungen von geany nicht erkannt?! gibts ne möglichkeit, den code hier sauber einzufügen?
Code
# Datei zum Testen der Interrupts mit Testplatine und
# Tastern. LX-Terminal gibt Werte aus
#Import von Standartbibliotheken
#!/usr/bin/python
import RPi.GPIO as gpio
import time
import math
import sys
gpio.setmode(gpio.BCM)
#Art der Pinbezeichnungen: Board = Reihenfolge! Nicht der Name selbst...
#dass bedeutet z.B., GPIO4 wird mit "7" angesprochen!!!
gpio.setup(17, gpio.IN)
#Hall-Sensor
#GPIO.setup(11, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
#Interne Pullups/Downs auf 0 gezogen -> High wird als High erkannt
gpio.setup(27, gpio.IN)
#Schalter zum Ein-/Ausschalten
#GPIO.setup(13, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
#Interne Pullups/Downs auf 0 gezogen -> High wird als High erkannt
umdrehung = 3.33
raddurchmesser = 1.06
while True:
input_schalter = gpio.input(27)
#Variable die Schalterstatus darstellt
if input_schalter == True:
umdrehungen_int = 0
print ("Messung gestartet! Warte nun auf Input des Hallsensors\n")
def drehzahlmessung_rechnung(channel):
n_total = umdrehung_int + 1
print (n_total)
strecke_total = n_gesamt * umdrehung
print (strecke_total)
def drehzahlmessung_ende(channel):
gpio.cleanup()
gpio.add_event_detect (17, GPIO.RISING, callback = drehzahlmessung_rechnung, bouncetime = 300)
gpio.add_event_detect (27, GPIO.FALLING, callback = drehzahlmessung_ende, bouncetime = 300)
else
print ("Messung nicht gestartet\n")
time.sleep(0.5)
Alles anzeigen