Bu yazımızda Arduino ile Trafik Işıkları için program kodlayıp devre kurulumunu yapacağız. Arduino ile Trafik lambası projesi, Arduino ile Trafik Sinyalizasyon projesi de diyebiliriz.
*Gerekli Malzemelerden Başlayalım.
- Breadboard (Devre Tahtası)
- LED (Kırmızı, Sarı, Yeşil)
- 330 Ω Direnç
- Jumper Kablo
- Arduino
Arduino ile Trafik Işıkları Devresi ve Programı

Şimdi öncelikle devremizi kuralım.
Kırmızı Led’in eksi(katot yada kısa bacak) bacağına 330ohm’luk direnci bağlayalım ve direcin diğer bacağını GND’ye bağlayalım. Led’in artı(anot yada uzun bacak) bacağını ise Arduino’nun 4 nolu dijital pinine bağlayalım.
Sarı Led’in eksi bacağına 330ohm’luk direnci bağlayalım ve direcin diğer bacağını GND’ye bağlayalım. Led’in artı bacağını ise Arduino’nun 3 nolu dijital pinine bağlayalım.
Yeşil Led’in eksi bacağına 330ohm’luk direnci bağlayalım ve direcin diğer bacağını GND’ye bağlayalım. Led’in artı bacağını ise Arduino’nun 2 nolu dijital pinine bağlayalım.
Devremiz bu kadar, oldukça basit. Şimdi kodlamaya geçelim.
Burada bir açıklama yapmak istiyorum. Trafik ışıklarını kendi isteğimize göre değişik şekillerde çalıştırabiliriz. Benim programlamak istediğim trafik ışığı şu şekilde çalışıyor.
- Önce Kırmızı led yanıyor ve yanık konumda 8 saniye bekliyor.
- 8 saniye sonunda Sarı led de yanıyor ve 2 saniye yanık durumda bekliyor. (Bu durumda kırmızı ve sarı 2 saniye beraber yanıyor.)
- Bu 2 saniyeden sonra ise kırmızı ve sarı led sönüyor. Hemen ardından yeşil led yanıyor ve yanık konumda 8 saniye bekliyor.
- 8 saniye sonunda Sarı led de yanıyor ve 2 saniye yanık durumda bekliyor. (Bu durumda yeşil ve sarı 2 saniye beraber yanıyor.)
- Bu 2 saniyeden sonra ise yeşil ve sarı led sönüyor.
- Yukarıdaki işlemler loop fonksiyonu ile sürekli olarak tekrar ediyor.
#define kirmiziLed 4 //Kırmızı ledin bağlı olduğu 4 nolu pin "kirmiziLed" olarak isimlendirildi.
#define sariLed 3 //Sarı ledin bağlı olduğu 3 nolu pin "sariLed" olarak isimlendirildi.
#define yesilLed 2 //Yeşil ledin bağlı olduğu 2 nolu pin "yesilLed" olarak isimlendirildi.
void setup() { //Ön ayarlar için kullandığımız fonsiyon
pinMode(kirmiziLed,OUTPUT);//kirmiziLed isimli pin çıkış sinyali üretecek
pinMode(sariLed,OUTPUT);//sariLed isimli pin çıkış sinyali üretecek
pinMode(yesilLed,OUTPUT); //yesilLed isimli pin çıkış sinyali üretecek
}
void loop() { // içerisindeki komutları sürekli olarak tekrar eder.
digitalWrite(kirmiziLed,HIGH); //Kırmızı ledi yak
delay(8000); //8000ms(8 sn) bekle
digitalWrite(sariLed,HIGH);//Sarı ledi yak
delay(2000); //2000ms(2 sn) bekle
digitalWrite(kirmiziLed,LOW); //Kırmızı ledi söndür
digitalWrite(sariLed,LOW); //Sarı ledi söndür
digitalWrite(yesilLed,HIGH); //Yeşil ledi yak
delay(8000); //8000ms(8 sn) bekle
digitalWrite(sariLed,HIGH); //Sarı ledi yak
delay(2000); //2000ms(2 sn) bekle
digitalWrite(yesilLed,LOW); //Yeşil ledi söndür
digitalWrite(sariLed,LOW); //Sarı ledi söndür
}
PROGRAM ADIMLARI
ADIM 1:
#define kirmiziLed 4 //Kırmızı ledin bağlı olduğu 4 nolu pin "kirmiziLed" olarak isimlendirildi.
#define sariLed 3 //Sarı ledin bağlı olduğu 3 nolu pin "sariLed" olarak isimlendirildi.
#define yesilLed 2 //Yeşil ledin bağlı olduğu 2 nolu pin "yesilLed" olarak isimlendirildi.#define kirmiziLed 4 Burada yapılan işlemde; 4 numaralı pine kirmiziLed ismini veriyorum. Bu işlemden sonra 4 numaralı pin artık kirmiziLed isminde kullanılacak. Böylece kodumuz daha anlaşılır olacak.
#define sariLed 3 Burada yapılan işlemde; 3 numaralı pine sariLed ismini veriyorum. Bu işlemden sonra 3 numaralı pin artık sariLed isminde kullanılacak.
#define yesilLed 2 Burada yapılan işlemde; 2 numaralı pine yesilLed ismini veriyorum. Bu işlemden sonra 2 numaralı pin artık yesilLed isminde kullanılacak.
ADIM 2:
void setup() { //Ön ayarlar için kullandığımız fonsiyon
pinMode(kirmiziLed,OUTPUT);//kirmiziLed isimli pin çıkış sinyali üretecek
pinMode(sariLed,OUTPUT);//sariLed isimli pin çıkış sinyali üretecek
pinMode(yesilLed,OUTPUT); //yesilLed isimli pin çıkış sinyali üretecek
}void setup() Arduino çalışmaya başladığında ilk olarak bu fonksiyonunu okur ve ön ayarları yapar.
pinMode(kirmiziLed, OUTPUT); komutu ile kirmiziLed pinini OUTPUT(Sinyal çıkışı) olarak ayarladık. Çünkü kirmiziLed(4 no’lu pin) çıkış sinyali üretecek, yani kırmızı ledi yakıp söndürecek.
pinMode(sariLed, OUTPUT); komutu ile sariLed pinini OUTPUT(Sinyal çıkışı) olarak ayarladık. Çünkü sariLed(3 no’lu pin) çıkış sinyali üretecek, yani sarı ledi yakıp söndürecek.
pinMode(yesilLed, OUTPUT); komutu ile yesilLed pinini OUTPUT(Sinyal çıkışı) olarak ayarladık. Çünkü yesilLed(2 no’lu pin) çıkış sinyali üretecek, yani yeşil ledi yakıp söndürecek.
ADIM 3:
void loop() { // içerisindeki komutları sürekli olarak tekrar eder.
digitalWrite(kirmiziLed,HIGH); //Kırmızı ledi yak
delay(8000); //8000ms(8 sn) bekle
digitalWrite(sariLed,HIGH);//Sarı ledi yak
delay(2000); //2000ms(2 sn) bekle
digitalWrite(kirmiziLed,LOW); //Kırmızı ledi söndür
digitalWrite(sariLed,LOW); //Sarı ledi söndür
digitalWrite(yesilLed,HIGH); //Yeşil ledi yak
delay(8000); //8000ms(8 sn) bekle
digitalWrite(sariLed,HIGH); //Sarı ledi yak
delay(2000); //2000ms(2 sn) bekle
digitalWrite(yesilLed,LOW); //Yeşil ledi söndür
digitalWrite(sariLed,LOW); //Sarı ledi söndür
}Loop() fonksiyonu Arduino çalıştığı sürece, içerisindeki komutları sürekli olarak tekrar eder.
- digitalWrite(kirmiziLed, HIGH); komutu kirmiziLed pinin HIGH olasını yani yanmasını sağlıyor.
- delay(8000); komutu 8 saniye bekleme sağlıyor.
- digitalWrite(sariLed, HIGH); komutu sariLed pinin HIGH olasını yani yanmasını sağlıyor.
- delay(2000); komutu 2 saniye bekleme sağlıyor.
- digitalWrite(kirmiziLed, LOW); komutu kirmiziLed pinin LOW olasını yani sönmesini sağlıyor.
- digitalWrite(sariLed, LOW); komutu sariLed pinin LOW olasını yani sönmesini sağlıyor.
- digitalWrite(yesilLed, HIGH); komutu yesilLed pinin HIGH olasını yani yanmasını sağlıyor.
- delay(8000); komutu 8 saniye bekleme sağlıyor.
- digitalWrite(sariLed, HIGH); komutu sariLed pinin HIGH olasını yani yanmasını sağlıyor.
- delay(2000); komutu 2 saniye bekleme sağlıyor.
- digitalWrite(yesilLed, LOW); komutu yesilLed pinin LOW olasını yani sönmesini sağlıyor.
- digitalWrite(sariLed, LOW); komutu sariLed pinin LOW olasını yani sönmesini sağlıyor.
Arduino Proje dosyasını buradan indirebilirsiniz.


Reply