loop nur einmal durchlaufen

Hühnerklappe
Bei der Hühnerklappe wird das Schließen/Öffnen über einen Fotowiderstand gesteuert und mit je einem Mikroschalter beendet. Ist der Schalter „ZU“ geschlossen, wird der Motor nicht mehr in Richtung Schließen gestartet. Für den Fall, dass der Schalter nicht funktioniert, soll die Motorlaufzeit begrenzt sein. Das lässt sich noch hinkriegen, aber beim Durchlauf der Schleife wird immer „Klappe offen“ erkannt, weil der Schalter noch nicht zu ist und daher wird der Motor erneut gestartet.
Wie lässt sich erreichen, das das Schließen nur einmal abläuft und nur nach dem Öffnen wieder ablaufen kann?

Wolfgang

In dem du einen einfachen endlichen Automaten implementierst.
Eine Zustandsmaschine, Finite State Machine.

Das hört sich schlimmer an, als es ist, denn mit "einfach" ist wirklich einfach(leicht, klein, übersichtlich) gemeint.
Es gibt dazu schon viele Threads hier im Forum.
(gefühlte 10 Mal pro Woche)

Merk Dir den letzten konsistenten Zustand in einer Variablen, ob die Klappe offen oder geschlossen ist/war.

Je nachdem lässt Du den Motor in die entsprechende Richtung laufen, bis der Endschalter erreicht ist und merkst Dir den neuen Zustand in der Variablen.