Ampelschaltung mit Arduino

Ampelschaltung Breadboard

Jeder kennt sie, jeder nutzt sie, aber wie funktioniert so eine Ampelanlage eigentlich? Das ist eine der ersten Fragen, denen MakerKids schon ganz am Anfang ihrer Arbeit mit Microcontrollern wie dem Arduino nachgehen.
Wir stellen Euch dieses einfache Projekt, das Ihr natürlich bei unseren Treffen oder auch daheim jederzeit nachbauen könnt, hier einmal ausführlich vor. Damit Ihr auch sehen könnt, was diese Schaltung mit Fußgänger- und Autoampel im Einzelnen macht, haben wir nachfolgend eine Simulation für Euch eingebunden, die sich genau so verhält, als ob Ihr die Schaltung mit ‚echten‘ Bauteilen gebaut hättet. Klickt einfach auf „Simulation starten“, nachdem alles geladen wurde. Das kann aber je nach Bandbreite Eurer Verbindung etwas dauern. (Mobile Browser werden leider nicht unterstützt) Rechts in der Simulation befindet sich ein kleiner Tastschalter, mit dem Ihr den Ablauf starten könnt.

 

Materialliste:

Stückzahl Bauteil Typ Eigenschaften
1 Arduino Uno (Rev3) Typ Arduino UNO (Rev3)
2 LED rot Farbe Rot (633nm), 5 mm
1 LED gelb Farbe Gelb (595nm), 5 mm
2 LED grün Farbe Grün (555nm), 5 mm
1 LED blau Farbe Blau (525nm), 5 mm
6 220Ω Widerstand Toleranz ±5%, 4-Band, Widerstand 220Ω, Beinchenabstand 400 Millimeter
1 Pushbutton  

 

Der Code im Detail:

In den Zeilen 2-4 werden die Integer-Variablen initialisiert, welche die Pin-Belegungen für die LEDs der KFZ-Ampel beinhalten. Eine entsprechend eindeutige Benamung erleichtert die Zuordnung der LED-Funktionen im weiteren Programmverlauf.
Das gleiche Prozedere wiederholt sich in den Zeilen 7 u. 8 für die LEDs der Fußgängerampel, und selbstverständlich müssen auch noch die Pins von Taster und dessen Aktions-LED in Variablen gepackt werden.

Ab Zeile 14 wird dann die Setup-Funktion abgearbeitet. Das geschieht beim Programmstart genau ein Mal. Hier zeigt sich auch, warum es sinnvoll ist, die Pin-Nummern in Variablen zu packen: Zwar könnte man die Pin-Nummern auch direkt bei der Einstellung des Pin-Modus übergeben, aber wer wüsste bei ‚pinMode(12, OUTPUT)‘ und all den Pins wirklich auf Anhieb, welche LED hier gemeint ist.
Interessant ist in der Funktion Zeile 22. Da der Arduino Uno intern über einen PullUp-Widerstand verfügt, muss dieser nicht in der Schaltung eingebaut werden. Stattdessen wird die Software-seitige Nutzung mit dieser Programmzeile angemeldet.

Ab Zeile 26 geht es dann im Loop-Block, der bis zum Abbruch in einer Endlos-Schleife ausgeführt wird, an die eigentliche Realisierung der einzelnen Signalphasen. Der Grundzustand der Anlage gibt freie Fahrt für die Autos und Rotlicht für die Fußgänger.

In Zeile 36 wird dann der Zustand des Tasters der Fußgängerampel abgefragt. Wurde der Taster betätigt, beginnt die blaue Aktions-LED der Fußgängerampel 5 mal zu blinken um anzuzeigen, dass ein Wechsel der Phase eingeleitet wird.

Zeile 45 läutet eine 2-sekündige Gelb-Phase ein. Dann schaltet die Autoampel auf Rot. Der Delay-Befehl in Zeile 50 gewährleistet eine gewisse zeitliche Pufferzone zur Unfallvermeidung. Erst dann wird in Zeile 53 die 10-sekündige Grün-Phase für die Fußgängerampel geaschaltet.

Ab Zeile 56 wird der bevorstehende Phasenwechsel durch Aktivierung der gelben LED angezeigt, die Fußgängerampel auf rot gestellt und eine 2-sekündige Pufferzeit eingebaut.

Dann kehren die LEDs in ihren ursprünglichen Zustand zurück,… bis der Taster erneut gedrückt wird.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert