Ana içeriğe geç

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şıkSüreLCD Yazısı
🔴 Kırmızı3 snDUR + 3→2→1
🟡 Sarı1 snHAZIRLAN
🟢 Yeşil3 snGEC + 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ı

I2c led devre şeması

LED Pinleri

LEDArduino Pin
KırmızıD8
SarıD9
YeşilD10

I2C LCD Pinleri

LCDArduino
GNDGND
VCC5V
SDAA4
SCLA5

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.