3  butona doğru sırayla  basılmadığında kırmızı ledi yakar. Sayac değişkeni herhangi bir butona basıldığında 1 artacaktır. Sayac=3 olunca kırmızı ya da yeşil led yanar ve program başa döner. Her buton kontrolünden sonra delay komutu kullanıldığına dikkat ediniz. Buton arkı söndürme işlemi denen bu olay çok önemlidir. Kulanılmadığında özellikle sayaç olarak kullanılan işlemlerde butona her basışta değerin birer birer artması gerekirken üçer beşer artacaktır. Değişken kullanımını ve if komutunu öğrenmek için iyi bir çalışmadır.

3 butonlu

/* 27.11.2014  www.robotkursu.com

3 butona buton2, buton1, buton3 sırasıyla basıldığında

led_dogru isimli ledi yakan,

yanlış sırada basıldığında  led_hata isimli ledi yakan

programdır.

if komutunu kavramak için güzel bir çalışmadır.

Öncelikle kendiniz yazmaya çalışmalısınız.

*/

int led_dogru=2;    // yeşil lede led_dogru ismini verdik

int led_hata=3;

int buton1=8;

int buton2=9;

int buton3=10;

int a=0;int b=0;int sayac=0;

void setup ()

{

pinMode (led_dogru,OUTPUT);

pinMode (led_hata,OUTPUT);

pinMode (buton1,INPUT);

pinMode (buton2,INPUT);

pinMode (buton3,INPUT);

}

void loop ()

{

digitalWrite(led_hata,0);digitalWrite(led_dogru,0);

if (digitalRead(buton1)==0) { a=0; sayac=sayac+1;}

if (digitalRead(buton2)==0) { a=1; sayac=sayac+1;} // basılan birinci buton doğru

if (digitalRead(buton3)==0) { a=0; sayac=sayac+1;}

delay(150);  // bu gecikme komutunu kulanmazsak butona 2-3 kere basılmış gibi algılanacaktır.

if ((a==1)&(digitalRead (buton1)==0))

{  delay(50); b=1;  }              // basılan 2. buton da doğru

if ((b==1)&(digitalRead (buton3)==0))

{

delay(50); digitalWrite(led_dogru,1);delay(1000); // basılan 3. buton da dogru

a=0;b=0;sayac=0;

}

//———– YANLIŞ HAMLE ——————————-

if ((sayac==3)&(b==0))

{digitalWrite(led_hata,1);delay(500);a=0;b=0; sayac=0;  }

}