ich würde gerne den Status einer LED ermitteln, welche sich an einem externen Gerät befindet. Wie ich diese LED auslese sei zunächst einmal dahingestellt. Ich gehe aber mal davon aus, dass ich mir die Spannung dieser LED irgendwie auf einen Eingangspin legen kann.
Drei mögliche "Zustände" dieser LED sollen differenziert werden können.
a) aus
b) an
c) blinkend
Die auszulesende LED geht, wenn sie blinkt, in einem Intervall von ca. einer halben Sekunde an und aus.
Ich möchte den Sketch von Anfang nicht zu kompliziert gestalten. Zudem soll es eine kleine Fehlertoleranz geben, sollte mal was nicht sofort richtig erkannt werden.
Die Zustandsdefinition muss nicht auf die Sekunde genau funktionieren.
Ich sag mal, wenn die LED an war und nun angefangen hat zu blinken, sollte spätestens das dritte Aufleuchten zu einer Statusänderung führen.
Mein Problem ist nun, dass ich nicht weiss, wo ich hierbei ansetzen soll.
Du gibst dir irgendwie immer die Lösung selber mit deiner Signatur
Desweiteren ist die Beschreibung der Auswertung sehr ungenau. Darf an dem externen Gerät etwas verändert werden (Optokoppler), darf etwas von aussen vorgeklebt werden. Das Abgreifen der Spannung ist in meinen Augen der falsche Weg.
Eine Alternative wäre es, eine Photodiode/Phototransistor vor die Led zu kleben. Diese sollte aber, um eine Einstreuung von ausserhalb zu vermeiden, entsprechend geschütz werden.
Die Auswertung ist wie beschrieben trivial.
PseudoCode
Zeit messen, wie lange Led an ist. Wenn Led > 450ms und < 550ms an ist, eine Variable aufaddieren. Erreicht der aufaddierte Werte einen bestimmten Zustand, so handelt es sich um ein Blinken. Variable zurücksetzen, wenn Led länger 550ms an, bzw länger 550ms aus ist.
sschultewolter:
Zeit messen, wie lange Led an ist. Wenn Led > 450ms und < 550ms an ist, eine Variable aufaddieren. Erreicht der aufaddierte Werte einen bestimmten Zustand, so handelt es sich um ein Blinken. Variable zurücksetzen, wenn Led länger 550ms an, bzw länger 550ms aus ist.