Projekt "Ampelschaltung"

Du bist Einsteiger/in und möchtest mit einem ersten Projekt in die Welt von Arduino eintauchen? Dann bist du mit der hier vorgestellten „Ampelschaltung“ zum Nachbauen genau richtig. Ziel ist es, durch das Drücken eines Tasters eine Ampel zu simulieren, die nach dem Drücken von „rot“ auf „gelb“ und anschließend auf „grün“ wechselt. Nach einer Grünphase soll die Ampel wieder auf gelb und dann auf rot schalten und das System soll auf ein erneutes Drücken des Tasters warten.

Ergänzend zum schriftlichen Tutorial auf dieser Seite findest du ganz unten auch noch das passende Youtube-Video dazu.

Was benötigst du für das Projekt?

  1. 1 x Arduino Uno mit Steckbrett + Laptop und USB Typ B Kabel für die Programmierung
  2. Widerstände, 3 x R = 220 Ω, 1 x R = 1 kΩ
  3. Drei LEDs, 1 x rot, 1 x gelb, 1 x rot
  4. Jumper Kabel
  5. 1 x Taster

Alle Bauelemente und noch viele mehr sind beispielsweise in einem Arduino Starter Kit enthalten. Das originale Starter Kit von Arduino ist hier zu finden:https://amzn.to/2RJqRRh. Eine günstigere Alternative von Elegoo gibt es hier: https://amzn.to/2FEF6lG.

Die Schaltung

Die Schaltung zum Ampelprojekt beginnt mit dem 5 V Power Out-Pin des Arduinos. Durch ein Taster / Schalter (S1) wird die restliche Schaltung von der 5 V Spannung getrennt.

Wird der Taster nicht gedrückt, ist I/O Pin 3 über den Widerstand R4 mit dem Massepotential GND (Ground) des Arduinos verbunden. I/O Pin 3 wird als „Input“ programmiert. Es wird bei nicht gedrücktem Taster der Signalpegel „LOW“ am I/O Pin 3 eingelesen. Der Widerstand R4 fungiert hier als sogenannter „Pull Down Widerstand“, da er den I/O Pin auf das Massepotential GND „herunterzieht“.

Sobald der Taster gedrückt wird, liegen am digitalen I/O Pin 3 die 5 V des Power Pins an, da die Spannung für Pin 3 vor dem Widerstand R4 abgegriffen wird. Es wird dann „HIGH“ eingelesen, da die Spannung am Widerstand R4 abfällt. Nun fragst du dich vielleicht: Warum kann ich den 5 V Ausgang des Arduino direkt mit einem Input Pin verbinden, ist das nicht ein Kurzschluss? Der Grund, warum das so umgesetzt werden kann ist, dass die Eingänge vom Arduino (und Mikrocontrollern allgemein) sehr hochohmig sind. Das ist quasi so, als ob sich direkt hinter dem Pin im Inneren ein Längswiderstand mit einem sehr hohen Widerstandswert befindet.

Die Widerstände R1, R2 und R3 sind die Vorwiderstände für die LEDs, deren Anoden mit den I/O Pins 10, 11 und 12 (als Outputs programmiert) verbunden sind und deren Kathoden mit GND des Arduinos verbunden sind.

Der Sketch

Gleich vorneweg: Den vollständigen Sketch (also das Programm) zu diesem kleinen Projekt findet ihr zum Download unten. Ich werde an dieser Stelle nur das Grundprinzip des Sketches und die logischen Hauptschritte erläutern:

  1. Zunächst muss in der Funktion void setup ( ) der I/O Pin 3 als Input und I/O Pins 10, 11 und 12 als Output festgelegt werden (einmalige Festlegung). Pin 12 entspricht, entsprechend dem Schaltbild oben, der roten LED, Pin 11 der gelben LED und Pin 10 der grünen LED.
  2. In der Funktion void loop ( ) (das ist die Endlosschleife) wird über die Variable „schalter“ mit dem Befehl digitalRead(3) der Pin 3 eingelesen.
  3. Durch die Bedingung if(schalter==LOW) wird abgefragt, ob der Schalter gedrückt ist. Wenn die Bedingung erfüllt ist, soll die LED rot an sein, und die LED gelb und grün sollen aus sein.

4. Wenn die Bedingung nicht erfüllt ist, also der schalter gedrückt ist, dann soll die Ampel von rot, auf gelb und dann auf grün geschaltet werden. Dementsprechend müssen nacheinander die Pins 11 (gelb) und 10 (grün) angeschaltet werden. Wie bei einer echten Ampel darf dabei immer nur eine LED an sein, also immer nur ein Pin auf „HIGH“ gesetzt sein.
5. Nach einer längeren Grünphase, hier im Beispiel 10 Sekunden, also 10 000 Millisekunden (Arduino rechnet immer in ms), soll die Ampel wieder auf gelb und dann auf rot schalten.

Eine ausführliche Beschreibung zum Sketch bekommt ihr im Video zum Projekt ganz unten. Den Sketch könnt ihr hier herunterladen:

Du hast Lust auf weitere Arduino Projekte? Dann schau dir doch den Beitrag zur Temperaturmessung an! Dort lernst du unter anderem wie man einen Temperatursensor ausliest und wie man ein LC-Display anschließt.

Mit den mit ➣ markierten Links kannst du mich unterstützen 🙂 Es handelt sich hierbei um Affiliate-Links. Das heißt ich bekomme eine kleine Aufwandsentschädigung für die Vermittlung. Für dich entstehen natürlich keine zusätzlichen Kosten!