HIZLI VE GÜVENİLİR KARGO
1.750 TL üzeri ücretsiz kargo
HIZLI VE GÜVENİLİR KARGO
1.750 TL üzeri ücretsiz kargo
Şehrin Işıkları: Gerçekçi Bir Trafik Lambası Modeli

Şehrin Işıkları: Gerçekçi Bir Trafik Lambası Modeli

Şehrin Işıkları: Gerçekçi Bir Trafik Lambası Modeli

Şehirlerimizin karmaşık trafiği, aslında çok basit bir mantıkla işleyen trafik lambaları sayesinde düzenlenir. Bu projede, kırmızı, sarı ve yeşil LED'leri kullanarak kendi trafik lambanızı programlayacak ve bu temel sıralama mantığını keşfedeceksiniz. Kodu bir kez yazdıktan sonra, trafik lambanız sonsuza kadar döngüsel olarak çalışmaya devam edecek.

Gerekli Malzemeler

  • Arduino Uno: Projemizin beyni.
  • 3 adet LED: Kırmızı, sarı ve yeşil olmak üzere.
  • 3 adet 220Ω Direnç: Her bir LED için ayrı ayrı kullanılacak.
  • Breadboard: Devre elemanlarını birbirine bağlamak için.
  • Jumper Kablolar: Bağlantılar için gerekli.

Devre Kurulumu

Bu devrede üç farklı LED'i kontrol edeceğimiz için her birini ayrı bir dijital pine bağlayacağız.

  1. LED'leri Breadboard'a Yerleştirin: Kırmızı, sarı ve yeşil LED'leri sırayla breadboard'a takın. LED'lerin uzun (anot) bacakları aynı sırada, kısa (katot) bacakları ise başka bir sırada olmalıdır.
  2. Dirençleri ve Pinleri Bağlayın:Kırmızı LED: Uzun bacağını bir 220Ω dirençle birlikte Arduino'nun Pin 13'üne bağlayın.Sarı LED: Uzun bacağını bir 220Ω dirençle birlikte Arduino'nun Pin 12'sine bağlayın.Yeşil LED: Uzun bacağını bir 220Ω dirençle birlikte Arduino'nun Pin 11'ine bağlayın.
  3. Kırmızı LED: Uzun bacağını bir 220Ω dirençle birlikte Arduino'nun Pin 13'üne bağlayın.
  4. Sarı LED: Uzun bacağını bir 220Ω dirençle birlikte Arduino'nun Pin 12'sine bağlayın.
  5. Yeşil LED: Uzun bacağını bir 220Ω dirençle birlikte Arduino'nun Pin 11'ine bağlayın.
  6. Topraklamayı Yapın: Üç LED'in de kısa bacaklarını (katot) bir jumper kablo aracılığıyla Arduino'daki GND pinine bağlayın. Ortak bir GND hattı kullanmak işinizi kolaylaştıracaktır.

Kodlama Zamanı!

Devreyi kurduysanız, sıra geldi trafik lambasının kurallarını belirleyen kodu yazmaya. Arduino IDE'yi açın ve aşağıdaki kodu kopyalayıp yapıştırın.

C

// LED'lerin bağlı olduğu pinleri tanımla
const int redLedPin = 13;
const int yellowLedPin = 12;
const int greenLedPin = 11;

// Işıkların yanma sürelerini milisaniye cinsinden tanımla
const int redDuration = 5000;    // 5 saniye kırmızı
const int yellowDuration = 2000;   // 2 saniye sarı
const int greenDuration = 5000;  // 5 saniye yeşil

void setup() {
  // Pinleri ÇIKIŞ olarak ayarla
  pinMode(redLedPin, OUTPUT);
  pinMode(yellowLedPin, OUTPUT);
  pinMode(greenLedPin, OUTPUT);
}

void loop() {
  // Yeşil ışık
  digitalWrite(greenLedPin, HIGH); // Yeşil ışığı yak
  delay(greenDuration);             // Yeşil yanarken bekle
  digitalWrite(greenLedPin, LOW);  // Yeşil ışığı söndür

  // Sarı ışık (kırmızıya geçiş için)
  digitalWrite(yellowLedPin, HIGH); // Sarı ışığı yak
  delay(yellowDuration);            // Sarı yanarken bekle
  digitalWrite(yellowLedPin, LOW); // Sarı ışığı söndür

  // Kırmızı ışık
  digitalWrite(redLedPin, HIGH);  // Kırmızı ışığı yak
  delay(redDuration);             // Kırmızı yanarken bekle
  digitalWrite(redLedPin, LOW);   // Kırmızı ışığı söndür
  
  // Sarı ışık (yeşile geçiş için - opsiyonel)
  digitalWrite(yellowLedPin, HIGH);
  delay(yellowDuration);
  digitalWrite(yellowLedPin, LOW);
}

Kodu Anlayalım

  • const int ...Pin: LED'leri bağladığımız pinleri tanımladık. Bu, kodun daha okunabilir olmasını sağlar.
  • const int ...Duration: Her bir ışığın kaç saniye yanacağını milisaniye cinsinden belirledik. Bu değerleri istediğiniz gibi değiştirebilirsiniz.
  • void setup() { ... }: Program başladığında bir kez çalışır. Üç LED'in de bağlı olduğu pinleri OUTPUT (çıkış) olarak ayarladık.
  • void loop() { ... }: Programın sürekli tekrar eden ana döngüsüdür.digitalWrite(greenLedPin, HIGH);: Yeşil LED'e enerji göndererek yanmasını sağlıyoruz.delay(greenDuration);: Yeşil ışığın yanması için belirlenen süre kadar bekliyoruz.digitalWrite(greenLedPin, LOW);: Süre dolunca yeşil ışığı söndürüyoruz.Aynı mantık, sırasıyla sarı ve kırmızı ışık için de uygulanır.
  • digitalWrite(greenLedPin, HIGH);: Yeşil LED'e enerji göndererek yanmasını sağlıyoruz.
  • delay(greenDuration);: Yeşil ışığın yanması için belirlenen süre kadar bekliyoruz.
  • digitalWrite(greenLedPin, LOW);: Süre dolunca yeşil ışığı söndürüyoruz.
  • Aynı mantık, sırasıyla sarı ve kırmızı ışık için de uygulanır.

Bu kod sayesinde, trafik lambanız yeşil, sonra sarı, sonra kırmızı ve tekrar sarı yanarak sürekli bir döngü oluşturur.

Kodu Yükleme

  1. Arduino'nuzu USB kablosuyla bilgisayarınıza bağlayın.
  2. Arduino IDE'de Araçlar > Kart > Arduino Uno'yu ve doğru COM Port'u seçtiğinizden emin olun.
  3. Kodu yükleyin ve minyatür trafik lambanızın çalışmaya başladığını görün.

Bu proje, Arduino ile mantıksal sıralama ve zamanlamanın gücünü basit bir örnekle gösteriyor. Bu temel prensipleri kullanarak, gelecekte daha karmaşık sıralı otomasyon sistemleri tasarlayabilirsiniz. Belki de bir sonraki projenizde, yaya geçidi düğmesi ekleyerek trafik lambanızın işlevselliğini artırırsınız!