Arduino ile Buton Uygulaması
Arduino uygulamalarında butonlar sıklıkla girdi (INPUT) işlemleri için kullanılan devre elemanlarındandır. Butona basarak voltaj seviyesini LOW ve HIGH seviyelerine çekerek bu girdiyi LED yakmakta kullanabiliriz.
![Arduino ile Buton Uygulaması](https://blogkod.com/wp-content/uploads/2019/02/arduino-buton-uygulama.png)
Merhabalar,
Bu uygulamamızda 2 adet push buton ile LED yakacağız. Birinci buton ile LED’i yakıp, diğer buton ile aynı LED’i söndüreceğiz.
Arduino uygulamalarında butonlar sıklıkla girdi (INPUT) işlemleri için kullanılan devre elemanlarındandır. Butona basarak voltaj seviyesini LOW ve HIGH seviyelerine çekerek bu girdiyi LED yakmakta kullanabiliriz. Bu uygulamamızda Pull-Up direnç sistemini kullanacağız. TinkerCAD ile Butonlu LED Uygulaması başlıklı yazımızda Pull-Up ve Pull-Down direnç sistemlerine değinmiştik. Pull-Up direnç sistemi burada kararlı bir voltaj oluşmasını sağlayacak ve butondan gelen yanlış okumaların da önüne geçmiş olacak.
Arduino Nedir? başlıklı yazımızda belirttiğimiz gibi Arduino çevreden aldığı girdilerle çok karmaşık işlemleri yerine getirebilmektedir. Karmaşık işlemleri yaparken if – else karar yapılarını sıklıkla kullanırız. Örneğin; eğer sıcaklık belirli bir derecenin altına düşerse vantilatörü çalıştır, eğer ısı belirlenen seviyenin altına düşerse ısıtıcıyı çalıştır, motorları çalıştır, hafıza kartına kaydet ya da kablosuz ağ üzerinden bu bilgiyi gönder gibi… Bu tarz
işlemlerle Arduino’yu akıllı eylemleri gerçekleştirebilecek şekilde kodlayabilir ve dış çevreyi kontrol altına alabilirsiniz.
IF – ELSE karar yapısında kullanılan mantıksal ve karşılaştırma operatörleri şunlardır:
== | Eşitlik | A == B doğru ise; A ve B aynıdır. |
!= | Farklılık | A != B doğru ise; A ve B aynı değildir. |
&& | Ve | A && B doğru ise; A ve B ‘nin ikisi de doğrudur. |
|| | Veya | A || B doğru ise; A veya B doğrudur. |
! | Değil | !A doğru ise; A yanlıştır. Yanlış ise A doğrudur. |
Bu devrede aşağıdaki elemanları kullanacağız:
1- Arduino UNO
2- 2 adet 1 kilo ohmluk direnç (Kahverengi, siyah, kırmızı)
3- 1 adet 220 ohmluk direnç (Kırmızı, kırmızı, kahverengi)
4- 2 adet 4 bacaklı buton
5- 1 adet 5 mm LED
6- 1 adet breadboard
7- Jumper kablolar
Devre Şemamız:
![](https://blogkod.com/wp-content/uploads/2019/02/arduino-buton-uygulama-devresi.png)
Devremizin Kodları:
/* BlogKod Arduino ile Buton Uygulaması*/ // İlk olarak global olarak buton ve LED pinlerini tanımladık const int buton1Pin = 2; // pushbutton 1 pin const int buton2Pin = 3; // pushbutton 2 pin const int ledPin = 4; // LED pin void setup() { // Buton pinlerinden girdi alacağız pinMode(buton1Pin, INPUT); pinMode(buton2Pin, INPUT); // LED pinimiz çıkış olacak pinMode(ledPin, OUTPUT); } void loop() { // Burada butonların basılı durumlarını işleme alabilmek için // 2 tane durum değişkeni tanımladık. Basılı mı değil mi kontrolünü // bu değişkenler yardımıyla yapacağız... int buton1Durum, buton2Durum; // 1 kilo ohmluk direncimizi 5V'a bağlayarak Pull-Up sistemini kullandık // digitalRead() fonksiyonu ile butonlara bağlı pinleri okuyoruz. // Butonlar basılı değilse lojik-1(5V), basılı ise lojik-0(GND) durumunda olacak... buton1Durum = digitalRead(buton1Pin); buton2Durum = digitalRead(buton2Pin); if (buton1Durum == LOW) // buton1 basılı ise... { // Yani buton1'in durumu lojik-0 ise... digitalWrite(ledPin, HIGH); // LED'i yak... } else if (buton2Durum == LOW) // buton2 basılı ise... { // Yani buton2'nin durumu lojik-0 ise... digitalWrite(ledPin, LOW); // LED'i söndür... } }
Arduino ile Buton Uygulaması Devresi:
pinMode(buton2Pin, INPUT);
Dijital pinler çıktılar gibi girdi olarak da kullanılabilir. Fakat bu işlemi yapmadan önce, Arduinoya kullandığınız yolu söylememiz gerek.
button1Durum = digitalRead(buton1Pin);
Dijital bir girdiyi okumak için digitalRead() fonksiyonunu kullanırız. Eğer pinde 5V varsa HIGH, 0V var ise LOW olacaktır.
if (buton1Durum == LOW)
Çünkü butonumuzu GND’ye bağlıyoruz ve butona bastığınızda LOW olarak okunuyor. Butonun basılmış durumda olup olmadığını görmek için (“==”) operatörünü kullanıyoruz.
![](https://blogkod.com/wp-content/uploads/2019/02/arduino-butonlu-led-1024x768.jpg)
Arduino ile Buton Uygulama Devresi
Arduino ile Buton Uygulama Videosu:
Videoda görüldüğü üzere birinci butona basınca LED yanmakta, ikinci butona basınca da LED sönmektedir. Devre bu şekilde çalışmıyor ise buton devre tahtasına yanlış bağlanmış olabilir. Butonu 90 derece döndürerek yeniden bağlantı yapınız. Jumper kablolarını da kontrol ediniz.
Bir sonraki uygulamamız foto direnç (LDR) ile ilgili olacak. Görüşmek üzere…