#150Başlangıç

Raspberry Pi Pico Trafik Lambası (3 LED Sıralı, GP11/GP12/GP13)

Kırmızı, sarı ve yeşil LED'lerle gerçek trafik ışığı mantığını simüle ediyoruz — Pico serisinin 3 LED'e geçen ilk projesi! Yeşil 4 saniye "geç", sarı 1.5 saniye "hazırlan", kırmızı 3 saniye "dur" ve kırmızı+sarı 1 saniye "kalkış" (Avrupa trafik lambası pattern'i). Bu proje ile **fonksiyon tanımlama** (`def all_off()`), **durum makinesi mantığı** (sequence) ve **coklu GPIO senkronizasyonu** kavramlarını öğreneceksin. Devre çok basit: GP11 (Yeşil), GP12 (Sarı), GP13 (Kırmızı) pinlerine 3 LE

4.0(1)
12 tamamlandı
Raspberry Pi Pico Trafik Lambası (3 LED Sıralı, GP11/GP12/GP13)
Kırmızı, sarı ve yeşil LED'lerle gerçek trafik ışığı mantığını simüle ediyoruz — Pico serisinin 3 LED'e geçen ilk projesi! Yeşil 4 saniye "geç", sarı 1.5 saniye "hazırlan", kırmızı 3 saniye "dur" ve kırmızı+sarı 1 saniye "kalkış" (Avrupa trafik lambası pattern'i). Bu proje ile **fonksiyon tanımlama** (`def all_off()`), **durum makinesi mantığı** (sequence) ve **coklu GPIO senkronizasyonu** kavramlarını öğreneceksin. Devre çok basit: GP11 (Yeşil), GP12 (Sarı), GP13 (Kırmızı) pinlerine 3 LED, her birinde 220Ω akım sınırlama direnci. GP11-GP12-GP13 yan yana pinlerdir — kablo düzenli kalır. Wokwi'de veya breadboard'da 5 dakikada kur. Bu proje ile aynı zamanda **kod modülerliği** başlıyor: tekrarlanan işlem (LED söndürme) tek fonksiyona toplandı.

Video

Devre Şeması

Raspberry Pi Pico Trafik Lambası (3 LED Sıralı, GP11/GP12/GP13) - Circuit

Kaynak Kodu

MicroPython
1# ─────────────────────────────────────────
2#   BlueGrays · bluegrays.com
3#   Raspberry Pi Pico Trafik Lambası (3 LED Sıralı, GP11/GP12/GP13)
4# ─────────────────────────────────────────
5# Kırmızı, sarı ve yeşil LED'lerle gerçek trafik ışığı döngüsü: yeşil 4
6# sn, sarı 1.5 sn, kırmızı 3 sn, sonra kırmızı + sarı 1 sn (Avrupa tipi
7# kalkış). Tüm LED'leri söndüren yardımcı fonksiyon ile kod tekrarı
8# önlenir.
9#
10# Pinler:
11#   GP11 -> Yeşil LED
12#   GP12 -> Sarı LED
13#   GP13 -> Kırmızı LED (her LED 220 ohm dirençle)
14#   LED katotlari -> GND
15
16from machine import Pin
17from time import sleep
18
19# ============ PIN / PIN ============
20# Trafik lambası pinleri (yan yana GP11-GP12-GP13)
21green_led  = Pin(11, Pin.OUT)      # Yeşil LED: GEÇ
22yellow_led = Pin(12, Pin.OUT)      # Sarı LED: HAZIRLAN
23red_led    = Pin(13, Pin.OUT)      # Kırmızı LED: DUR
24
25# ============ YARDIMCI FONKSİYON ============
26def all_off():
27    """
28    TR: Tum LED'leri sondur (DRY prensibi: tekrardan kacinmak icin)
29    EN: Turn off all LEDs (DRY principle: avoid repetition)
30    """
31    green_led.value(0)
32    yellow_led.value(0)
33    red_led.value(0)
34
35print("== BlueGrays · bluegrays.com ==")
36print("Trafik Lambasi / Traffic Light")
37print("Yesil: GP11 | Sari: GP12 | Kirmizi: GP13")
38
39# ============ ANA DÖNGÜ ============
40while True:
41    # 1) YEŞİL: GEÇ (4 sn)
42    all_off()
43    green_led.value(1)
44    print("[TRAFIK/TRAFFIC] YESIL / GREEN — GEC / GO")
45    sleep(4)
46
47    # 2) SARI: HAZIRLAN (1.5 sn)
48    all_off()
49    yellow_led.value(1)
50    print("[TRAFIK/TRAFFIC] SARI / YELLOW — HAZIRLAN / READY")
51    sleep(1.5)
52
53    # 3) KIRMIZI: DUR (3 sn)
54    all_off()
55    red_led.value(1)
56    print("[TRAFIK/TRAFFIC] KIRMIZI / RED — DUR / STOP")
57    sleep(3)
58
59    # 4) KIRMIZI + SARI: KALKIŞ (1 sn), Avrupa tipi
60    # Kalkış hazırlığı: sürücü vitese takar
61    yellow_led.value(1)
62    print("[TRAFIK/TRAFFIC] KIRMIZI+SARI / RED+YELLOW — KALKIS / STARTING")
63    sleep(1)
64

Sıkça Sorulanlar

Kırmızı+sarı birlikte yanması ne anlama gelir?▾

Avrupa'daki bazı trafik ışıklarında kırmızıdan yeşile geçmeden önce kırmızı ve sarı birlikte yanar; sürücülere 'hazırlan' mesajı verir. Türkiye'de de bu desen kullanılır.

Fonksiyon tanımlamanın faydası ne?▾

all_off() gibi bir fonksiyon, tekrar eden üç satırı tek isimle çağırmanı sağlar. Kod kısalır, okunur hale gelir ve değişiklik tek yerden yapılır.

Süreleri nasıl değiştiririm?▾

Her ışık için sleep() içindeki saniye değerlerini değiştir. Değerleri dosyanın başında sabit olarak tanımlarsan (ör. GREEN_TIME = 4) ve sleep(GREEN_TIME) şeklinde kullanırsan ayarlamak çok kolaylaşır.

Yaya butonu ekleyebilir miyim?▾

Evet. Bir buton ekleyip basıldığında döngüyü kırmızıya geçirebilirsin. Butonun anında algılanması için sleep yerine ticks_ms() ile zamanlama yapmak gerekir; bu sonraki mod seçici projesinde anlatılır.

Raspberry Pi Pico Trafik Lambası (3 LED Sıralı, GP11/GP12/GP13) | BlueGrays