Triggern eines inputs

Moin Moin,

Bin noch nicht lange mit der Programmierung von Arduinos dran und steige immer mehr in die Materie ein. Nun bin ich aber beim Lernen gleichzeitig an 2 Projekten beschäftigt, die im Laufe der Zeit lauffähig und produktiv werden sollen.

Bei einer Sache komme ich nicht ganz weiter.

Am uno sollen mehrere Signale (high oder low) verarbeitet werden, zum Beispiel soll eine SMS gesendet werden. Das klappt auch. Allerdings wird die SMS im loop so lange gesendet, bis das Signal wieder low ist ist natürlich Unsinn, die SMS braucht nur einmal gesendet werden, allerdings wenn das Signal wieder low ist und dann nochmal high, dann darf nochmal gesendet werden.

Sprich...

Input low....

Input high
SMS senden
Input immer noch high für bspw 3 min

Input low bspw für 5 Stunden
Input high
SMS senden
.........

Schon versucht da was mit zeit Messung in milis und mit if abfragen ob Zeit auf high == 0 und mehr als 1 sek etc.

Habe jetzt woanders was von flag gesehen. Kann mir da oder woanders jemand einen Anhaltspunkt geben?

Falls ich im forum nach falschen Wörtern gesucht habe, bitte ich dies zu entschuldigen.

Sketch kann ich Grad nicht zeigen, weil mein Windows 10 meint, ein update zu machen.

Mfg Sebastian

EDIT

Hab glaub ich was gefunden…
Was mit
while(sms_count<3) und nen Zähler rücksteller bei ner bestimmten Aktion.

Mal ausprobieren.

Nimm eine Statusvariable die Du 1 setzt wenn ein sms gesendet wurde und der Eingang HIGH ist. Setze sie 0 wen der Eingang LOW ist. Sende die sms nur wenn der Eingang HIGH ist und die Statusvariable 0.
Grüße Uwe

Moin Moin.

wunderbar, habe es nun mit einer case-switch Variablen hinbekommen und es funktioniert so wie es sollte!

Vielen Dank für den Gedankenanstoß!!!

Schöne Feiertage wünsche ich!