Daha önce Arduino'da led yakma örneği yapmıştık, ama bu sefer çok sayıda ledi yanyana yakarak bir led ışık hareketi oluşturacağız. 10 adet led'i breadboard üzerinde yanyana önce soldan sağa, sonra da soldan sağa doğru akacak şekilde yakıp söndürecek bir kod yazacağız. Kullanacağımız Arduino component'leri şunlar olacak:
- Arduino Uno R3
- Breadboard
- Dirençler
- 10 adet farklı renklerde led
- 21 adet jumper kablo
Projenin hazırlanma mantığı şu: Breadbooard'un bir tarafına sırasıyla led lambaları ekliyoruz ve tümünün artı bacağına denk gelen kısımdan breadboard'un karşısına birer 220k'lık direnç ekliyoruz.
Proje çalıştığında ise aşağıdaki gibi bir led animasyonu elde etmiş olacağız.
Gelelim kodlara. 10 adet led'i teker teker tanımlamak ve yakıp söndürmek yerine bir dizi (array) tanılmayarak pin'leri tanıtacağız ve yakıp söndürme işlemlerini de bir while döngüsü kullanarak kodlayacağız. Alternatif olarak for döngüsü de kullanılabilir.
Döngünün alacağı değerler ve dolayısıyla kaçıncı dizi elemanı oldukları:
0 1 2 3 4 5 6 7 8 9 8 7 6 5 4 3 2 1 0...
Kodlar:
int ledDizi[] = {2,3,4,5,6,7,8,9,10,11};
void setup() {
for(int i=0; i<10; i++){
pinMode(ledDizi[i], OUTPUT);
}
}
void loop() {
int dongu = 0;
while (dongu < 9)
{
digitalWrite(ledDizi[dongu], HIGH);
delay(100);
digitalWrite(ledDizi[dongu], LOW);
dongu++;
}
while (dongu >= 1)
{
digitalWrite(ledDizi[dongu], HIGH);
delay(100);
digitalWrite(ledDizi[dongu], LOW);
dongu--;
}
}