Arduino öğrenirken yaptığımız ilk uygulama genellikle tek bir LED'i yakıp söndürmektir. Ancak projemizde çok sayıda LED kullanmak istediğimizde, her bir pini tek tek tanımlamak kodumuzu çok uzatır ve karmaşık hale getirir. Bu rehberde, diziler (array) ve for döngüsü mantığını öğrenerek sadece birkaç satır kodla 6 adet LED'i sırayla nasıl yakıp söndüreceğimizi (yürüyen ışık uygulamasını) öğreneceğiz.
LED'lerinizin zarar görmemesi için mutlaka direnç kullanmalısınız. Tüm LED'lerin kısa (eksi) bacaklarını breadboard üzerindeki mavi (GND) hatta bağlayın. Uzun (artı) bacaklarını ise dirençler üzerinden sırasıyla Arduino pinlerine takın:
| Bileşen (LED) | Arduino Pini |
|---|---|
| 1. LED (Artı Ucu) | Pin 2 |
| 2. LED (Artı Ucu) | Pin 3 |
| 3. LED (Artı Ucu) | Pin 4 |
| 4. LED (Artı Ucu) | Pin 5 |
| 5. LED (Artı Ucu) | Pin 6 |
| 6. LED (Artı Ucu) | Pin 7 |
| Tüm LED'lerin Eksi (-) Uçları | GND (Ortak Hat |

Aşağıdaki kodu doğrudan kopyalayıp Arduino IDE programınıza yapıştırabilirsiniz. Kodun içerisinde yer alan açıklamalar, dizilerin ve döngülerin nasıl çalıştığını anlamanıza yardımcı olacaktır.
// 6 adet LED'in bağlı olduğu pin numaralarını bir liste (dizi) halinde tanımlıyoruz.
int Ledler[] = {2, 3, 4, 5, 6, 7};
void setup() {
// for döngüsü kullanarak listenin 0'dan 5'e kadar olan tüm elemanlarını
// tek tek geziyor ve hepsini OUTPUT (çıkış) olarak ayarlıyoruz.
for(int i = 0; i < 6; i++){
pinMode(Ledler[i], OUTPUT);
}
}
void loop() {
// Döngü içinde sırayla her bir LED'i yakıp, 150 milisaniye bekletip söndürüyoruz.
// Bu işlem sırayla yapıldığı için ışık yürüyor gibi görünecektir.
for(int i = 0; i < 6; i++){
digitalWrite(Ledler[i], HIGH); // LED'i yak
delay(150); // 150 milisaniye bekle
digitalWrite(Ledler[i], LOW); // LED'i söndür
}
}
Eğer bu projede dizi kullanmasaydık, void setup() içinde tam 6 satır pinMode yazmamız gerekecekti. int Ledler[] ifadesiyle bir değişken içinde birden fazla pin numarasını saklamış olduk. for(int i=0; i<6; i++) döngüsü ise bilgisayara şunu söyler: "i değerini 0'dan başlat, 6'dan küçük olduğu sürece her adımda 1 artır ve süslü parantez içindeki işlemi yap." Böylece kodumuz hem çok daha profesyonel hem de kısa kalmış oldu.
Çözüm: LED'lerin yönü bu tarz projelerde çok önemlidir. Yanmayan LED'lerin yönünü ters çevirip (uzun bacağı artıya, kısa bacağı eksiye gelecek şekilde) tekrar takmayı deneyin. Ayrıca kablonun Arduino'da tam olarak doğru pin numarasına (2,3,4,5,6,7) takıldığından emin olun.
Çözüm: Kodun içerisindeki delay(150); komutu ışığın geçiş hızını belirler. Eğer daha yavaş, nostaljik bir yürüyen ışık isterseniz bu değeri delay(300); yapabilir; daha hızlı bir akış isterseniz delay(70); olarak güncelleyebilirsiniz.
Henüz yorum yapılmamış. İlk yorumu siz yapın!