Arduino Push Buton İle Led Yakma Devresi

Merhaba Arkadaşlar. Bu sefer yine basit bir kullanım yazısı ile karşınızdayız. Bu devre ile elektronik kartlarda çok kullanılan push buton kullanımını öğreniyor olacağız. Bu devreye başlarken bir konuya açıklık getirmemiz gerekiyor. Öncelikle bu devrede neden bir direnç ile “kısa devre” benzeri bir bağlantı yaptık ondan bahsetmek istiyorum.

Push butonun ikinci bacağı (arduino pinine gelen çıkış bacağı diyebiliriz) üzerine bir de paralel olarak bir dirençli GND bağlantısı yaptık. Bu bağlantının amacı, butona bastıktan ve çektikten sonra butonun o bacağında kalan statik elektriği (veya parazitte diyebiliriz) topraklamak. Direnç kullanmamızın sebebi ise butona basıldığında bütün akımın GND’ye doğrudan giderek kısa devre yapmasını engellemek.

Özellikle bu konudan bahsetmek istedim. Sonrasında bu devreyi kullanarak ve geliştirerek ardunio üzerinden her türlü buton ile haberleşme ve işlem yaptırma becerisini kodunuzu geliştirerek siz de sağlayabilirsiniz. Elbette daha ilerleyen zamanda arduino ile yapacağımız kompleks projelerde de bu butona ve farklı işlevlerine yer veriyor olacağız.

Şimdi isterseniz devre elemanlarımızı kısaca tanımaya geçelim.

  • Arduino Uno kartı
  • 1 adet Led
  • 1 adet Push buton
  • 1 adet 330ohm direnç
  • 6 adet dişi > erkek jumper kablo

Devre şemamızı da aşağıdaki şekilde oluşturabiliriz. Dilerseniz siz bunu bir board üzerinde de yapabilirsiniz.

Evet aslında devremizin şeması bu kadar basit. Ancak burada bağlantılara kesinlikle dikkat etmemiz gerekiyor. Aksi taktirde kısa devre, vs… olması kaçınılmaz olacaktır. Devremizdeki direncin sebebini de yukarıda anlattığımız üzere kullanmamazlık etmeyelim.

Bu işlem için herhangi bir kütüphaneye ihtiyacımız yok. Sadece dijital okuma ve yazma fonksiyonlarını kullanarak devremizi takip edeceğiz. Şimdi öncelikle pinlerimizi tanımlayarak başlayalım.

int ledPin = 8;
int inPin = 2;
int val = 0;

Ve Setup fonksiyonumuza geçelim ve giriş ve çıkış pinlerimizi tanımlayalım.

void setup() {
  pinMode(inPin, INPUT);
  pinMode(ledPin, OUTPUT);
}

Veee sıra geldi loop kısmına. Yani kodumuzun asıl çalışacağı ve yorumlamayı asıl yapacağımız kısıma.

void loop(){

  val = digitalRead(inPin);
  
  if (val == 1)
  {
    digitalWrite(ledPin, HIGH);
    delay(1000);
  }
  else
  {
    digitalWrite(ledPin, LOW);
  }
}

Burada gördüğünüz üzere inPin (buton) değişkenimizden gelen değeri okuduk ve eğer “1” ise yani sinyal geldi ise digitalWrite() fonksiyonunu başlatarak ledPin olarak belirlediğimiz sekizinci pinimize sinyal gönderdik ve hemen altında bu sinyali 1000 milisaniye yani tam 1 saniye tuttuk. Ardından tekrar loop() devam ederken kodumuz tekrar okumada tekrar bir basma görmediği için bu sefer “else” kısmına giriş yaparak çıkış gerilimini keserek ledimizi söndürdü.

Bu işlemin sonunda oluşturduğumuz devrede, butona basılı tuttuğumuz sürece yanık duran ve bıraktığımızda da maksimum 1 saniye içerisinde sönen bir push buton ile kontrol edilen led devresi yapmış olduk.

Push Buton İle Led Yakma Devresi Kodunun Tamamı

int ledPin = 8;
int inPin = 2;
int val = 0;

void setup() {
  pinMode(inPin, INPUT);
  pinMode(ledPin, OUTPUT);
}

void loop(){

  val = digitalRead(inPin);
  
  if (val == 1)
  {
    digitalWrite(ledPin, HIGH);
    delay(1000);
  }
  else
  {
    digitalWrite(ledPin, LOW);
  }
}