Suchcode

Lektion 98-10: Arduino-Ampel

Lektion 98-10: Arduino-Ampel

Ampeln gehören zu jenen Alltagssystemen, über die wir selten nachdenken — bis wir eine bauen. In diesem Projekt verwendest du einen Arduino, um eine echte Ampelsequenz zu simulieren: Grün an, dann Gelb, dann Rot, jeweils mit einer eigenen konfigurierbaren Dauer, die sich endlos wiederholt. Es ist ein perfektes Anfängerprojekt, weil es sequenzielle Zeitlogik, Mehrfachausgangssteuerung und die Beziehung zwischen dem, was du im Code schreibst, und dem, was du in der physischen Welt siehst, vermittelt.

Ampel im echten Leben mit drei Farben

Über die Klassenzimmer-Demo hinaus begegnet dir die hier gelernte Zeitlogik überall:

  • Ein realistisches Ampelsystem für eine Modellbahn oder ein Diorama bauen
  • Ein zeitgesteuertes Anzeigesystem für eine Werkstatt oder Garage erstellen (z. B. „Betreten erlaubt" / „Warten"-Signale)
  • Die Grundlage für Fußgängerüberwegsignale mit tastergesteuerten Phasen lernen
  • Eine zeitgesteuerte Relaissequenz für industrielle oder Heimautomatisierungsaufgaben prototypen
  • Kindern Sequenzierung, Timing und Elektronik mit einem vertrauten, wiedererkennbaren Objekt beibringen

Das Beste daran: Das Ganze läuft eigenständig, sobald es hochgeladen ist. Du programmierst den Arduino einmal von deinem Computer aus, dann versorgst du ihn über eine Batterie oder ein Netzteil mit Strom und er funktioniert für immer — kein PC erforderlich (im Video bei 12:27).

rote, grüne und gelbe LEDs auf dem Steckbrett für das Ampelprojekt
rote, grüne und gelbe LEDs auf dem Steckbrett für das Ampelprojekt

Wie die Ampel funktioniert

Eine Ampel ist eigentlich nur eine zeitgesteuerte Sequenz von drei Ausgängen. Der Arduino schaltet jeweils eine LED ein, wartet eine festgelegte Anzahl von Sekunden, schaltet sie aus und geht zur nächsten über. Der Zyklus wiederholt sich dann. Im Beispiel-Timing des Videos bleibt Grün 3 Sekunden an, Gelb 1 Sekunde und Rot 3 Sekunden — aber all das ist im Code anpassbar (im Video bei 49:44).

Ampel-Timing: rotes Licht
Ampel-Timing: rotes Licht
Ampel-Timing: gelbes Licht
Ampel-Timing: gelbes Licht
Ampel-Timing: grünes Licht
Ampel-Timing: grünes Licht

Die Sequenz wirkt deshalb realistisch, weil die Dauern den realen Verkehrsfluss widerspiegeln: Grün und Rot sind länger, weil Fahrzeuge Zeit brauchen, um durch die Kreuzung zu fahren, während Gelb kurz ist, weil es nur eine Übergangswarnung darstellt. Du kannst diese Werte an jedes beliebige Szenario anpassen.

Hardware und Komponenten

Die Teileliste für dieses Projekt ist minimal:

  • 1 × Arduino-Board (Uno, Nano oder Mega — alles mit mindestens 3 digitalen Pins)
  • 3 × LEDs (rot, gelb/orange und grün — verschiedene Farben machen den Effekt offensichtlich)
  • 3 × Widerstände (300 Ω bis 1 kΩ funktioniert gut; das Video verwendet 1 kΩ)
  • 1 × Steckbrett
  • Jumper-Kabel
  • Optional: eine Lithium-Ionen-Batterie oder ein 5-V-Netzteil für den eigenständigen Betrieb

Das Video empfiehlt, drei deutlich unterschiedlich gefärbte LEDs zu verwenden, damit der Ampeleffekt sofort sichtbar ist — sonst müsstest du sie beschriften (im Video bei 02:04).

Strombegrenzung bei LEDs verstehen

Jede LED benötigt einen strombegrenzenden Widerstand in Reihe. Und zwar deshalb: Eine LED hat eine nahezu feste Durchlassspannung (typischerweise etwa 2 V bei Standard-5-mm-LEDs), und wenn du sie direkt an 5 V anschließt, wird der Strom stark ansteigen und sie zerstören. Der Widerstand nimmt die überschüssige Spannung auf.

Nach dem Ohmschen Gesetz gilt: Wenn die LED 2 V abfallen lässt und die Versorgung 5 V beträgt, müssen 3 V am Widerstand abfallen. Bei einem Zielstrom von etwa 10 mA ergibt sich ein Widerstandswert von ungefähr 300 Ω (im Video bei 04:41). In der Praxis funktioniert alles von 300 Ω bis 1 kΩ — höhere Werte machen die LED einfach dunkler.

Verkabelungsanleitung

Schaltplan der Arduino-Ampel
Schaltplan der Arduino-Ampel
Verkabelung der Arduino-LED-Ampel
Verkabelung der Arduino-LED-Ampel

Jede LED wird identisch verdrahtet: Die Anode (längerer Schenkel) wird mit einem digitalen Arduino-Pin verbunden, und die Kathode (kürzerer Schenkel, flache Seite des LED-Gehäuses) wird über einen Widerstand mit Masse verbunden.

In der Verkabelung des Videos ist die rote LED mit Pin 2 verbunden, die gelb/orange LED mit Pin 3 und die grüne LED mit Pin 4 (im Video bei 50:50). Alle drei Widerstände teilen sich eine gemeinsame Masse-Schiene auf dem Steckbrett. Die Reihenfolge der Farben auf dem Steckbrett spielt keine Rolle — entscheidend ist, dass die Pin-Nummern in deinem Code mit den tatsächlich verwendeten Pins übereinstimmen.

Ein praktischer Tipp aus dem Video: Der Widerstand kann auf beiden Seiten der LED platziert werden. Du kannst ihn zwischen den Arduino-Pin und die Anode der LED setzen oder zwischen die Kathode der LED und Masse — elektrisch ist es dasselbe (im Video bei 51:52).

Code-Erklärung

Das vollständige Programm ist unten im Artikel verfügbar. Hier konzentrieren wir uns auf die Teile, die du anpassen möchtest.

Am Anfang des Sketches werden drei Pin-Definitionen verwendet, um jede LED einem digitalen Pin zuzuordnen. Wenn du deine LEDs an andere Pins angeschlossen hast, ändere diese Werte:

const int greenLED = 4;
const int yellowLED = 3;
const int redLED = 2;

Als Nächstes kommen die Timing-Konstanten. Diese steuern, wie lange jedes Licht eingeschaltet bleibt, in Millisekunden. Das Video verwendet standardmäßig 5000 ms für Grün, 1000 ms für Gelb und 5000 ms für Rot — aber während der Demo wurden diese auf 3 s / 1 s / 3 s und später auf 10 s / 3 s / 10 s geändert (im Video bei 56:27):

const int greenOnTime = 5000;
const int yellowOnTime = 1000;
const int redOnTime = 5000;

Um den Rhythmus deiner Ampel zu ändern, bearbeite einfach diese drei Werte. Möchtest du eine langsame, realistische Kreuzung? Versuche 10000, 3000, 10000. Möchtest du eine schnelle Demo? Versuche 1000, 300, 1000.

Innerhalb von loop() ist die Reihenfolge unkompliziert: Grün einschalten, warten, Grün ausschalten; Gelb einschalten, warten, Gelb ausschalten; Rot einschalten, warten, Rot ausschalten; dann zurück zu Grün. Der serielle Monitor gibt jede Zustandsänderung aus, damit du überprüfen kannst, ob das Timing deinen Erwartungen entspricht.

Live-Demonstration

Sobald der Code hochgeladen ist, führt der Arduino den Zyklus selbstständig aus. Im Video leuchtet zuerst die grüne LED, dann nach ihrer Dauer kommt kurz die gelbe, dann die rote, und der Zyklus beginnt sofort von vorn (im Video bei 55:20).

Der serielle Monitor spiegelt dies in Textform wider — „green LED on", „green off", „yellow on" und so weiter — was eine großartige Möglichkeit ist, um zu bestätigen, dass deine Timing-Werte wie beabsichtigt funktionieren. Wenn du bereit bist, es ohne Kabel zu betreiben, trenne USB und schließe einen Lithium-Ionen-Akku oder ein 5-V-Netzteil an; der Arduino läuft dann ohne Computer weiter (im Video bei 56:11).

Verwandte Projekte aus diesem Video

Kapitel

  • [00:00] Überblick über die 10 Arduino-LED-Projekte
  • [01:22] Einführung in den Arduino-Schritt-für-Schritt-Kurs
  • [02:29] Was ist eine LED: Symbol, Anode und Kathode
  • [03:49] Berechnung des LED-Strombegrenzungswiderstands
  • [49:25] Einführung in das Ampelprojekt
  • [49:44] Erklärung des Ampeltimings
  • [50:34] Schaltplan für die Ampel
  • [52:13] Code-Erklärung für die Ampel
  • [54:32] Live-Demonstration mit seriellem Monitor
  • [55:30] Ändern der Timing-Werte
  • [56:11] Betrieb der Ampel mit Batteriestrom

Bilder

traffic light timing: green light
traffic light timing: green light
traffic light timing: yellow light
traffic light timing: yellow light
traffic light timing: red light
traffic light timing: red light
Schematic of Arduino traffic light
Schematic of Arduino traffic light
traffic_lights
traffic_lights
Arduino LED traffic lights wiring
Arduino LED traffic lights wiring
red, green and yellow leds on bread board for traffic light project
red, green and yellow leds on bread board for traffic light project
942-Lessson 98-LED-10: Arduino code traffic light
Sprache: C++
This code has not been parsed yet. Please return to the admin panel to parse it.

Dateien📁

Arduino-Bibliotheken (zip)

|||Benutzerhandbuch