If-Schleife mit python
Hallo zusammen,
ich versuche gerade meine ersten Gehversucht mit pyton auf einem PI. Ich möchte damit einen gpio-Eingang abfragen und mitzählen, wie oft sich der Zustand in einer Minute verändert.
Meine überlegung ist die, dass ich die Sekunden von time.strftime verwende, um zu prüfen, ob die Minute aus ist und fange somit in der nächsten Minute wieder neu zu zählen an.
Der Code ist jetzt noch nicht fertig, aber ich habe jetzt schon das Problem, dass nicht in das erste if gesprungen wird. Was mache ich da falsch?
LG, Dex
ich versuche gerade meine ersten Gehversucht mit pyton auf einem PI. Ich möchte damit einen gpio-Eingang abfragen und mitzählen, wie oft sich der Zustand in einer Minute verändert.
Meine überlegung ist die, dass ich die Sekunden von time.strftime verwende, um zu prüfen, ob die Minute aus ist und fange somit in der nächsten Minute wieder neu zu zählen an.
#!/usr/bin/python
import RPi.GPIO as GPIO
import time
import datetime
GPIO.setmode(GPIO.BCM) #Art der Pin-Nummerierung
GPIO.setup(24, GPIO.IN) #Pin24 als digitalen Eingang festlegen
s = 0
t = 0
m = 60
while 1:
t = time.strftime("%S")
print(t)
if t < m:
# Eingang lesen
t = time.strftime("%S")
print "schleife2"
if GPIO.input(24) == GPIO.LOW:
# Wenn Eingang HIGH ist, Ausgabe im Terminal erzeugen
i = i + 1
print(i)
time.sleep(0.5)
Der Code ist jetzt noch nicht fertig, aber ich habe jetzt schon das Problem, dass nicht in das erste if gesprungen wird. Was mache ich da falsch?
LG, Dex
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 502168
Url: https://administrator.de/contentid/502168
Ausgedruckt am: 21.11.2024 um 22:11 Uhr
2 Kommentare
Neuester Kommentar
time.strftime("%S")
Wird niemals kleiner 60 sein, schau dir die Ausgabe von t an dann siehst du's.Sowas macht man einfach mit timer() oder time.time()
Import time
from timeit import default_timer as timer
t = timer()
m = 60
while timer() < (t + m):
print("Tu hier was")
time.sleep(1)
import time
t = time.time()
m = 60
while time.time() < (t + m):
print("Tu hier was")
time.sleep(1)
Siehe auch
https://stackoverflow.com/questions/7370801/measure-time-elapsed-in-pyth ...
p.s. "if-Schleifen" gibt es nicht.For, Foreach, while, do loop usw. schon ...