Arduino Kara Şimşek Uygulaması

Bu uygulamay daha önceki yazımızda temel mantığını anlatmak adına uzun yoldan her bir pine değer göndererek sıralamanın nasıl gerçekleştiğini göstermiştik. Fakat bu uzun ve kullanışsız yolun yerine belirli döngüler ile bu işi hem kolay hem kısa hem de esntetik bir hale getirmiş olacağız. İşte kodlarımız.


const int Led[] = {0, 1, 2, 3, 4, 5};
  
void setup() 
{
   for (int k = 0; k < 6; k++)
      pinMode(Led[k], OUTPUT);
}
void loop() 
{
  for (int k = 0; k < 5; k++) 
{
    digitalWrite(Led[k], HIGH);
    delay(100);
    digitalWrite(Led[k+1], HIGH);
    delay(100);
    digitalWrite(Led[k], LOW);
    delay(200);
  }

  for (int k = 5; k > 0; k--) 
{
    digitalWrite(Led[k], HIGH);
    delay(100);
    digitalWrite(Led[k-1], HIGH);
    delay(100);
    digitalWrite(Led[k], LOW);
    delay(200);
  }
}
Kodun bu hali gayet kısa ve kullanışlı. Çalışma şekli de şu şekilde. Led pinlerini tanımlamak için "Led" adında 6 elemanlı bir dizi kulladık. Yani açacak olursak birinci led için Led1 değilde "Led[0]"
kullandık. Diğerleri de Led[1] , Led[2] diye devam ediyor. Dizilerin kullanma mantığı bu şekilde..

Pinlerimizin Çıkış ayarlarınıda yine bir for döngüsüyle dizinin Led[0]'dan Led[5] elemanına kadar sırasıyla yapıyoruz.

Programımızın çalıştığı ana döngümüzde iste ledlerin sırasıyla yakılıp sndürüldüğü iki farklı for döngüsü var. İlk for döngüsünde daha önce belirlenen bir "k" değişkeni ile ledler ileri yönde sırasıyla yanar. İkinci for döngüsüyle de geri yönde sırasıyla yanacaktır.