dextha
Goto Top

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.

#!/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

Content-Key: 502168

Url: https://administrator.de/contentid/502168

Printed on: April 25, 2024 at 15:04 o'clock

Mitglied: 141320
Solution 141320 Oct 07, 2019 updated at 13:49:38 (UTC)
Goto Top
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)
oder
import time
t = time.time()
m = 60
while time.time() < (t + m):
    print("Tu hier was")  
    time.sleep(1)
Statt der while kannst du natürlich auch dein IF zum Vergleich benutzen, das soll nur zeigen wie man den Zeitvergleich prinzipiell so aufbaut.
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 ...
Member: Dextha
Dextha Oct 07, 2019 at 14:47:53 (UTC)
Goto Top
Danke dir!!!!