Schematische Darstellung der Programmierung in „C“ Ampelschaltung Mikrocontroller programmieren Alle Ampelkreuzungen werden heutzutage mit Mikrocontrollern gesteuert. Sei es nur eine Kreuzung von zwei Straßen oder aber von fünfzehn, das Ziel ist immer das selbe: Jeder Verkehrsteilnehmer soll so kurz wie möglich warten. In unserem Modul realisierten wir eine Schaltung für eine Autostraße, die von einem Fußgängerweg überquert wird (siehe Abbildung rechts). http://projekte.myavr.de/index.php?sp=pages/mini_ projekt_fussgaengerampel_bildergalerie&MENUS=Mini-Projekte Die Fußgängerampel besitzt einen Taster. Wird dieser betätigt, verlängert sich die Dauer des Grüns für die Fußgänger um 5 s, so dass größere Menschenmengen oder Behinderte mehr Zeit für die Überquerung der Straße haben. #define D_DELAY 20000 unsigned long d_delay; d_delay=D_DELAY; PORTD = 0b10111110; while(d_delay>0) d_delay--; Schematische Darstellung der Programmierung in „C“ 2s 10s 5s/10s Deklaration und Initialisierung der Zeitvariablen (2 Sekunden) Ampel entsprechend leuchten lassen, bis Zeit runter gezählt worden ist #define A_DELAY 100000 unsigned long a_delay; a_delay=A_DELAY; PORTD = 0b11011011; while(a_delay>0) a_delay++ (10 Sekunden) Ampel entsprechend leuchten lassen, bis die Zeit runter gezählt worden ist #define B_DELAY 20000 unsigned long b_delay; b_delay=B_DELAY; PORTD = 0b11011101; while(b_delay>0) b_delay--; #define C_DELAY 50000 unsigned long c_delay; c_delay=C_DELAY; ISR (INT1_vect) { c_delay=c_delay*2; } PORTD = 0b11011110; while(c_delay>0) c_delay--; Deklaration und Initialisierung der Zeitvariablen (5 Sekunden) Wurde der Taster an der Fußgängerampel irgendwann betätigt, verdoppelt sich die Zeitvariable (10 Sekunden) Deklaration und Initialisierung der Zeitvariablen (2 Sekunden) Ampel entsprechend leuchten lassen, bis die Zeit runter gezählt worden ist Jakob Stegmann