Hilfe Ampelschaltung mit Bascom ATtiny26

Persönliche Seite #674423
Lesenswert?

Du hast glaube ich einen Denkfehler im Programm. Es ist 
verkehrstechnisch unklug, zuerst einen kompletten Zyklus von Ampel1 zu 
programmieren, bevor die Ampel2 das erste Mal angesprochen wird. In 
dieser Zeit hängen schon die ersten Autos aufeinander ;-)

Es hilft zuerst eine Tabelle zu machen, in der der Zeiten und Zustände 
der Ampellichter notiert sind

Zeit          A  B  C  D  E  F  G  H  A  wiederholen
Ampel1-rot    0  1  1  1  1  1  1  1
Ampel1-gelb   0  1  0  0  0  0  0  1
Ampel1-grün   1  0  0  0  0  0  0  0
Ampel2-rot    1  1  1  0  0  1  1  1
Ampel2-gelb   0  0  0  1  0  1  0  0
Ampel2-grün   0  0  0  0  1  0  0  0

Die einzelnen Phasen A,B,C... kann man dann den gewünschten 
Warte-/Fahrzeiten anpassen. Ich würde aus obigem Grund auch in jedem 
Zustand immer alle Ampellampen setzen/löschen.

Bei einem fortgeschrittenen Programm bietet sich sogar eine Schleife an, 
bei der die Steuerzeiten und die Zustände eines kompletten Ports aus 
zwei  Data Statements gelesen werden.

Bei einem noch fortgeschritteneren Programm würde man den Zeitgeber 
nicht durch wait Statements zwischen den Zuständen A,B,... 
programmieren, sondern einen Timerinterrupt als Zeitscheibenantrieb 
benutzen. Dann kann das Programm in den "Wartezeiten" noch andere Sachen 
machen z.B. Anzahl der Autos zählen oder MP3s für die Fussgänger 
abspielen ;-)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren