Loading...

The Sentinel 4

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,

ansonsten soll das linke Auge blau und das rechte rot eingeschaltet sein.

Die Augen sollen also abwechselnd rot und blau leuchten!

Probiere das Programm an deinem BOB3!
Lass jetzt auch noch die Bauchleds zusätzlich blinken...
1: Warum verwendet man nicht einfach delay(20) fürs Leuchten und delay(1980) für die Pause zwischen dem Aufblitzen der Augen, sondern die Konstruktion mit der Variablen loop_counter?
 Du hast nichts ausgefüllt!
 Prima, soweit richtig…
 Prima, alles richtig!
 Leider falsch…
 Eine Antwort ist richtig
 Schon ein paar richtig…