Ders 8 – Buton Kullanımı

buton manşet

Arduino derslerimiz kapsamında bu kez buton ile tanışacağız. Bu etkinlikte kullanılan butonlar on/off butonlardan biraz farklıdır. Günlük hayatta kullandığımız butonlar on/off buton diye geçer. Bu butonlarda ise butona bastığınızda “on” olur, diğer türlü her zaman “off” durumundadır.

Arduino buton kullanımı dersimizde önce butona bastığımızda nasıl bir değişiklik olduğunu seri ekrana yazdırarak göreceğiz. Bir sonraki dersimizde ise led de kullanarak buton led uygulaması yapacağız. Bu tarz butonları günlük hayatta bazı kumandaların ışıklandırmasında görebilirsiniz. Mesela kumandanın ışık düğmesine bastığınızda düğmelerin ışıkları yanar ancak elinizi çektiğinizde hemen söner. Sizinde bu butonun günlük yaşamda kullanımına yönelik önerileri varsa aşağıda yorumlar bölümünde yazabilirsiniz.

Arduino Buton Bağlantısı

Arduino ile buton bağlantısında dikkat etmeniz gereken birkaç nokta vardır.

  • Öncelikle butonu breadboard‘ un tam ortasına yani 4 bacakta ayrı sırada olacak şekilde bağlamanız gerekmektedir. Aksi halde 2 şer bacak aynı sıraya geleceği için buton çalışmayacaktır.
  • Butonun bir bacağına 5V bağlıyorsunuz. Bu bacağa başka hiçbir şey bağlamamanız gerekir.
  • Diğer bacağa ise hem bir dijital pin hemde direnci de kullanarak GND vermeniz gerekmektedir.

Arduino Buton Bağlantısı Kodu

Bu etkinlikte ilk defa karşınıza çıkacak bazı kodlar mevcut. Bu yüzden kodları yazmadan önce bu kodların ne işe yaradıklarını kısaca size açıklayalım.

INPUT

Bu zamana kadar olan etkinliklerimizde hep pinMode(……..,OUTPUT) şeklinde kullanımını gerçekleştirdik. Bu kez ise OUTPUT yerine INPUT kullanacağız. Peki bu ikisi arasındaki fark nedir ve ne zaman OUTPUT, ne zaman INPUT kullanılır.

Eğer o pinden bir çıkış olacaksa, Örneğin; led yanacaksa o zaman OUTPUT kullanıyoruz.

Ancak eğer dışardan o pin yoluyla arduinoya bir veri girişi olacaksa o zaman “INPUT” kullanıyoruz. Buton çalışmasında biz dışardan butona tıklayarak Arduino’ ya veri gönderdiğimzi için INPUT kullanıyoruz.

digitalRead

Bir önceki etkinliğimiz olan LDR ile Led Yakma ‘ da bu kodun benzeri olan analogRead kullanmıştık. Oradaki LDR analoga bağlıydı ve bu yüzden analogRead kullanmıştık. Ancak buton bir dijital bağlantıdır. Yani analog bağlantıdaki gibi 0 ile 1023 arasında bir değer almaz. Ya açıktır ya kapalı, ya vardır ya yok, ya 0 ya 1 ‘ dir. Bu yüzden veriyi dijital olarak okumamız gerekir.

“==” Kullanımı

if kullanımında parantez içinde şartımızı yazarken “==” kullanmamız “eşitse” anlamına gelmektedir. Yani “oku==HIGH” derken oku’ nun butondan aldığı değerde, butonun basılı olduğunu gösterir.

int buton=8; // 8 nolu dijital pindeki değerin adını buton koyduk.
void setup() {
Serial.begin(9600); // seri ekranı başlattık.
pinMode(buton,INPUT); // butondan bir veri girişi olacağını belirttik INPUT ile
}
void loop() {
int oku = digitalRead(buton); // butondan gelen değeri dijital olarak okuyup adına “oku” koyduk
if(oku==HIGH)
{
Serial.print(“Butona Basıldı!”); // eğer butona basıldıysa ekranda butona basıldı yazacak.
delay(1000); // 1 saniye bekle.
}
else
{
}
}

Kodlarınızı yükledikten sonta seri ekranı açıp butona basınız. Ekran da “Butona Basıldı” yazısını göreceksiniz. Eğer göremiyorsanız bağlantınızı ve kodunuzu kontrol ediniz. Yapamazsanız aşağıda yorum bölümüne yazınız size en kısa zamanda yardımcı olacağız.

İlk yorum yapan olun

Bir yanıt bırakın

E-posta hesabınız yayımlanmayacak.