Arduino ile buton kontrollü devrelerin en temellerini göreceğiz. Başlangıç olarak aşağıdaki devreyi kuralım.

7

6

Görüldüğü gibi kırmızı hattı çıkış elemanı olan led’e, sarı hattı ise giriş elemanı olan butona bağladık. Led’e seri bağlı direnç ile led uçlarına düşen gerilimi sınırladık. Butona bağlı dirençle ise butona basılmadığında devrede kararsızlığa neden olmamasını sağladık.

Şimdi aşağıdaki kod ile Arduino’yu programlayacağız. Bu program butona basılı olduğu sürece led’i yakacak, butondan elimizi çektiğimizde led’i söndürecektir.

 


//Buton Uygulaması 1: Butona basıldıkça led’i yakan devre

int butondegeri=0;             //Butona basılmadığında değişkene ‘0’ atadık.
void setup()   {
pinMode(11, OUTPUT);     //11. pini çıkış olarak belirledik.
pinMode(9,INPUT);            //9. pini giriş olarak belirledik.
}
void loop() {
butondegeri = digitalRead(9);   //9. pine bağlı butondan değer alıp değişkene attık.
digitalWrite(11, butondegeri);  //değişkendeki değeri 11. pindeki led’e aktardık.
}


İkinci uygulamada devre üzerinde değişiklik yapmadan devrenin işlevini değiştireceğiz. Bu sefer butona basılma durumunu şarta bağlayarak butona her basıldığında ledi yakıp söndüreceğiz. Kullanacağımız şart elemanı if/else ile istediğimiz şart oluşunca if parantezi içindekiler, oluşmadığında ise else parantezi içindekiler gerçekleşecek. İkinci devrenin kodu aşağıdaki gibi olacaktır:



/*Buton Uygulaması 2: Butona basıldığında led’i yakıp tekrar basıldığında
söndüren devre */

int butondegeri=0;             //Butona basılmadığında değişkene ‘0’ atadık.
void setup()   {
pinMode(11, OUTPUT);     //11. pini çıkış olarak belirledik.
pinMode(9,INPUT);            //9. pini giriş olarak belirledik.
}
void loop() {
butondegeri = digitalRead(9);   //9. pine bağlı butondan değer alıp değişkene attık.
if (butondegeri==1)  {         //butondegeri değişkeni ‘1’ ise (butona basılmışsa)
digitalWrite(11, HIGH);    // 11. pindeki ledi yak.
}
else     {                                  //butondegeri değişkeni ‘0’ ise (butona basılmamışsa)
digitalWrite(11, LOW);     //11. pindeki ledi söndür.
}
}


İf/else uygulamasının çalışması basitçe böyledir. Parantez içindeki operatör olan ‘==’ gibi kullanılan birçok operatör bulunmaktadır. Bunlar aşağıda verilmiştir.

  • x == y (x, y’ye eşit ise)
  • x != y (x, y’ye eşit değil ise)
  • x < y (x, y’den küçük ise)
  • x > y (x, y’den büyük ise)
  • x <= y (x, y’den küçük veya eşit ise)
  • x >= y (x, y’den büyük veya eşit ise)

İşlem Basamakları

  1. Şekildeki devreyi kurunuz.
  2. Birinci programı Arduino’ya yükleyerek devrenin çalışmasını gözlemleyiniz.
  3. İkinci programı Arduino’ya yükleyerek devrenin çalışmasını gözlemleyiniz.
  4. Devreyi bir butona basıldığında led’i yakıp diğer butona basıldığında söndürecek şekilde kurup çalıştırınız.

Yorum bırakın