İçeriğe geçmek için "Enter"a basın

Sıralı Led Yakma – For Döngüsü

KARA ŞİMŞEK ve FOR DÖNGÜSÜ

 

Birazda nostalji takılalım…

İstenen

Arduino ile altı adet ledi soldan sağa ve sağdan sola sıralı olarak yakıp söndürme…

Gerekli Malzemeler

  • 1 adet Arduino Uno
  • 6 Adet Led
  • 6 Adet 220 Ohm direnç (Kırmızı-Kırmızı-Kahverengi)
  • Bağlantı kabloları
  • Breadboard

Bağlantı Şeması


Proje Arduino Kodu

int ledler[] = {5,6,7,8,9,10};

void setup() {
for(int i = 0; i < 6; i++){pinMode(ledler[i], OUTPUT);}
}

void loop() {
for (int i = 0; i < 6; i++) {
digitalWrite(ledler[i], HIGH);
delay(150);
digitalWrite(ledler[i], LOW);
}
for (int i = 5; i > -1; i–) {
digitalWrite(ledler[i], HIGH);
delay(150);
digitalWrite(ledler[i], LOW);
}
}

Kazanımlar

“For Döngüsü” arduino programlamasında en çok kullandığımız döngülerden biridir. Tekrarlama işleminin ne kadar olduğu belli olan uygulamalarda kullanılır. Daha net bir ifade ile for döngüsü “Tekrarlanması gereken işlemleri artan yada azalan olarak kontrol etmemizi sağlar.”

for (ilk değer; koşul; artır yada azalt){
kontrol edilecek işlemler…
}

Projemizin ilk satırında yer alan ” int ledler[] = {5,6,7,8,9,10}; ” integer değişken veri tipinde altı elemanlı ledler adında bir dizi oluşturduk. integer; çokca kullandığımız ve pozitif 32767 sayı barındıran bir değişken veri tipidir. Kod içerisinde “int” olarak belirtilir. Diziler ise; bir değişken adı altında birden fazla değer saklayabildiğimiz değişken türüdür. Bu satırda biz ledlerimizi pinlere tanımlarken altı değişken yapmak yerine, bir dizi içerisinde bağlıyacağımız pinleri belittik. Dizinin ilk elemanı “0” olup değeri “5” dir.

for(int i = 0; i < 6; i++){pinMode(ledler[i], OUTPUT);}

Setup bölümünde yer alan for döngüsünü kullandığımız bu satırda ise; “0” dan başlayıp “6”ya kadar (6 dahil değil) sayıların artmasını söyledik. Yani döngü 6 kere {} ler içerisini okuyacak. Bu şekilde pinlerin modlarını sıra ile çıkış olarak ayarladı.

Loop bölümündeki ilk for döngüsü;

for (int i = 0; i < 6; i++) {
digitalWrite(ledler[i], HIGH);
delay(150);
digitalWrite(ledler[i], LOW);
}
Bu döngüde yine 0’dan 6’ya kadar süslü parantezler içerisini döndürerek ledleri artan sırada yakacak. Bunu nasıl yapıyor. Nasıl yaptığını bilmek işi çözmek anlamına geliyor.
Şimdi; döngüde öncelikle veri tipi int olan “i” adında ve değeri “0” olan bir değişken tanıladık. Döngünün şartını ise; “i” değişkenini 6’ya kadar arttır dedik. Şart sağlanana kadar döngü süslü parantez içerisini okuyup başa döner. “i” değişkeni 6 olduğunda, şart bozulduğu için döngüden çıkar. Burada i” değişkeni sırasıyla  0,1,2,3,4,5 değerlerini alır. Dolayısıyla, süslü parantezler içerisindeki “i” değişkenleride sırasıyla aynı değeri alır. Bu şekilde ledler sıra ile yanar ve sönerler.
Loop bölümündeki döngüde de aynı olaylar olur. Sadece +5 ile -1 arasında değerleri azalan olarak döndürür. Bu sayede ledler tersten yanıp söner. Bekleme süresini (delay) ben 150 milisaniye olarak ayarladım. Siz istediğiniz şekilde değiştirin.
Püf Nokta: Pinler sıralı olmalıdır. Başlangıç pin bağlantısını siz 2,3 yada 4 yaparak tekrar deneyin. Neler değişmesi gerekiyor tecrübe edin. Bu sayede for döngüsü kavramını daha iyi anlarsınız.
 
Kolay gelsin. Teşekkürler.

İlk yorum yapan siz olun

Bir cevap yazın