Go Down

Topic: Fussgängerampel (Read 3007 times) previous topic - next topic

omthomas

Hallo Mafu,

für eine "einfache" Fussgängerampel ist Deine Idee sehr gut und funktioniert auch.

Ich bin bei meinem Problem aber von eine Kreuzung ausgegangen, an der an zwei Straßen Verkehrsampel stehen. In loop() wird der Ampelablauf gesteuert.
Und jetzt kommt so ein Fussgänger und will diesen Vorgang unterbrechen: ALLE KFZ-Ampel werden auf rot und die Fußgänger auf grün geschaltet (Rundumgrün - gibt es in der Realität auch, dient der Sicherheit von Fussgängern).
Es wird also in eine laufende Steuerung eingegriffen - und da bedarf es leider sehr wohl eines Interrupts bzw einer Zeitmessung.

Bei Deinem Beispiel, wo die KFZ-Ampel immer gün hat, kann die Überprüfung des Tasters natürlich sofort erfolgen; es passiert ja weiter nichts in Deinem loop().
Bei mir aber kann ein loop() auch z.B. 5 Minuten dauern - alle Kreuzungen hatten dann einmal rot, gelb, grün - und dann erst wird der Taster wieder abgefragt.

Das ist der große Unterschied.

Vielen Dank für Dein Beispiel
Thomas

MaFu

Ist dann fast genauso durchführbar und ebenso einfach. Der Unterschied ist dann nur, dass bereits in der loop() Schleife zwischen acht Basiszuständen durchgewechselt wird.
ROT_GRUEN, ROT_GELB, ROT_ROT, ROTGELB_ROT, GRUEN_ROT, GELB_ROT, ROT_ROT, ROT_ROTGELB
Das geht genauso mit Zustandszähler hochzählen nach Zeitablauf.
Dabei wird jedesmal die Taste abgefragt. Sobald sie gedrückt wurde, dies in einer Variable (Tastenflag) speichern. Sobald dann einer der ROT_ROT Zustände erreicht und gleichzeitig das Tastenflag gesetzt ist einfach die Fußgängerschleife durchführen. Nach deren Ende das Tastenflag wieder löschen und der normale Ampelfluss geht weiter.

So eine Kreuzung mit Rundumgrün für Fußgänger hab ich ehrlich gesagt noch nirgends gesehen.
_______
Manfred

omthomas

Du hast recht; das funktioniert.
Es wird deutlich, das man um eine Zeitmessung nicht rumkommt.

Ich werde das mal aufbauen.

Gruß
Thomas

omthomas

Alle KFZ-Ampeln auf rot ist in Deutschland wenig üblich,
es gibt aber solche Schaltungen:

http://de.wikipedia.org/wiki/Alles-Rot


T.

MaFu

Danke für die Info.
So hab ich auch wieder was gelernt.
_______
Manfred

Go Up