Die gesteuerte Ampel erhält von der Steuerampel per Bluetooth Informationen über den Zustand. Wenn sie keine Zustandsinformationen mehr erhält, muss sie in den Blinke-Modus schalten.
Problem: Die Steuerampel vertrödelt die meiste Zeit mit Warten. Wenn sie während dieser Zeit ausfällt, bekommt die gesteuerte Ampel nicht mit. Deshalb muss das Programm so geändert werden, dass der Warte-Befehl entfällt. Das lässt sich ganz gut über den Zeitgeber realisieren.
Es werden sechs Variable benötigt.
Für die Entscheidungen nutzt man diesen Block:
Die zusätzlichen sonst wenn Entscheidungen erhält man über das Plus im Kopf des Blockes.
Zu Beginn der unentlichen Schleife ist die aktuelle_zeit kleiner als die rot_zeit. Damit liefern alle Entscheidungen ein Nein und die Ampel schaltet auf Rot. Es wird eine 1 gesendet.
Irgendwann ist die aktuelle_zeit größer als die rot_zeit, aber noch kleiner als wechsel_zeit+rot_zeit. Dann liefert die letze Entscheidung ein Ja und die Ampel schaltet auf Rot-Gelb. usw.
Da kein Warten verwendet wird, sendet die Ampel praktisch ununterbrochen die Steuerinformationen für die zweite Ampel.
Die Empfängerampel arbeitet ähnlich wie der Empfänger aus der Ampel(1). Der Entscheidungsblock bekommt aber noch einen default-Teil, der eine Funktion gelb_blinken aufruft. Diese Funktion lässt die gelbe Ampel blinken und wird ebenfalls über den Zeitgeber realisiert (Blinken ohne Warten).
Wenn jetzt alles richtig funktioniert, läuft die Empfängerampel synchron zur Senderampel. Fällt die Senderampel aus, schaltet die Empängerampel sofort in den Blinkmodus.