Hallo zusammen,
benötige Eure Hilfe, da ich absolut auf dem Schlauch stehe.
Es gibt zur Berechnung viele Beiträge im Netz und auch hier im Forum,
aber ncihts was zu meinem Problem passt. Bei den Wetterstationen und Stoppuhren habe ich auch schon nachgesehen, aber dort ist die Berechnung etwas anders:
meine zu lösende Aufgabe ist wie folgt:
Ich habe eine Scheibe mit D=105mm (105 x 3.14 = 0.33m)
Darin sind 3 Magnete die einen Impulsgeber triggern
d.h. jeder Impuls sind 0.11m
Ich möchte ausgeben: die Strecke während das script läuft und die aktuelle Geschwindigkeit
Die Range sollte zwischen 2m/min und 50m/min betragen.
Folgendes Script macht mich verrückt, da ich den Fehler (und auch das Problem) nicht mehr sehe:
#!/usr/bin/python
import time
import RPi.GPIO as GPIO
# setup GPIOs
GPIO.setmode(GPIO.BCM)
GPIO.setup(22, GPIO.IN, pull_up_down = GPIO.PUD_DOWN)
#Speed Variablen
section = 0.33
impuls = 0
speed = 0
tstart = 0
tend = 0
stamptime = 1
# Impulse zaehlen
def Interrupt(channel):
global impuls
impuls = float(impuls + 1)
return impuls
GPIO.add_event_detect(22, GPIO.RISING, callback = Interrupt, bouncetime = 150)
def getSect():
global section
section = float(impuls * 0.33)
return section
def getTime():
global stamptime, tstart, tend
tstart = time.clock()
while (impuls < 3):
tend = time.clock()
stamptime = (tend - tstart)
return stamptime
def getSpeed():
speed = (section / stamptime) # Geschwindigkeit = Weg / Zeit
return speed
while True:
speed = round(getSpeed(),0)
section = round(getSect(),1)
print("Zeit :" + str(stamptime))
print("Impuls : {} pcs".format(impuls))
print("Geschw : {} m/min".format(speed))
print("Strecke : {} m".format(section))
time.sleep(1)
Alles anzeigen
Ich möchte hiermit also die Zeit zwischen 3 Impulsen messen und diese dann zur Geschwindigkeitsberechnung weiterverarbeiten.
Bin ich da überhaupt auf dem richtigen Weg?
Brauche wirklich dringend Unterstützung!
Danke