I2C LCD Ekranlı Trafik Işığı Projesi
Arduino I2C LCD trafik ışığı projesi, kırmızı, sarı ve yeşil LED’lerin Arduino ile kontrol edilmesini ve bu durumların LCD ekranda yazılı olarak gösterilmesini amaçlayan örnek bir Arduino uygulamasıdır.
Proje Açıklaması ve Çalışma Mantığı
Bu projede Arduino kullanılarak kırmızı, sarı ve yeşil LED’lerden oluşan bir trafik ışığı sistemi geliştirilmiştir.
Trafik ışığının hangi aşamada olduğunu kullanıcıya daha net anlatmak için projeye I2C bağlantılı 16x2 LCD ekran eklenmiştir.
LED’ler yanarken, LCD ekranda o duruma karşılık gelen yazılı uyarılar ve geri sayım bilgileri gösterilir.
Bu sayede proje hem görsel hem de bilgilendirici bir yapıya sahip olur.
Proje Nasıl Çalışır?
Sistem, gerçek hayattaki trafik lambalarının çalışma mantığını örnek alır ve sürekli bir döngü içinde çalışır.
Her ışık durumu belirli bir süre boyunca aktif kalır ve ardından bir sonraki duruma geçilir.
🔴 Kırmızı Işık – DUR
- Kırmızı LED yanar
- Sarı ve yeşil LED’ler kapalıdır
- LCD ekranda “KIRMIZI – DUR” yazısı görüntülenir
- Aynı zamanda ekranda 3’ten 1’e doğru geri sayım yapılır
- Bu aşama 3 saniye sürer
Bu durum, araçların durması gerektiğini ifade eder.
🟡 Sarı Işık – HAZIRLAN
- Sarı LED yanar
- Kırmızı ve yeşil LED’ler söner
- LCD ekranda “SARI – HAZIRLAN” mesajı gösterilir
- Bu aşama 1 saniye sürer
Sarı ışık, bir sonraki duruma hazırlık anlamı taşır.
🟢 Yeşil Işık – GEC
- Yeşil LED yanar
- Kırmızı ve sarı LED’ler kapalıdır
- LCD ekranda “YESIL – GEC” yazısı görünür
- LCD ekranda tekrar 3’ten 1’e geri sayım yapılır
- Bu aşama 3 saniye sürer
Bu aşama, araçların geçebileceğini belirtir.
Sürekli Döngü Mantığı
Yeşil ışık süresi tamamlandığında sistem tekrar kırmızı ışık aşamasına döner
ve aynı adımlar sonsuz döngü şeklinde tekrar eder.
Kullanıcının herhangi bir müdahalesine gerek kalmadan sistem otomatik olarak çalışır.
Bu Proje Ne Kazandırır?
Bu projeyi inceleyen veya uygulayan kullanıcılar:
- Arduino ile LED kontrolünü
- Zamanlama ve geri sayım mantığını
- I2C LCD ekran kullanımını
- Birden fazla donanım bileşeninin birlikte çalışmasını
- Gerçek hayattaki bir sistemin Arduino ile modellenmesini
öğrenmiş olur.
Kimler İçin Uygundur?
- Arduino’ya yeni başlayanlar
- STEM ve eğitim projeleri
- Okul ödevleri ve bilim fuarları
- Temel elektronik ve programlama öğrenmek isteyenler
için oldukça uygun ve öğretici bir projedir.
Proje Çalışma Mantığı
| Işık | Süre | LCD Yazısı |
|---|---|---|
| 🔴 Kırmızı | 3 sn | DUR + 3→2→1 |
| 🟡 Sarı | 1 sn | HAZIRLAN |
| 🟢 Yeşil | 3 sn | GEC + 3→2→1 |
Gerekli Malzemeler
- Arduino Uno / Nano / Mega
- 16x2 I2C LCD ekran
- Kırmızı LED
- Sarı LED
- Yeşil LED
- 3 × 220Ω direnç
- Jumper kablolar
- USB kablosu
Pin Bağlantıları

LED Pinleri
| LED | Arduino Pin |
|---|---|
| Kırmızı | D8 |
| Sarı | D9 |
| Yeşil | D10 |
I2C LCD Pinleri
| LCD | Arduino |
|---|---|
| GND | GND |
| VCC | 5V |
| SDA | A4 |
| SCL | A5 |
Arduino Mega için: SDA → 20, SCL → 21
Arduino Geri Sayımlı Trafik Işığı Kodu
I2C LCD Ekran kütüphane ekleme talimatı için tıklayınız
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#define KIRMIZI 8
#define SARI 9
#define YESIL 10
LiquidCrystal_I2C lcd(0x27, 16, 2);
void geriSayim(const char* mesaj, int sure) {
for (int i = sure; i > 0; i--) {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(mesaj);
lcd.setCursor(0, 1);
lcd.print("Kalan: ");
lcd.print(i);
lcd.print(" sn");
delay(1000);
}
}
void setup() {
pinMode(KIRMIZI, OUTPUT);
pinMode(SARI, OUTPUT);
pinMode(YESIL, OUTPUT);
lcd.init();
lcd.backlight();
}
void loop() {
// 🔴 KIRMIZI - DUR
digitalWrite(KIRMIZI, HIGH);
digitalWrite(SARI, LOW);
digitalWrite(YESIL, LOW);
geriSayim("KIRMIZI - DUR", 3);
// 🟡 SARI - HAZIRLAN
digitalWrite(KIRMIZI, LOW);
digitalWrite(SARI, HIGH);
digitalWrite(YESIL, LOW);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("SARI");
lcd.setCursor(0, 1);
lcd.print("HAZIRLAN");
delay(1000);
// 🟢 YESIL - GEC
digitalWrite(KIRMIZI, LOW);
digitalWrite(SARI, LOW);
digitalWrite(YESIL, HIGH);
geriSayim("YESIL - GEC", 3);
}
LCD Ekran Çıktısı Örnekleri
KIRMIZI - DUR
Kalan: 3 sn
YESIL - GEC
Kalan: 1 sn
Sonuç
Geri sayımlı Arduino trafik ışığı projesi, zamanlama mantığını, fonksiyon kullanımını ve LCD kontrolünü birlikte öğretir. Eğitim, STEM ve başlangıç–orta seviye projeler için idealdir.