Arduino ve LED'lerle bir trafik ışığı simülasyonu oluşturmak, programlama ve devre bağlantıları hakkında temel bilgilerinizi geliştirmenin harika bir yoludur. Bu proje, trafik ışıklarının gerçek dünyadaki davranışlarını taklit eder ve LED'lerin farklı durumlarda yanıp sönmesini içerir.
Proje İçin Gerekli Malzemeler
- 1 x Arduino Uno (veya benzeri bir Arduino kartı)
- 3 x LED (kırmızı, sarı ve yeşil)
- 3 x 220 Ohm direnç
- Breadboard
- Bağlantı kabloları
Devre Bağlantısı

- Kırmızı LED: Uzun bacağını (anod), Arduino'nun 13 numaralı pinine, kısa bacağını (katod) ise 220 Ohm direnç üzerinden Arduino'nun GND pinine bağlayın.
- Sarı LED: Uzun bacağını Arduino'nun 12 numaralı pinine, kısa bacağını 220 Ohm direnç üzerinden GND'ye bağlayın.
- Yeşil LED: Uzun bacağını Arduino'nun 11 numaralı pinine, kısa bacağını 220 Ohm direnç üzerinden GND'ye bağlayın.
Projenin çalışan simülasyonunu görmek için tıklayınız.
Arduino Kodu
Aşağıda, Arduino ile trafik ışığı simülasyonu için temel bir kod bulunmaktadır:
int redLed = 13; // Kırmızı LED pin numarası
int yellowLed = 12; // Sarı LED pin numarası
int greenLed = 11; // Yeşil LED pin numarası
void setup() {
pinMode(redLed, OUTPUT); // Kırmızı LED çıkış olarak ayarlanır
pinMode(yellowLed, OUTPUT); // Sarı LED çıkış olarak ayarlanır
pinMode(greenLed, OUTPUT); // Yeşil LED çıkış olarak ayarlanır
}
void loop() {
// 1. Kırmızı ışık yanar
digitalWrite(redLed, HIGH);
delay(5000); // 5 saniye bekle
digitalWrite(redLed, LOW);
// 2. Sarı ışık yanar
digitalWrite(yellowLed, HIGH);
delay(2000); // 2 saniye bekle
digitalWrite(yellowLed, LOW);
// 3. Yeşil ışık yanar
digitalWrite(greenLed, HIGH);
delay(5000); // 5 saniye bekle
digitalWrite(greenLed, LOW);
// 4. Sarı ışık tekrar yanar
digitalWrite(yellowLed, HIGH);
delay(2000); // 2 saniye bekle
digitalWrite(yellowLed, LOW);
}
Kod Açıklaması
- Setup Fonksiyonu:
pinMode()fonksiyonlarıyla LED pinlerini çıkış olarak ayarladık.
- Loop Fonksiyonu:
- Kırmızı LED’i yakmak için
digitalWrite(redLed, HIGH);komutunu kullandık. delay(5000);komutuyla 5 saniye boyunca kırmızı LED yanık kalır.- Daha sonra sarı LED yanar, ardından yeşil LED sırasıyla çalıştırılır.
- Kırmızı LED’i yakmak için
Yaya Geçidi ve Butonlu Trafik Işığı Simülasyonu
Bu proje, bir yaya geçidi ve buton ekleyerek trafik ışığı sistemini daha gerçekçi hale getirir. Butona basıldığında, araç trafiği durdurulur ve yaya geçidi için yeşil ışık yanar. Belirli bir süre sonra sistem tekrar normale döner.
Gerekli Malzemeler
- 1 x Arduino Uno (veya benzeri bir Arduino kartı)
- 3 x LED (kırmızı, sarı, yeşil) (araç trafik lambası için)
- 2 x LED (kırmızı, yeşil) (yaya trafik lambası için)
- 5 x 220 Ohm direnç
- 1 x Buton
- Breadboard
- Bağlantı kabloları
Devre Bağlantısı

Araç Trafik Lambası
- Kırmızı LED: Arduino'nun 13 numaralı pinine.
- Sarı LED: Arduino'nun 12 numaralı pinine.
- Yeşil LED: Arduino'nun 11 numaralı pinine.
Yaya Trafik Lambası
- Kırmızı LED: Arduino'nun 10 numaralı pinine.
- Yeşil LED: Arduino'nun 9 numaralı pinine.
Buton
- Bir ucu Arduino'nun 2 numaralı pinine, diğer ucu GND'ye bağlanır.
- Arduino'nun 2 numaralı pinini
INPUT_PULLUPile kullanacağız.
Dirençler
- Her LED'in katod bacağını 220 Ohm direnç üzerinden GND'ye bağlayın.
Yaya Geçidi ve Butonlu Trafik Işığı Arduino Kodu
// Araç Trafik Lambası Pinleri
int redCar = 13;
int yellowCar = 12;
int greenCar = 11;
// Yaya Trafik Lambası Pinleri
int redPedestrian = 10;
int greenPedestrian = 9;
// Buton Pin
int buttonPin = 2;
// Buton Durumu
bool buttonPressed = false;
void setup() {
// Araç Trafik Lambası Pinleri
pinMode(redCar, OUTPUT);
pinMode(yellowCar, OUTPUT);
pinMode(greenCar, OUTPUT);
// Yaya Trafik Lambası Pinleri
pinMode(redPedestrian, OUTPUT);
pinMode(greenPedestrian, OUTPUT);
// Buton Pini
pinMode(buttonPin, INPUT_PULLUP);
// Başlangıç Durumu
digitalWrite(greenCar, HIGH); // Araçlar için kırmızı ışık kapalı
digitalWrite(redPedestrian, HIGH); // Yayalar için yeşil ışık kapalı
}
void loop() {
// Buton durumu kontrol edilir
if (digitalRead(buttonPin) == LOW) {
buttonPressed = true; // Buton basıldığında durum güncellenir
}
if (buttonPressed) {
// Araç Trafiğini Durdur
digitalWrite(greenCar, LOW);
digitalWrite(yellowCar, HIGH);
delay(2000); // Sarı ışık yanar
digitalWrite(yellowCar, LOW);
digitalWrite(redCar, HIGH);
// Yaya Trafiğini Başlat
digitalWrite(redPedestrian, LOW);
digitalWrite(greenPedestrian, HIGH);
delay(5000); // Yayalar için geçiş süresi
// Yaya Trafiğini Durdur
digitalWrite(greenPedestrian, LOW);
digitalWrite(redPedestrian, HIGH);
// Araç Trafiğini Yeniden Başlat
digitalWrite(redCar, LOW);
digitalWrite(yellowCar, HIGH);
delay(2000); // Sarı ışık yanar
digitalWrite(yellowCar, LOW);
digitalWrite(greenCar, HIGH);
buttonPressed = false; // Buton durumu sıfırlanır
}
}
Kod Açıklamaları
Setup Fonksiyonu
- Trafik ve yaya lambaları için pinler
OUTPUTolarak ayarlandı. - Buton pini
INPUT_PULLUPile iç direnç kullanılarak giriş olarak ayarlandı.
Loop Fonksiyonu
- Buton durumu kontrol edilir (
LOWolduğunda butona basılmış demektir).Butona basıldığında:- Araç trafiği durdurulur (kırmızı ışık yanar).
- Yaya trafiği başlatılır (yeşil ışık yanar).
- Belirli bir süre sonunda sistem eski durumuna döner.

cemal mete
hocam bunu diğer türlü olanı yapsak mesela bir tane özel yapılmış var onu nasıl yapıcağız?
Aykut AKMAN
yukarıdaki örnek kodu kullanıp, arduino üzerinde pinleri doğru tanımlayıp bağlantıları yaparsan muhtemelen çalışacaktır. Örneği daha sonradan geliştirebilirsin.