Einleitung
Schon einmal eine Ampel bauen wollen, aber keine Bauteile zur Hand gehabt? Mit Velxio kannst du eine komplette Arduino-basierte Ampel direkt in deinem Browser simulieren. Dieses Projekt verwendet drei LEDs (rot, gelb, grün), die an einen Arduino Uno angeschlossen sind, um den klassischen Ampelablauf nachzubilden: Rot → Gelb → Grün → Gelb → Rot. Es ist ein perfektes Einsteigerprojekt, um digitale Ausgänge, Timing und sequentielle Logik zu lernen.
Schaltungsaufbau
Schauen wir uns die Schaltung an. Das folgende Diagramm zeigt die vollständige Verkabelung:

Komponenten
- Arduino Uno – das Gehirn der Operation.
- Rote LED – angeschlossen an digitalen Pin 13.
- Gelbe LED – angeschlossen an digitalen Pin 12.
- Grüne LED – angeschlossen an digitalen Pin 11.
- Widerstände – jede LED benötigt einen Vorwiderstand (typischerweise 220Ω) in Reihe mit ihrer Anode. In Velxio haben die integrierten LEDs bereits interne Widerstände, sodass du sie nicht manuell hinzufügen musst.
Verkabelungsdetails
Jede LED hat zwei Beinchen: Anode (längeres Beinchen, markiert als Pin “A”) und Kathode (kürzeres Beinchen, markiert als Pin “C”). Die Verkabelung ist einfach:
- Rote LED: Anode über ein rotes Kabel (
#ff0000) an Arduino-Pin 13. Kathode über ein schwarzes Kabel an Arduino GND. - Gelbe LED: Anode über ein gelbes Kabel (
#ffaa00) an Arduino-Pin 12. Kathode an GND. - Grüne LED: Anode über ein grünes Kabel (
#00ff00) an Arduino-Pin 11. Kathode an GND.
Alle drei LEDs teilen sich denselben GND-Anschluss am Arduino. Dies ist eine gemeinsame Massekonfiguration.
Code-Erklärung
Schauen wir uns nun den Code an, der die Lichter wechseln lässt. Öffne den Code-Editor in Velxio:

// Traffic Light Simulator
// Red -> Yellow -> Green -> Yellow -> Red
const int RED_PIN = 13;
const int YELLOW_PIN = 12;
const int GREEN_PIN = 11;
void setup() {
pinMode(RED_PIN, OUTPUT);
pinMode(YELLOW_PIN, OUTPUT);
pinMode(GREEN_PIN, OUTPUT);
}
void loop() {
// Red light
digitalWrite(RED_PIN, HIGH);
delay(3000);
digitalWrite(RED_PIN, LOW);
// Yellow light
digitalWrite(YELLOW_PIN, HIGH);
delay(1000);
digitalWrite(YELLOW_PIN, LOW);
// Green light
digitalWrite(GREEN_PIN, HIGH);
delay(3000);
digitalWrite(GREEN_PIN, LOW);
// Yellow light again
digitalWrite(YELLOW_PIN, HIGH);
delay(1000);
digitalWrite(YELLOW_PIN, LOW);
}
Wie es funktioniert
- Pin-Definitionen: Wir definieren Konstanten für die drei Pins:
RED_PIN = 13,YELLOW_PIN = 12,GREEN_PIN = 11. Diese entsprechen der Verkabelung. - Setup: In
setup()setzen wir alle drei Pins mitpinMode()alsOUTPUT. Das teilt dem Arduino mit, dass er Spannung über diese Pins ausgeben soll. - Loop: Die Funktion
loop()läuft endlos. Sie folgt diesem Ablauf:- Rote LED einschalten (
HIGH), 3 Sekunden warten, ausschalten (LOW). - Gelbe LED einschalten, 1 Sekunde warten, ausschalten.
- Grüne LED einschalten, 3 Sekunden warten, ausschalten.
- Gelbe LED erneut einschalten, 1 Sekunde warten, ausschalten.
- Dann wiederholt sich die Schleife ab dem roten Licht.
- Rote LED einschalten (
Dies erzeugt das bekannte Ampel-Muster.
Wichtige Konzepte für Schüler
- Digitale Ausgänge:
digitalWrite(pin, HIGH)setzt einen Pin auf 5V (ein),LOWsetzt ihn auf 0V (aus). - Timing mit
delay():delay(Millisekunden)pausiert das Programm. Achtung: Währenddelay()läuft, kann der Arduino nichts anderes tun. - Sequentielle Logik: Die Reihenfolge der Operationen ist wichtig. Der Code wird Zeile für Zeile ausgeführt, sodass die Lichter in einer vorhersagbaren Reihenfolge wechseln.
- Gemeinsame Masse: Alle LEDs teilen sich denselben Masseanschluss. Dies ist in digitalen Schaltungen üblich.
Häufige Fehler und Debugging-Tipps
- Falsche Pin-Nummern: Überprüfe, ob die Pin-Nummern im Code mit der Verkabelung übereinstimmen. Wenn die rote LED an Pin 13 ist, du aber
12geschrieben hast, leuchtet sie nicht. - LED-Ausrichtung: LEDs sind gepolt. Die Anode (langes Beinchen) muss mit dem Arduino-Pin verbunden werden, die Kathode (kurzes Beinchen) mit GND. In Velxio ist die LED-Komponente standardmäßig richtig ausgerichtet.
- Fehlende Widerstände: Verwende im echten Leben immer einen Vorwiderstand (220Ω–1kΩ) in Reihe mit jeder LED, um Schäden zu vermeiden. Velxios integrierte LEDs enthalten Widerstände, aber wenn du eigene Komponenten verwendest, füge sie hinzu.
delay()blockiert: Wenn du später Taster oder Sensoren hinzufügen möchtest, friertdelay()das Programm ein. Ziehe die Verwendung vonmillis()für nicht-blockierendes Timing in Betracht.
Vorschläge für Erweiterungen
Sobald die grundlegende Ampel funktioniert, probiere diese Verbesserungen aus:
- Fußgängertaster hinzufügen: Verwende einen Taster, um ein Fußgängersignal anzufordern. Wenn gedrückt, wechselt die Ampel auf Rot, dann leuchtet eine weiße LED (Fußgängerüberweg) auf.
millis()stattdelay()verwenden: Schreibe den Code um, sodass ermillis()für das Timing verwendet. Dies erlaubt dem Arduino, während des Wartens auf Tastendrücke zu prüfen.- Summer hinzufügen: Schließe einen Piezo-Summer an einen Pin an und lasse ihn piepen, wenn das grüne Licht kurz vor Gelb steht.
- Fußgängerüberweg simulieren: Füge zwei weitere LEDs (rot und grün) für einen Fußgängerüberweg hinzu und koordiniere sie mit der Ampel.
Probier es selbst aus
Bereit, deine eigene Ampel zu bauen? Öffne das Beispiel in Velxio und beginne zu experimentieren:
Ampel-Beispiel auf Velxio öffnen
Du kannst den Code bearbeiten, das Timing ändern oder weitere LEDs hinzufügen. Der Simulator läuft vollständig in deinem Browser – keine Downloads, keine Hardware. Verwende die Symbolleiste, um deinen Code zu kompilieren und auszuführen:


Wenn du neue Komponenten hinzufügen musst, öffne die Komponentenauswahl:

Und wenn du Bibliotheken verwenden möchtest, ist der Bibliotheks-Manager nur einen Klick entfernt:

Viel Spaß beim Simulieren!