In diesem Teil werden wir das Programm vervollständigen:
BOB3 soll sich den Alarm jetzt auch merken, also auch dann noch abwechselnd rot und blau mit den Augen blinken, wenn der Gegenstand wieder hingestellt wurde.
Damit du weißt, dass BOB3 eingeschaltet ist und aufpasst, soll er immer wieder kurz in dunkelrot mit den Augen blinzeln, solange noch kein Alarm ausgelöst wurde...
Dazu führen wir zwei weitere globale Variablen ein:
alert
: In dieser Variablen merken wir uns, ob ein Alarm ausgelöst wurde. Sie hat den Wert 0 solange kein Alarm vorliegt. Sobald der Alarm ausgelöst wird, setzen wir sie auf den Wert 1.loop_counter
: In dieser Variablen zählen wir die Anzahl der Durchläufe der loop Funktion. Wenn der Wert 100 erreicht wurde, setzen wir die Variable wieder auf 0 zurück. Das verwenden wir für das Timing zur Anzeige mit den LEDs.
Am Ende der setup()
-Funktion hatten wir im letzten Kapitel schon die globale Variable ir_reference
initialisiert.
An dieser Stelle setzen wir jetzt auch den Wert der anderen beiden globale Variablen auf den Wert 0.
Am Anfang der loop()
-Funktion erhöhen wir unseren Zähler mit jedem Durchlauf um den Wert 1: loop_counter++;
Anschliessend prüfen wir ob wir den Wert 100 erreicht haben: falls ja, setzen wir die Variable auf 0 zurück und zählen wieder von vorn.
Die Variable loop_counter
hat damit immer einen Wert im Zahlenbereich von 0 bis 99!
Jetzt kommt eine Fallunterscheidung, ob bereits ein Alarm vorliegt:
Falls noch kein Alarm vorliegt,
berechnen wir die Differenz des Sensorwertes mit dem Referenzwert. Falls die Differenz größer als 2 ist (oder kleiner als -2) setzen wir die Variable alarm
auf den Wert 1.
Anschließend kümmern wir uns um die Augen, sie werden nur bei jedem 100. Loop-Durchlauf eingeschaltet (wenn die Variable loop_counter
den Wert 0 hat), ansonsten werden (bzw. bleiben) sie ausgeschaltet!
Jetzt kommt der zweite Fall - den sollst du selber schreiben! ;-)
Falls ein Alarm vorliegt (else
):
Wenn loop_counter
kleiner als 50 ist, soll das linke Auge rot und das rechte blau eingeschaltet werden,
Die Augen sollen also abwechselnd rot und blau leuchten!