Arduino ile Trafik Lambası

Bu başlık altında daha önce geliştirdiğimiz Blink Pattern (Çoklu Blink) uygulamasının kodlarında değişiklik yaparak, uygulamayı trafik lambasına dönüştürmeyi sağlayacağız. Uygulama için ihtiyacımız olan devre elemanları aşağıdaki gibidir:

  • LED x 3 (Red, Yellow ve Green)
  • Direnç (330 Ohm) x 3

Bu bileşenleri temin ettikten sonra devremizi aşağıdaki gibi oluşturalım.

Yukarıda görülen devrede bağlantı işlemi aşağıdaki gibi yapılmıştır.

  • Kırmızı LED’in Anot yani (+) bacağı 12 nolu dijital pine bağlandı.
  • Sarı LED’in Anot yani (+) bacağı 11 nolu dijital pine bağlandı.
  • Yeşil LED’in Anot yani (+) bacağı 10 nolu dijital pine bağlandı.

Devremizin kodu aşağıdaki gibidir.


int redLed = 12;
int yellowLed = 11;
int greenLed = 10;

void setup() {

 pinMode(redLed, OUTPUT);
 pinMode(yellowLed, OUTPUT);
 pinMode(greenLed, OUTPUT);

}

void loop() {

 digitalWrite(redLed, HIGH);
 delay(7000);

 digitalWrite(yellowLed, HIGH);
 delay(2000);

 digitalWrite(redLed, LOW);
 digitalWrite(yellowLed, LOW);
 digitalWrite(greenLed, HIGH);
 delay(5000);

 digitalWrite(greenLed, LOW);
 digitalWrite(yellowLed, HIGH);
 delay(1000);

 digitalWrite(yellowLed, LOW);

}

Kodların açıklaması aşağıdaki gibidir:


int redLed = 12;
int yellowLed = 11;
int greenLed = 10;

Yukarıda int tipinde 3 adet değişken tanımladık. Değişkenlere sırasıyla LED’lerimizin (+) bacağını bağladığımız dijital pinlerin sayısal değerlerini değer olarak atadık.


pinMode(redLed, OUTPUT);
pinMode(yellowLed, OUTPUT);
pinMode(greenLed, OUTPUT);

pinMode komutu, pin ve mode olmak üzere iki parametre almaktadır. Pin parametresi, modunu ayarlamak istediğimiz pin bilgisini; mode parametresi ise belirtilen pinin giriş(INPUT) veya çıkış (OUTPUT) olarak ayarlanmasını sağlamak için kullanılır. Yukarıda verilen üç pinMode komutu ile 12, 11 ve 10 nolu pinler çıkış olarak ayarlanmıştır.

loop metodunda bulunan kodların açıklaması ise aşağıdaki gibidir.


digitalWrite(redLed, HIGH);
delay(7000);

Bu kod ile öncelikle Kırmızı led yanar. Yanma işlemi 7 saniye devam eder.

—————————————


digitalWrite(yellowLed, HIGH);
delay(2000);

Kırmızı led’ten sonra sarı led’in yanması sağlanır. Bu işlem iki saniye devam eder. Bu arada kırmızı ledin yanması devam eder.

—————————————


digitalWrite(redLed, LOW);
digitalWrite(yellowLed, LOW);
digitalWrite(greenLed, HIGH);
delay(5000);

Bu kod bloğu ile kırmızı ve sarı led söner, yeşil ledin ise yanması sağlanır. Bu işlem 5 saniye devam eder.

—————————————


digitalWrite(greenLed, LOW);
digitalWrite(yellowLed, HIGH);
delay(1000);

Yukarıdaki kod bloğu ile öncelikle yeşil led söndürülür, sarı ledin ise yanması sağlanır. Bu işlem 1 saniye sürer.

—————————————


digitalWrite(yellowLed, LOW);

Yukarıdaki kod ile sarı ledin sönmesi sağlanır. Bu son satırla birlikte loop döngüsü tekrar başa döner ve kırmız ledin yanması sağlanarak işlemlerin tekrar yapılması sağlanır.

Bu uygulama hakkında ayrıntılı bilgiler edinmek için kanalımda yayınladığım şu videoyu izlemenizi tavsiye ediyorum.