⚡ Arduino Projeleri Başlangıç

Trafik Işıkları ve Yaya Geçidi Otomasyonu

Butona basıldığında araçlara kırmızı yakan, yayalara yeşil veren gerçekçi kavşak trafik lambası simülasyonu.

Trafik Işıkları ve Yaya Geçidi Otomasyonu

Şehir hayatındaki akıllı kavşakların algoritmasını öğreniyoruz. Yaya butonuna basıldığında araç ışığı kontrollü olarak sarı ve kırmızıya döner, yaya güvenle geçer.

---

🎯 Projenin Amacı ve Kazanımları

  • Sıralı durum kontrolü (State Machine) mantığına giriş.
  • Zamanlama ve güvenlik algoritmalarını simüle etmek.
  • Çoklu LED ve buton kontrolünü pekiştirmek.
  • ---

    💻 Arduino C++ Kodları

    const int aracKirmizi = 10;
    const int aracSari = 9;
    const int aracYesil = 8;
    const int yayaKirmizi = 7;
    const int yayaYesil = 6;
    const int yayaButon = 2;
    
    void setup() {
      pinMode(aracKirmizi, OUTPUT);
      pinMode(aracSari, OUTPUT);
      pinMode(aracYesil, OUTPUT);
      pinMode(yayaKirmizi, OUTPUT);
      pinMode(yayaYesil, OUTPUT);
      pinMode(yayaButon, INPUT_PULLUP);
    
      // Başlangıç: Araçlara yeşil, yayalara kırmızı
      digitalWrite(aracYesil, HIGH);
      digitalWrite(yayaKirmizi, HIGH);
    }
    
    void loop() {
      // Butona basıldığında yaya geçiş döngüsünü başlat
      if (digitalRead(yayaButon) == LOW) {
        delay(2000); // 2 saniye sonra döngü başlasın
        
        // Araç sarı
        digitalWrite(aracYesil, LOW);
        digitalWrite(aracSari, HIGH);
        delay(2000);
        
        // Araç kırmızı, yaya yeşil
        digitalWrite(aracSari, LOW);
        digitalWrite(aracKirmizi, HIGH);
        digitalWrite(yayaKirmizi, LOW);
        digitalWrite(yayaYesil, HIGH);
        delay(5000); // Yayalara 5 saniye geçiş hakkı
        
        // Yaya yeşili yanıp sönsün (uyarı)
        for (int i = 0; i < 4; i++) {
          digitalWrite(yayaYesil, LOW);
          delay(250);
          digitalWrite(yayaYesil, HIGH);
          delay(250);
        }
        
        // Eski normale dönüş
        digitalWrite(yayaYesil, LOW);
        digitalWrite(yayaKirmizi, HIGH);
        digitalWrite(aracKirmizi, LOW);
        digitalWrite(aracYesil, HIGH);
      }
    }