Pages: 1 [2]   Go Down
Author Topic: Fussgängerampel  (Read 2527 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 26
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

Munich/Germany
Offline Offline
God Member
*****
Karma: 11
Posts: 643
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

_______
Manfred

Offline Offline
Newbie
*
Karma: 0
Posts: 26
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Ich werde das mal aufbauen.

Gruß
Thomas
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 26
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

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


T.
Logged

Munich/Germany
Offline Offline
God Member
*****
Karma: 11
Posts: 643
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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

_______
Manfred

Pages: 1 [2]   Go Up
Jump to: