
Kısaca: Push buton, basılı tutulduğu sürece devreyi kapatan, bırakıldığında açan anlık bir anahtardır; Arduino'da bir dijital girişe bağlanır ve digitalRead() ile okunur. Bu yazıda butona basıldığında LED'i yakan devreyi, pull-down direncinin görevini ve kodun satır satır açıklamasını bulabilirsiniz.
Merhaba arkadaşlar, bu yazımızda push buton kullanımı öğrenerek, Push Buton ile LED kontrolü nasıl yapılır birlikte yapacağız.
Push Buton Kullanımı için Gerekli Malzemeler:
- Arduino Uno
- Breadboard
- LED
- 330 Ω Direnç
- Push Buton
- 10 kΩ Direnç
- İki Ucu Erkek Jumper Kablo
Push Buton Ne İşe Yarar?
Push Buton devremizde on/off kontrolü için kullanılır. Yani biz butonumuza bastığımız zaman on durumuna geçerken elimizi buton üzerinden çektiğimiz zaman off durumuna geçer.
Buton Kullanımı için Neden 10 kΩ Direnç?
Bizim 10 kΩ direncimiz Pull-Down direncidir. Pull-Down direncimiz dijital pinleri giriş olarak kullandığımız zaman sinyalin bozulmamasını sağlamaktadır. Projemizde butona basmadığımız durumlarda Pull-Down direncimiz 0V düzeyine indirmektedir ve butonumuza basılmadığı zamanlarda her zaman 0V yani lojik Low düzeyinde sabit tutar. Bir önceki yazımızda LED kullanımı ve 330 Ω direnç kullanımını ayrıntılı olarak anlatmıştık. LED ile ilgili yazımıza buradan ulaşabilirsiniz.
Şimdi buton kullanımı projemizin kodlamasına ve devre şemasına bakalım.
Arduino ile Push Buton Kullanımı Kodları Kodlarımızı ayrıntılı bir şekilde inceleyelim. int led=7; int buton=2; int butonDurum=0; Burada biz LEDimiz için 7 numaralı pini çıkış pini olarak ayarlıyoruz. Butonumuz için ise 2 numaralı pini giriş pini olarak ayarlıyoruz. Son olarak burada butonDurum adında bir değişken oluşturuyoruz. pinMode(led,OUTPUT); pinMode(buton,INPUT); Unutmamız gerekiyor ki bizim Push Butonumuz bir inputtur. O nedenle ki biz void setup kısmında butonumuzun input ve LEDimizin output olduğunu belirtiyoruz. { butonDurum=digitalRead(buton); if(butonDurum==HIGH){ digitalWrite(led,HIGH); } else digitalWrite(led,LOW); } Bu arada ise ilk önce ilk kısımda oluşturduğumuz butonDurum değişkenine, digitalRead komutuyla okuduğumuz buton pininin durumunu atıyoruz. Daha sonra ise if else yapısını kullanarak butonumuzun HIGH yani çalıştırdığımız durumda LEDimizide yakıyoruz. Öbür durumlarda ise LEDimiz sönük kalıyor.
İlgili Ürünler
Sıkça Sorulan Sorular
Pull-down direnci nedir, neden kullanılır?
Pull-down direnci, butona basılmadığında giriş pinini GND'ye bağlayarak pinin kararlı biçimde LOW okunmasını sağlar. Direnç olmazsa pin boşta kalır ve rastgele HIGH ya da LOW değerler okunabilir. Bu tür devrelerde genellikle 10 kΩ'luk bir direnç kullanılır.
Push buton Arduino'ya nasıl bağlanır?
Butonun bir bacağı 5V'a, diğer bacağı hem dijital giriş pinine (bu örnekte 2 numaralı pin) hem de 10 kΩ'luk direnç üzerinden GND'ye bağlanır. Bu bağlantıda butona basıldığında pin HIGH, bırakıldığında LOW okunur.
INPUT_PULLUP nedir?
INPUT_PULLUP, Arduino'nun dahili pull-up direncini etkinleştiren pinMode ayarıdır. Bu modda harici direnç gerekmez; buton pin ile GND arasına bağlanır ve mantık tersine döner: buton basılıyken LOW, bırakılmışken HIGH okunur.
Buton bir basışta neden birden fazla kez algılanır?
Mekanik butonların kontakları basma anında çok kısa bir süre sıçrar (bounce) ve bu durum birkaç milisaniye içinde birden fazla basma gibi okunabilir. Sorun, kodda kısa bir bekleme ya da millis() ile zaman kontrolü yapılarak (debounce) giderilir.
digitalRead() fonksiyonu ne işe yarar?
digitalRead(pin), belirtilen dijital pindeki gerilimin HIGH mı LOW mu olduğunu okur. Bu projede okunan değer butonDurum değişkenine atanır ve if-else yapısıyla LED yakılır ya da söndürülür.