Trafik Lambası Projesi: Gerçek Hayattan Bir Uygulama!
Şimdiye kadar tek ve altı LED’i kontrol etmeyi öğrendik, harika! Bu bilgilerle artık daha karmaşık ve gerçek hayattan bir uygulama olan trafik lambası yapabiliriz. Bu proje, LED’leri belirli bir mantık ve zamanlamayla nasıl kontrol edeceğimizi öğretecek.
Trafik Lambası Mantığı
Bir trafik lambası, genellikle üç ana renkten oluşur ve belirli bir sırayla yanıp söner:
- Kırmızı: Dur.
- Sarı: Hazırlan (Bir sonraki ışık yeşil olacak veya kırmızıya dönecek).
- Yeşil: Geç.
Bu projede bu temel sırayı Arduino ve mBlock ile uygulayacağız.
Malzeme Listesi: İhtiyacın Olanlar
Bu proje için ihtiyaç duyacağın malzemeler, önceki altı LED projesine benzer:
- 1 adet Arduino Uno Kartı: Projemizin beyni.
- 1 adet USB Kablosu: Arduino’yu bilgisayarına bağlamak için.
- 1 adet Breadboard (Devre Tahtası): Kabloları ve parçaları düzenli bir şekilde takmak için.
- 3 adet LED:
- 1 adet Kırmızı LED
- 1 adet Sarı LED
- 1 adet Yeşil LED
- Her birinin uzun (+) ve kısa (-) bacaklarına dikkat et.
- 3 adet 220 Ohm Direnç: Her bir LED’i korumak için birer tane gerekli.
- 4 adet Jumper Kablo (Erkek-Erkek): Parçaları Arduino’ya ve birbirine bağlamak için. (Her LED için bir tane ve bir tane de ortak toprak için)
Devre Kurulumu: LED’leri Trafik Lambası Gibi Diziyoruz
Şimdi üç LED’i ve onlara bağlı dirençleri breadboard üzerine yerleştirip Arduino’ya bağlayalım. Mantık önceki projelerle aynı, sadece pin sayısı azaldı.
- LED’leri ve Dirençleri Yerleştir:
- Her bir Kırmızı, Sarı ve Yeşil LED’in uzun bacağını (+) breadboard’un farklı bir sırasına tak.
- Her bir LED’in kısa bacağını (-) ise, uzun bacaktan farklı bir sıraya tak.
- Her bir direnci al ve bir ucunu LED’in kısa bacağı (-) ile aynı sıraya tak. Direncin diğer bacağını breadboard’un boş bir sırasına yerleştir. Bunu üç LED için de tekrar et.
- Ortak Toprak (GND) Bağlantısı:
- Dirençlerin boşta kalan bacaklarının olduğu sırayı, breadboard’daki ortak toprak hattına (genellikle mavi veya siyah çizgi) bağla.
- Bu ortak toprak hattını (eksi hattını) bir jumper kablo ile Arduino Uno üzerindeki “GND” (Toprak) pinlerinden birine bağla.
- Arduino ve LED Bağlantıları:
- Kırmızı LED’in uzun bacağı (+) ile aynı sıraya bir jumper kablo tak ve diğer ucunu Arduino Uno üzerindeki Dijital 9 numaralı pine bağla.
- Sarı LED’in uzun bacağı (+) ile aynı sıraya bir jumper kablo tak ve diğer ucunu Arduino Uno üzerindeki Dijital 8 numaralı pine bağla.
- Yeşil LED’in uzun bacağı (+) ile aynı sıraya bir jumper kablo tak ve diğer ucunu Arduino Uno üzerindeki Dijital 7 numaralı pine bağla.
Devre Şeması (Basit Görselleştirme):

Kodlama: mBlock ile Trafik Lambası Mantığı
Şimdi mBlock programını kullanarak trafik lambasının sırasını programlayalım.
Hazırlık Adımları:
- mBlock’u Aç ve Bağlantı Kur: mBlock programını aç, Arduino Uno kartını seç, USB ile bilgisayarına bağla ve doğru COM portunu seçerek bağlantıyı kur.
- Arduino Kipine Geçin: Üst menüden “Düzenle” (Edit) seçeneğine tıklayıp “Arduino Kipi”ni (Arduino Mode) işaretlediğinden emin ol.
Kod Bloklarını Oluşturma:
Trafik lambası sırası: Kırmızı -> Sarı (Kırmızı ile birlikte kısa süre) -> Yeşil -> Sarı (Tek başına kısa süre) -> Kırmızı…
- “Olaylar” kategorisinden “Arduino programı başladığında” bloğunu çalışma alanına sürükle.
- “Kontrol” kategorisinden “sürekli tekrarla” (forever) bloğunu sürükle ve “Arduino programı başladığında” bloğunun içine yerleştir. Tüm trafik lambası mantığımız bu döngünün içinde çalışacak.
- Şimdi, trafik lambası sırasını adım adım oluşturalım:
- Adım 1: Kırmızı Işık Yanık (Diğerleri Kapalı)
- “Pinler” kategorisinden “Pin [7] dijital çıkışını [YÜKSEK] yap” (Kırmızı LED)
- “Pinler” kategorisinden “Pin [8] dijital çıkışını [DÜŞÜK] yap” (Sarı LED)
- “Pinler” kategorisinden “Pin [9] dijital çıkışını [DÜŞÜK] yap” (Yeşil LED)
- “Kontrol” kategorisinden “[5] saniye bekle” (Kırmızı ışığın süresi)
- Adım 2: Kırmızı ve Sarı Işık Birlikte Yanık (Geçiş için)
- “Pinler” kategorisinden “Pin [8] dijital çıkışını [YÜKSEK] yap” (Sarı da yanık)
- “Pinler” kategorisinden “Pin [7] dijital çıkışını [DÜŞÜK] yap” (Yeşil hala kapalı)
- “Kontrol” kategorisinden “[2] saniye bekle” (Kısa geçiş süresi)
- Adım 3: Yeşil Işık Yanık (Kırmızı ve Sarı Kapalı)
- “Pinler” kategorisinden “Pin [7] dijital çıkışını [DÜŞÜK] yap” (Kırmızı kapanır)
- “Pinler” kategorisinden “Pin [8] dijital çıkışını [DÜŞÜK] yap” (Sarı kapanır)
- “Pinler” kategorisinden “Pin [9] dijital çıkışını [YÜKSEK] yap” (Yeşil yanar)
- “Kontrol” kategorisinden “[5] saniye bekle” (Yeşil ışığın süresi)
- Adım 4: Sarı Işık Tek Başına Yanık (Kırmızı ve Yeşil Kapalı – Kırmızıya Geçiş İçin)
- “Pinler” kategorisinden “Pin [9] dijital çıkışını [YÜKSEK] yap” (Kırmızı yanar)
- “Pinler” kategorisinden “Pin [8] dijital çıkışını [YÜKSEK] yap” (Sarı yanar)
- “Kontrol” kategorisinden “[2] saniye bekle” (Kısa geçiş süresi)
- Adım 1: Kırmızı Işık Yanık (Diğerleri Kapalı)
Hazır Kod Blokları Şeması (Mantık):

Arduino Kodu
// C++ code
//
void setup()
{
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
}
void loop()
{
digitalWrite(7, HIGH);
digitalWrite(8, LOW);
digitalWrite(9, LOW);
delay(5000);
digitalWrite(7, LOW);
digitalWrite(8, HIGH);
delay(2000);
digitalWrite(8, LOW);
digitalWrite(9, HIGH);
delay(5000);
digitalWrite(8, HIGH);
digitalWrite(9, HIGH);
delay(2000);
}
Kodu Arduino’ya Yükleme:
- Kodunu tamamladığında, mBlock arayüzünün sağ üst köşesinde bulunan “Yükle” (Upload) butonuna tıkla.
- Yükleme bittiğinde, LED’lerin sırayla bir trafik lambası gibi yandığını göreceksin!
Sorun Giderme (Ne Yapmalıyım?)
Eğer trafik lamban istediğin gibi çalışmıyorsa, şunları kontrol et:
- Tüm LED’lerde Direnç Var Mı? Her LED’in kendi direnci olmalı ve doğru bağlanmış olmalı.
- LED’ler Ters Mi Takılı? Her LED’in uzun (+) ve kısa (-) bacaklarının doğru bağlandığından emin ol.
- Kablolar Sağlam Mı? Tüm kabloların breadboard’a ve Arduino’ya sağlam oturduğundan ve doğru pinlere bağlandığından emin ol.
- Ortak GND Bağlantısı: Dirençlerin bağlı olduğu hattan Arduino’nun GND pinine bir kablo gidiyor mu?
- Pin Numaraları Doğru Mu? Kodundaki pin numaraları (9, 8, 7) ile LED’leri bağladığın pin numaraları tamamen eşleşiyor mu? Kırmızı, sarı ve yeşil LED’leri doğru pinlere bağladığından emin ol.
- mBlock Bağlantısı: mBlock’ta Arduino’nun yanında yeşil nokta var mı? Yoksa bağlantıyı tekrar kur.
- Kod Mantığı Doğru Mu? Her adımda hangi LED’lerin yanık (YÜKSEK) ve hangilerinin sönük (DÜŞÜK) olması gerektiğini dikkatlice kontrol et.
- Süreler Yeterli Mi? Bekleme sürelerini (saniye) başlangıçta biraz daha uzun tutarak adımları daha net görebilirsin.
- Kod Yüklendi Mi? mBlock’ta “Yükle” butonuna bastın mı ve yükleme başarılı oldu mu?
Bu kontrollerle trafik lambası projenin sorunsuz çalışmasını sağlayabilirsin. Şimdi bu trafik lambasını daha da geliştirmek ister misin? Belki yayalar için de bir ışık ekleyebilir veya farklı süreler ayarlayabilirsin!