Arduino ile LED Kullanarak Trafik Işığı Projesi
Arduino Arduino Hafta 9

Arduino ile LED Kullanarak Trafik Işığı Projesi

2 yıl önce · Aykut AKMAN · ~6 dk okuma · 3,8 B görüntüleme

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ı

arduino-ile-trafik-ışığı-devre-şeması


  1. 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.
  2. Sarı LED: Uzun bacağını Arduino'nun 12 numaralı pinine, kısa bacağını 220 Ohm direnç üzerinden GND'ye bağlayın.
  3. 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ı

  1. Setup Fonksiyonu:
    • pinMode() fonksiyonlarıyla LED pinlerini çıkış olarak ayarladık.
  2. 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.

    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ı

    arduino-ile-yaya-geçidi-ve-butonlu-trafik-ışığı-yapımı


    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_PULLUP ile 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 OUTPUT olarak ayarlandı.
    • Buton pini INPUT_PULLUP ile iç direnç kullanılarak giriş olarak ayarlandı.

    Loop Fonksiyonu

    • Buton durumu kontrol edilir (LOW olduğ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.

    Projenin simülasyonunu görmek için tıklayınız.

    Önceki Ders Hafta 9
    Temel Sensörler ve Aktuatörlerin Arduino ile Kullanımı
    Hafta 10 Sonraki Ders
    Arduino ile Buton Kullanarak LED Yakma

    Yorumlar (1)

    c
    cemal mete 2 yıl önce

    hocam bunu diğer türlü olanı yapsak mesela bir tane özel yapılmış var onu nasıl yapıcağız?

    A
    Aykut AKMAN 2 yıl önce

    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.

    Düşüncelerinizi Paylaşın

    E-posta adresiniz yayınlanmayacaktır. Gerekli alanlar * ile belirtilmiştir.