#include <elapsedMillis.h>
elapsedMillis elapsedTime_1;
elapsedMillis elapsedTime_2;
elapsedMillis elapsedTime_3;
elapsedMillis elapsedTime_4;
elapsedMillis elapsedTimeLED[] = {elapsedTime_1, elapsedTime_2, elapsedTime_3, elapsedTime_4}; //Her led icin ayri bir elapsedMillis nesnesi olustur ve kolay kullanim icin ARRAY a at
unsigned int navLED[] = {2,3,4,5}; // LED pinleri
unsigned int intervalLED[] = {100,20,60,450}; // LEDlerin zaman degerleri
unsigned int iCntLED[] = {0, 0, 0, 0}; // Yanip sonme deseninin, hangi sirasinda kaldigimizi hatirlamak icin kullanilacak degisken
boolean ptnLED[][16] = { {1,1,1,1,0,1,0,1,0,1,1,0,0,1,0,1},
{0,1,1,0,0,1,0,1,0,1,1,0,0,1,1,0},
{1,0,1,0,0,1,0,1,0,1,1,0,1,1,0,0},
{0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1} }; // Sira ile tum LED'lerin desenleri buraya yazilir, bu ornekte, her LED icin 16 farkli durum belirlenmis durumda
void setup() {
int i;
for (i = 0; i<4; i++){
pinMode(navLED[i], OUTPUT); // LED pini cikis olarak ayarlaniyor
elapsedTimeLED[i] = 0; // ElapsedMilis nesnesine 0 degeri verilerek kronometre baslatiliyor
}
}
void loop() {
// Bir seyler yap ...
// Bir seyler yap ...
// Bir seyler yap ...
// Bir seyler yap ...
// Bir seyler yap ...
ledControl(); //LED'in yanip sonmesini kontrol eden fonksiyon, her dongude cagrilip, gerekli zaman gecmisse islem yapiliyor.
}
void ledControl() {
int i; // Sadece bu dongu icinde gecerli olan ve hangi LED'i kontrol edecegimizi gosterecek degisken
int j; // Sadece bu dongu icinde gecerli olan ve hangi deseni gosterecegimizi kontrol eden degisken
for (i = 0; i<4; i++){ // Tum LED'leri sıra ile cagir
if (elapsedTimeLED[i] > intervalLED[i]) { // Gerekli zaman gecmismi diye kontol et
j = iCntLED[i]; // Kullanilacak desen sirasini belirle
digitalWrite(navLED[i], ptnLED[i][j]); // Gerekli zaman gecmisse, LED'e ilgili yanip sonme desenini ata, 1 iken yaniyor, 0 iken kapali
iCntLED[i] += 1; // Bir sonraki desene gecmek izin hazirlik yap
if (iCntLED[i] >= 16 ) {
iCntLED[i] = 0; // Bir deseni ardisik olarak 16 fakli adimdan olusturdugumuz icin, 16 rakamina ulasinca, desen sirasini sifirla
}
elapsedTimeLED[i] = 0; // ElapsedMilis nesnesine 0 degeri ver ve kronometreyi bastan baslat
}
}
}