Eingaben innerhalb eines Zeitfensters erlauben + Listencheck

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Tuedelue
User
Beiträge: 8
Registriert: Samstag 29. März 2014, 13:02

Mit folgendem Code schmeißt der Sensor fleißig Daten (angeschlossen per 8-Bit Wandler):

Code: Alles auswählen

# -*- coding: utf-8 -*-
from smbus import SMBus
import time

bus = SMBus(1)
A0=bus.read_byte(0x48)
Max0 = A0 + 50
Min0 = A0 - 50


while (0 == 0):
# Ret tuple: (Svr, i, impulsbreite)
    A0=bus.read_byte(0x48)
    Max0 = A0 + 50
    Min0 = A0 - 50

    i = 1
    while i <=2000:
        Svr = bus.read_byte(0x48)
        if Svr > Max0 or Svr < Min0:
            Svr = bus.read_byte(0x48)
            print(Svr-A0)
Nur die Kombination mit Sirius' Geschreibsel lässt noch zu wünschen übrig. :?:
BlackJack

@Tuedelue: Das ist ja auch keine Funktion die *einen* Wert liefert, je nach dem wo sich der Sensor befindet. Die ausgegebenen Werte sind auch nicht alle die Werte die Du haben möchtest. So wie die Logik momentan ist, ist die äussere ``while``-Schleife sinnfrei weil die innere ebenfalls eine Endlosschleife ist und nie verlassen wird. Und die gibt nicht nur den ersten Wert aus, der ausserhalb der Nulllinie liegt, sondern alles was ausserhalb liegt. Also viel zu viele Werte.
Tuedelue
User
Beiträge: 8
Registriert: Samstag 29. März 2014, 13:02

Meine Basic-Kenntnisse sind recht überschaubar. Wie wäre denn das hier als Alternative?

Code: Alles auswählen

from smbus import SMBus
import time

Startwert = bus.read_byte(0x48)
Obergrenze = Startwert + 30
Untergrenze = Startwert - 30

# Start des Auslesens:
Startwert = bus.read_byte(0x48)
while 0 == 0:
    Zwischenwert = bus.read_byte(0x48)
    if Zwischenwert > Obergrenze or Zwischenwert < Untergrenze:
        print("Sensor ist außerhalb der Schleife")
        break
Antworten