A1, A2 ve A3 girişlerine basıldığında sıfır gönderen butonlar bağlanmıştır.
10,11,12,13 nolu bacaklara 1 gönderilince ışık verecek şekilde LED ler bağlanmıştır.
Bunlardan ikisi kullanılarak aşağıdaki işlemler yapılacak şekilde kodlama oluşturulmuştur.
-Başlangıçta tüm ledler ışık verecek. (kodlar setup fonksiyonuna yazıldı)
-A1 butonuna basılınca ledler sırasıyla 200ms aralıklarla 10,11,12,13 şeklinde sönerek devam edecek. Sonunda tüm ledler sönmüş olacak.
-A2 butonuna basılınca ledler sırasıyla 200ms aralıkla 13,12,11,10 şeklinde ışık verecek. Sonunda tüm ledler ışık vermiş olacak.
-A1 ve A2 butonuna birlikte basılınca ise 4 led birden 5 kez yanıp sönecek. Yanıp sönme aralığı 200ms olacak.

A3 bacağındaki buton ile ilgili işlem yapılmamıştır. Kullanılmadığı için kodlardan silinebilir.

Kod:
int led[] = {10, 11, 12, 13}; //led isminde 4 elemanlı bir dizi tanımlandı ve elemanları atandı.
int i = 0; //tamsayı türünde i değişkeni tanımlandı.
void setup() { 
  // bir kez çalıştırılacak kodlar buraya yazılır.
  pinMode(A1, INPUT); //a1,a2,a3 bacakları giriş yapıldı.
  pinMode(A2, INPUT);
  pinMode(A3, INPUT);
  for (i = 0; i <= 3; i++) { //0 dan 3 e kadar devam eden döngü kuruldu.
    pinMode(led[i], OUTPUT); //led dizisinin i ninci elemanı çağrıldı ve çıkış yapıldı. sırasıyla 10,11,12,13 çağırılır ve çıkış yapılır.
    digitalWrite(led[i], 1); //led dizisinin i ninci elemanı çağrıldı ve 1 gönderildi.  sırasıyla 10,11,12,13 çağırılır ve 1 gönderilir.
  }
}


void loop() {
  int durum1 = digitalRead(A1); //A1 ve A2 bacakları okundu. durum1 ve durum2 değişkenlerine aktarıldı.
  int durum2 = digitalRead(A2);
  //aşağıdaki satırda butona basılıp basılmadığı kontrol ediliyor. Buton basılıncı 0 gönderecek şekilde bağlanmıştı.
  if (durum1 == 0) { //durum1 0 a eşit mi? diye sorduk ve ilk liste parantezleri arasına eşitse yapılacakları yazdık.
    for (i = 0; i <= 3; i++) {  //0 dan 3 e kadar 1 er artım oranı ile sayan for döngüsü kuruldu.
      digitalWrite(led[i], 0); //led dizisinin i ninci elemanı çağırıldı ve 0 gönderildi.
      delay(200); //200ms gecikme
    } //reklam arası:www.ilerikontrol.com
  }
  //yukarıdaki şart doğru değilse program bu şartı ilk şarttan sonra kontrol etsin diye else if deyimi kullanıldı.
  else if (durum2 == 0) { //birinci butona basılmadıysa ikinci butona basıldı mı? ya da durum2 sıfıra eşit mi? butona basınca 0 geliyordu. Unutma ! Neden? Çünkü öyle bağladın!
    for (i = 3; i >= 0; i--) { //3 den 0 a kadar 1 er düşerek sayacak döngü kuruldu.
      //hadi uzun yazalım:Başlangıç değeri 3 olan 0 a eşit ve büyük olduğu müddetçe devam edecek, birer birer azalan döngü kuruldu :)
      digitalWrite(led[i], 1); //led dizisinin i ninci elemanı çağrıldı ve 1 gönderildi.
      delay(200); //200ms gecikme verdik.
    }//reklam arası:www.ilerikontrol.com
  }
  if (durum1 == 0 and durum2 == 0) { //burada aynı anda iki durumda kontrol ediliyor. iki butondan da 0 bilgisi geldi mi? Yani iki butona da basıldı mı?
    //ama and operatörü kullandık. Çünkü ikisi de olsun istiyorum. İkisinden biri olsun isteseydim or operatörü kullanacaktım.
    for (i = 1; i <= 5; i++) { //1 den başlayıp 5 e kadar sayan ve içindeki kodları 1,2,3,4,5 değerlerinde 5 kez tekrar eden döngü kuruldu.
      digitalWrite(10, 1); digitalWrite(11, 1); digitalWrite(12, 1); digitalWrite(13, 1); //tüm ledler ışık versin.
      delay(200); //200 ms beklet.
      digitalWrite(10, 0); digitalWrite(11, 0); digitalWrite(12, 0); digitalWrite(13, 0); //tüm ledler sönsün.
      delay(200); //200 ms beklet. Neyi? Çıkışları koru ! İşlem yapma. Dur ! Ama 200 ms.
    }
  }
}