Arduino ile Led Yakma

Bu yazımızda Arduino Led Kontrolü uygulamaları kodlayıp devre kurulumunu yapacağız. Bu konuyu Arduino ile led yakmak isteyen herkes için işlemleri adım adım açıklayacağım.

    *Gerekli Malzemelerden Başlayalım.

Breadboard, led, direnç, arduino, jumper kablo konularında yeterince bilgi sahibi değilseniz, öncelikle o konularla ilgili yazılarımızı okumanızı tavsiye ederim.

Blink Örneği

Öncelikle Arduino IDE içerisinde hazır olarak gelen Blink Örneği üzerinden led yakma işlemini anlatalım. Bu örnek Arduino üzerindeki Led’i 1 saniye aralıklarla yakar ve söndürür.

Arduino IDE programında File->Examples->Basics->Blink yolunu izleyerek örneği açabilirsiniz.

void setup() {
  pinMode(LED_BUILTIN, OUTPUT);
}

void loop() {
  digitalWrite(LED_BUILTIN, HIGH);
  delay(1000);                      
  digitalWrite(LED_BUILTIN, LOW);   
  delay(1000);                      
}

PROGRAM ADIMLARI

ADIM 1:

void setup() {
  pinMode(LED_BUILTIN, OUTPUT);
}

void setup() bir fonksiyondur. Arduino çalışmaya başladığında ilk olarak Setup fonksiyonunu okur. Bu fonksiyonun temel görevi, yapacağımız proje için Arduino’nun ön ayarların yapılmasını yani kurulumunun yapılmasını sağlamaktır.

pinMode(LED_BUILTIN, OUTPUT); komutu LED_BUILTIN isimli pini OUTPUT(Sinyal çıkışı) yapacak şekilde ayarlar. pinMode(); komutu ise bir pinin veri okuyacak şekilde mi(INPUT) yoksa sinyal yollayacak şekilde mi(OUTPUT) çalışacağını ayarlamak için kullanılır. Pin hangi modda çalışacaksa o seçilir.

LED_BUILTIN

LED_BUILTIN ismiyle Arduino yazılımında özel olarak tanımlanmış bir pindir. Bu pin 13 numaralı dijital pine bağlıdır. Aynı zamanda seri bir dirençle Arduino üzerinde bulunan bir led’e bağlıdır. Bu sayede direnç, led, breadboard ve jumperkablo olmadan sadece arduino ile led yakma uygulaması yapabilirsiniz.

ADIM 2:

void loop() {
  digitalWrite(LED_BUILTIN, HIGH);
  delay(1000);                      
  digitalWrite(LED_BUILTIN, LOW);   
  delay(1000);                      
}

Loop() fonksiyonu Arduino çalıştığı sürece, içerisindeki komutları sürekli olarak tekrar eder. Yani loop bir sonsuz döngüdür. Loop fonksiyonunun içerisinde yazacağımız komutlar, sürekli olarak çalışır.

digitalWrite() komutu istenilen pine digital sinyal göndermek için kullanılır.

Bu örnekte digitalWrite(LED_BUILTIN, HIGH); komutu ile LED_BUILTIN(yani 13 nolu dijital pin) pinine HIGH(yani 1, voltaj var, ledi yak) bilgisi yollamış oluyoruz. Arduino üzerindeki Led’in yandığını görürüz.

delay() komutu belirlenen süre kadar Arduino’yu bekletir yani duraksatır. delay(1000) yazarak Arduino’nun 1000ms yani 1sn beklemesini sağlıyoruz.

digitalWrite(LED_BUILTIN, LOW); komutu ile LED_BUILTIN pini LOW(yani 0, voltaj yok, ledi söndür) bilgisi yollamış oluyoruz. Arduino üzerindeki Led’in söndüğünü görürüz.

delay(1000) Arduino’nun yine 1000ms yani 1sn beklemesini sağlıyoruz.

Aşağıda programın çalışmasını, Arduino’nun üzerindeki ledin yandığını görebilirsiniz.

builtin-led

Sırasıyla 2 Ayrı Led’i Yakma Örneği

Şimdi de kendi örneğimizi yazalım ve devremizi kuralım. Bu örnekte Arduino üzerindeki Led’i değil de kendi istediğimiz 2 pine bağlı 2 ayrı led’i yakmayı öğreneceğiz.

#define led1 2
#define led2 3

void setup() {
  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);
}

void loop() {
  digitalWrite(led1, HIGH);  //Birinci led yandı.
  delay(1000);               //1 sn bekledi      
  digitalWrite(led1, LOW);   //Birinci led söndü.
  delay(1000);               //1 sn bekledi         
  digitalWrite(led2, HIGH);  //İkinci led yandı.
  delay(1000);               //1 sn bekledi      
  digitalWrite(led2, LOW);   //İkinci led söndü.
  delay(1000);               //1 sn bekledi         
}

PROGRAM ADIMLARI

ADIM 1:

#define led1 2
#define led2 3

Bu örnekte Arduino’nun 2. ve 3. dijital pinlerini kullanarak 2 adet led’i yakmayı planladım(İsterseniz 2,3,4,5,6,7,8,9,10,11,12,13 nolu pinlerden herhangi ikisini kullanabilirsiniz veya daha fazla led yakabilirsiniz). #define led1 2 Burada yapılan işlem Led’leri bağlayacağımız pinleri isimlendirmek. Daha sonra karışıklığa neden olmamak adına 2 numaralı pine led1, 3 numaralı pine led2 ismini veriyorum. Bu işlemden sonra pinleri led1, led2 olarak kullanabiliriz.

ADIM 2:

void setup() {
  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);
  }

Blink örneğinde anlatığım gibi void setup() bir fonksiyondur. Arduino çalışmaya başladığında ilk olarak Setup fonksiyonunu okur. 

pinMode() komutu ile led1 ve led2 pinlerini(2 ve 3 nolu pinler) OUTPUT(Sinyal çıkışı) yapacak şekilde ayarladık. Çünkü bu pinlerin göndereceği sinyal ledleri yakacak.

ADIM 3:

void loop() {
  digitalWrite(led1, HIGH);  //Birinci led yandı.
  delay(1000);               //1 sn bekledi      
  digitalWrite(led1, LOW);   //Birinci led söndü.
  delay(1000);               //1 sn bekledi         
  digitalWrite(led2, HIGH);  //İkinci led yandı.
  delay(1000);               //1 sn bekledi      
  digitalWrite(led2, LOW);   //İkinci led söndü.
  delay(1000);               //1 sn bekledi         
}

Yine Blink örneğinde olduğu gibi Loop() fonksiyonu Arduino çalıştığı sürece, içerisindeki komutları sürekli olarak tekrar eder.

digitalWrite(led1, HIGH); komutu ile led1 yakılıyor, delay(1000); 1 sn bekleme sağlıyor ardından digitalWrite(led1, LOW); komutu ile led1 söndürülüyor ve delay(1000); 1 sn bekleme sağlıyor.

digitalWrite(led2, HIGH); komutu ile led2 yakılıyor, delay(1000); 1 sn bekleme sağlıyor ardından digitalWrite(led2, LOW); komutu ile led2 söndürülüyor ve delay(1000); 1 sn bekleme sağlıyor.

İsterseniz programda bekleme süresini azaltıp artırabilirsiniz yada daha fazla led kullanabilirsiniz.

arduino-led

Reply