Arduino’da Tek Buton İle Çoklu İşlem

  • 07 Nisan 2016
  • 2.781 kez görüntülendi.
Arduino’da Tek Buton İle Çoklu İşlem

// ##################################################################################
// # Yazar : Sabri ÜNAL – Mekatronik Teknik Öğretmeni
// # Tarih : 07.04.2016
// # Versiyon : v1.0
// ##################################################################################
/*

SENARYO:
Butona 1. kez basılınca 1. led ışık verecek
Butona 2. kez basılınca 1. led ve 2. led ışık verecek
Butona 3. kez basılınca 3. led ışık verecek
Butona 4. kez basılınca program başa dönecek…

*/
// ##################################################################################
//Pinlere isim veriliyor

const int buton = 2;
const int led1 = 3;
const int led2 = 4;
const int led3 = 5;

int butondurumu = 0;
int deger = 0;
void setup()
{

//Pinlerin giriş – çıkış tanımlaması yapılıyor
pinMode(buton, INPUT);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);

}

void loop()
{
//buton değeri buton durumu değişkenine yazılıyor
butondurumu = digitalRead(buton);

//Butona basıldı ve deger değişkeni 0 ise
if ( (butondurumu == HIGH) && (deger == 0) )

{
// 1. kez basılınca yapılacaklar yazılabilir.

digitalWrite(led1, HIGH);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
deger=1;
delay(10);
}

//Buton bırakıldı ve deger değişkeni 1 ise
if ( (butondurumu == LOW) && (deger == 1) )

{

// 1. kez basıp bırakınca yapılacaklar yazılabilir.

deger=2;
delay(10);
}

//Butona basıldı ve deger değişkeni 2 ise
if ( (butondurumu == HIGH) && (deger == 2) )

{
// 2. kez basılınca yapılacaklar yazılabilir.

digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, LOW);
deger=3;
delay(10);
}

//Buton bırakıldı ve deger değişkeni 3 ise
if ( (butondurumu == LOW) && (deger == 3) )

{

// 2. kez basıp bırakınca yapılacaklar yazılabilir.

deger=4;
delay(10);
}

//Butona basıldı ve deger değişkeni 4 ise
if ( (butondurumu == HIGH) && (deger == 4) )

{
// 3. kez basılınca yapılacaklar yazılabilir.

digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, HIGH);
deger=5;
delay(10);
}

//Buton bırakıldı ve deger değişkeni 5 ise
if ( (butondurumu == LOW) && (deger == 5) )

{

// 3. kez basıp bırakınca yapılacaklar yazılabilir.

deger=6;
delay(10);
}

//Butona basıldı ve deger değişkeni 6 ise
if ( (butondurumu == HIGH) && (deger == 6) )

{
// 4. kez basılınca yapılacaklar yazılabilir.

digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);

deger=7;
delay(10);
}

//Buton bırakıldı ve deger değişkeni 7 ise
if ( (butondurumu == LOW) && (deger == 7) )

{

// 4. kez basıp bırakınca yapılacaklar yazılabilir.

deger=0;
delay(10);
}

}

// ##################################################################################
/*
www.sabriunal.com
*/
// ##################################################################################