Erstellen eines Python-Skripts, das Daten von einem Arduino-Abstandssensor empfängt. Ich erhalte einen Wert in jeder Nanosekunde. Immer wenn dieser Wert höher als 50 ist, möchte ich den Benutzer warnen. (Wird dies mit einem Benachrichtigungsprogramm tun, aber jetzt drucke ich nur Warnung). Ich habe folgendes:if-Anweisung nur einmal in einem bestimmten Zeitraum in Python ausführen?
while 1: # Keep receiving data
data = ser.readline() # Getting data from arduino
value = [int(s) for s in data.split() if s.isdigit()] # Converting the Arduino ouput to only get the integer value
if value: # Avoid empty values
distance = value[0] # List to int
if distance > 50: # If bigger than 50 cm, warn user.
warn_user()
Ich möchte nur die warn_user() Funktion einmal in 30 Sekunden ausführen, danach wird die if-Anweisung sollte nicht mehr auslösen, nur wenn die Werte fallen unter 50 und dann> 50 nochmal. Ich habe versucht, mit True/False-Anweisungen zu arbeiten, Timer schläft, aber das hat nicht funktioniert. Irgendwelche Tipps? Vielen Dank.
Dies funktioniert perfekt. Vielen Dank. – Jesse