#150Anfänger

Raspberry Pi Pico Ampel-Simulator (3 LEDs sequenziell, GP11/GP12/GP13)

Wir simulieren eine echte Ampel mit roten, gelben und grünen LEDs. Grün 4 Sek "gehen", gelb 1,5 Sek "bereit", rot 3 Sek "stopp" und rot+gelb 1 Sek "starten" (europäisches Ampelmuster). Lerne Funktionsdefinition, Zustandsmaschinen-Logik und Multi-GPIO-Synchronisation. Sehr einfache Schaltung: 3 LEDs an GP11/GP12/GP13, jeweils mit 220Ω Widerstand.

4.0(1)
12 abgeschlossen
Raspberry Pi Pico Ampel-Simulator (3 LEDs sequenziell, GP11/GP12/GP13)
Wir simulieren mit roten, gelben und grünen LEDs die Logik einer echten Ampel — das erste Projekt der Pico-Reihe mit 3 LEDs! Grün 4 Sekunden „fahren“, Gelb 1.5 Sekunden „bereit machen“, Rot 3 Sekunden „halt“ und Rot+Gelb 1 Sekunde „anfahren“ (europäisches Ampelmuster). Mit diesem Projekt lernst du die Konzepte **Funktionsdefinition** (`def all_off()`), **Zustandsautomaten-Logik** (Sequenz) und **Synchronisierung mehrerer GPIOs** kennen. Die Schaltung ist ganz einfach: 3 LEDs an den Pins GP11 (Grün), GP12 (Gelb) und GP13 (Rot), jeweils mit einem 220Ω-Strombegrenzungswiderstand. GP11-GP12-GP13 sind benachbarte Pins — so bleibt die Verkabelung ordentlich. Baue die Schaltung in 5 Minuten in Wokwi oder auf dem Breadboard auf. Mit diesem Projekt beginnt außerdem die **Code-Modularität**: Der wiederholte Vorgang (LEDs ausschalten) wurde in einer einzigen Funktion zusammengefasst.

Video

Schaltplan

Raspberry Pi Pico Ampel-Simulator (3 LEDs sequenziell, GP11/GP12/GP13) - Circuit

Quellcode

MicroPython
1# ─────────────────────────────────────────
2#   BlueGrays · bluegrays.com
3#   Raspberry Pi Pico Ampel-Simulator (3 LEDs sequenziell, GP11/GP12/GP13)
4# ─────────────────────────────────────────
5# Ein echter Ampelzyklus mit roter, gelber und grüner LED: Grün 4 s, Gelb
6# 1.5 s, Rot 3 s, dann Rot + Gelb 1 s (Start nach europäischer Art). Eine
7# Hilfsfunktion, die alle LEDs ausschaltet, vermeidet wiederholten Code.
8#
9# Pins:
10#   GP11 -> Grüne LED
11#   GP12 -> Gelbe LED
12#   GP13 -> Rote LED (jede LED mit 220 Ohm)
13#   LED katotlari -> LED-Kathoden -> GND
14
15from machine import Pin
16from time import sleep
17
18# ============ PIN / PIN ============
19# Ampel-Pins (benachbart GP11-GP12-GP13)
20green_led  = Pin(11, Pin.OUT)      # Grüne LED: GO
21yellow_led = Pin(12, Pin.OUT)      # Gelbe LED: BEREIT
22red_led    = Pin(13, Pin.OUT)      # Rote LED: STOPP
23
24# ============ HILFSFUNKTION ============
25def all_off():
26    """
27    TR: Tum LED'leri sondur (DRY prensibi: tekrardan kacinmak icin)
28    EN: Turn off all LEDs (DRY principle: avoid repetition)
29    """
30    green_led.value(0)
31    yellow_led.value(0)
32    red_led.value(0)
33
34print("== BlueGrays · bluegrays.com ==")
35print("Trafik Lambasi / Traffic Light")
36print("Yesil: GP11 | Sari: GP12 | Kirmizi: GP13")
37
38# ============ HAUPTSCHLEIFE ============
39while True:
40    # GRÜN: GO (4 s)
41    all_off()
42    green_led.value(1)
43    print("[TRAFIK/TRAFFIC] YESIL / GREEN — GEC / GO")
44    sleep(4)
45
46    # GELB: BEREIT (1.5 s)
47    all_off()
48    yellow_led.value(1)
49    print("[TRAFIK/TRAFFIC] SARI / YELLOW — HAZIRLAN / READY")
50    sleep(1.5)
51
52    # ROT: STOPP (3 s)
53    all_off()
54    red_led.value(1)
55    print("[TRAFIK/TRAFFIC] KIRMIZI / RED — DUR / STOP")
56    sleep(3)
57
58    # ROT + GELB: START (1 s), europäische Art
59    # Startphase: Der Fahrer legt den Gang ein
60    yellow_led.value(1)
61    print("[TRAFIK/TRAFFIC] KIRMIZI+SARI / RED+YELLOW — KALKIS / STARTING")
62    sleep(1)
63

FAQ

Was bedeutet es, wenn die rote und die gelbe Ampel gleichzeitig leuchten?▾

An einigen Ampeln in Europa leuchten Rot und Gelb gleichzeitig, bevor die Ampel von Rot auf Grün umschaltet; dies signalisiert den Autofahrern, sich bereit zu machen. Auch in der Türkei wird dieses Signal verwendet.

Was ist der Vorteil einer Funktionsdefinition?▾

Eine Funktion wie „all_off()“ ermöglicht es dir, drei sich wiederholende Zeilen mit einem einzigen Aufruf auszuführen. Der Code wird kürzer, lesbarer und Änderungen müssen nur an einer Stelle vorgenommen werden.

Wie kann ich die Zeiträume ändern?▾

Ändere für jede Leuchte die Sekundenwerte innerhalb von `sleep()`. Wenn du die Werte am Anfang der Datei als Konstanten definierst (z. B. `GREEN_TIME = 4`) und in Aufrufen wie `sleep(GREEN_TIME)` verwendest, lässt sich die Einstellung viel einfacher vornehmen.

Kann ich eine Fußgängertaste hinzufügen?▾

Ja. Du kannst eine Schaltfläche hinzufügen, die die Schleife auf Rot umschaltet, wenn sie gedrückt wird. Damit die Schaltfläche sofort erkannt wird, musst du statt „sleep“ die Funktion „ticks_ms()“ zur Zeitsteuerung verwenden; dies wird im nächsten Projekt zum Mod-Selektor erläutert.

Raspberry Pi Pico Ampel (MicroPython) | BlueGrays