Leuchtfeuer

Der Blinker, bei dem die Lampe gleichlang ein- und ausgeschaltet wird, ist ein Spezialfall eines Leuchtfeuers - ein sogenanntes Gleichttaktfeuer. Damit Seefahrer verschiedene Leuchtfeuer einfacher voneinander unterscheiden können, verwendet man bei diesen außer verschiedenen Farben auch kompliziertere Rhythmen.

Beim sogenannten unterbrochenen Feuer sind die Dunkelphasen kürzer als die Phasen, in denen die Lampe leuchtet. Das kann man durch Abwandeln des Programms für den Blinker einfach erreichen. Entweder kann man in der Prozedur off die Wartezeit bis zum Aufruf der Prozedur on verkürzen (z.B. von 1000 Millisekunden auf 500 Millisekunden) oder man verlängert in der Prozedur on die Wartezeit bis zum Aufruf der Prozedur off (etwa von 1000 Millisekunden auf 1500 Millisekunden).

Beim Blinkfeuer verhält es sich umgekehrt, die Dunkelphasen dauern länger. Auch das kann durch Ändern des Blinker-Programms ganz einfach realisiert werden.

Das Programm unten steuert ein unterbrochenes Feuer der Gruppe 3. Das bedeutet, die Lampe ist lange eingeschaltet, dann drei mal kurz aus- und länger eingeschaltet.

(defoutput lamp digital gpio-18)

(setq counter 0)

(defproc on-long ()
  (progn
    (setq lamp t)
    (setq counter 0)
    (after 3000 off)))

(defproc on-short ()
  (progn
    (setq lamp t)
    (setq counter 0)
    (after 1000 off)))

(defproc off ()
  (progn
    (setq lamp nil)
    (setq counter (+ counter 1))
    (if
      (< counter 3)
      (after 500 on-short)
      (after 500 on-long))))
      
Um die Gruppierung zu erreichen, wird ein Zähler verwendet. Jedes Mal, wenn die Lampe in der Prozedur off ausgeschaltet wird, wird der Zähler um Eins erhöht. Wenn der Zähler einen Wert kleiner als Drei hat, findet nach einer halben Sekunde ein Aufruf von on-short statt. Wenn der Zähler größer oder gleich drei ist, wird nach einer halben Sekunde ein Aufruf der Prozedur on-long stattfinden.

Für das Leuchtfeuer müssen die gleichen Kabelverbindungen hergestellt werden, wie beim Blinker:

Raspberry Pi Zero GPIO 18 - Dual Color LED R
Raspberry Pi Zero GND von Pin 14 - Dual Color LED GND

Zum Ausführen des Programms siehe Circuit Lisp.

Weiter mit
Straßenlaterne

Links
http://www.segeln-wissen.de/segelwissen/seezeichen/befeuerung-kennung.html
https://de.wikipedia.org/wiki/Befeuerung_(Seefahrt)
https://de.wikipedia.org/wiki/Kennung
https://en.wikipedia.org/wiki/Light_characteristic