Projenin Amacı ve Akış Mantığı
Bu projenin temel amacı, Arduino'nun dijital pinlerini kullanarak, üç farklı renkteki LED'i belirli bir sıra ve zamanlama dahilinde kontrol etmektir. Kontrol ettiğimiz döngü, araçlar için geçerli olan gerçek trafik lambası protokolünü birebir yansıtmaktadır:
Trafik Akış Döngüsü (5 Adım)
- Kırmızı (Sadece Kırmızı Yanar - Uzun Süre)
- Kırmızı + Sarı (Kırmızıya Sarı Eşlik Eder - Kısa Süre, Kalkışa Hazırlık)
- Yeşil (Sadece Yeşil Yanar - Uzun Süre)
- Sarı (Sadece Sarı Yanar - Kısa Süre, Durmaya Hazırlık)
- Kırmızı (Döngü Başa Döner)
Zaman Yönetimi (Delay)
Projede kullanılan delay() fonksiyonları, her trafik durumunun ne kadar süreceğini milisaniye cinsinden belirler. Bu hassas zamanlamalar, simülasyonun gerçekçiliği için hayati önem taşır.
I. Gerekli Malzemeler ve Detaylı Devre Kurulumu
Bu projeyi gerçekleştirmek için ihtiyacınız olan temel elektronik bileşenler ve bağlantı detayları aşağıdadır:
- Arduino Uno: Projenin beyni.
- 3 Adet LED: (1x Kırmızı, 1x Sarı/Turuncu, 1x Yeşil)
- 3 Adet 220 Ohm Direnç: LED'lerin ömrünü korumak için her LED'e seri bağlanmalıdır.
- Breadboard (Devre Tahtası) ve Jumper Kabloları: Bağlantıları lehimleme yapmadan gerçekleştirmek için.
Devre Kurulumu Adım Adım
LED'ler, polarize bileşenlerdir; yani, akımın akış yönü önemlidir. Uzun bacak (anot), pozitif (+) uca (Arduino Dijital Pin), kısa bacak (katot) ise negatif (-) uca (Arduino GND) bağlanmalıdır. Direnç, daima Anot tarafına (pozitif akım yoluna) seri bağlanmalıdır.
Bağlantı Detayları (Ayrıntılı)
- Kırmızı LED: Uzun Bacak $\rightarrow$ 220 Ohm Direnç $\rightarrow$ Arduino Dijital Pin 10
- Sarı LED: Uzun Bacak $\rightarrow$ 220 Ohm Direnç $\rightarrow$ Arduino Dijital Pin 9
- Yeşil LED: Uzun Bacak $\rightarrow$ 220 Ohm Direnç $\rightarrow$ Arduino Dijital Pin 8
- Ortak Toprak (GND): Tüm LED'lerin Kısa Bacakları (Katot) $\rightarrow$ Breadboard üzerindeki ortak eksi hattı $\rightarrow$ Arduino GND Pini
II. Kodlama ve Sıralı Otomasyon Algoritması
Kod, öncelikle pinleri tanımlayacak, setup() kısmında çıkış olarak ayarlayacak ve ardından loop() döngüsünde 5 adımlı trafik akışını sırasıyla yürütecektir.
1. Arduino Program Kodu (Küçük Harf ve Sadeleştirilmiş)
2. Detaylı Komut Açıklamaları
- const int redled = 10;: Pin numaralarını kolay anlaşılır değişken isimleriyle tanımlamak, kodun yönetimini ve ilerideki değişiklikleri kolaylaştırır. Arduino, bu komutu küçük harfle de doğru bir şekilde yorumlar.
- void setup(): Bu kısım, Arduino'ya "Ben bu pinleri (8, 9, 10) elektrik sinyali göndermek için kullanacağım (OUTPUT)" dememizi sağlar. Başlangıçta tüm ışıkların kapalı olması daima iyi bir programlama pratiğidir.
- digitalwrite(redled, high): Bu, pinden +5V (yüksek voltaj) göndererek LED'in yanmasını sağlar. digitalwrite(redled, low) ise 0V (düşük voltaj) göndererek LED'i söndürür.
- delay(redtime): Bu komut, Arduino'yu belirtilen süre (5000 milisaniye = 5 saniye) boyunca duraklatır. Bu süre içinde lambaların durumu değişmez. Bu, trafik durumlarının süresini belirleyen temel mekanizmadır.
Diğer Projeler
Bu proje ile sıralı programlama ve zamanlama yönetiminde ustalaştınız. Şimdi diğer projelere geçebilirsiniz.
Devam Edin