Arduino #5 – Buton 2 – (Buzzer+LED) – (if-else if-else)

LED nasıl görsel bir uyarıcı ise “Buzzer“da işitsel bir uyarıcıdır. İç yapısından dolayı akım geldiği an içindeki metal plakanın titreşimi sonucunda ses (bip sesine benzer bir ses) çıkar. Çeşitli buzzer türleri mevcuttur.

Bu uygulama ile bir önceki “Buton ile Led Kontrolü” uygulamasını geliştirerek şunu yapalım; Butona basıldığında buzzer ses çıkarsın LED sönsün, basılmadığında LED yansın buzzer sussun.

Buton 2 – (Buzzer+LED)
  • Arduino UNO
  • Breadboard
  • Push Button
  • Buzzer (5V) (Görselin oluşturulduğu ortamda 5V’luk Buzzer olmadığı için Piezo Buzzer temsili olarak koyulmuştur.)
  • LED
  • 10K (Buton) ve 250 ohm (LED) direnç
  • Jumper Kablolar

İPUCU – Buzzerında LED’de olduğu gibi + ve – bacakları vardır.  + bacağı herhangi bir dijital giriş çıkışa, – bacağı ise GND’ye bağlanır.


1- mBlock

Buton 2 – mBlock

“Eğer <  > ise” arasına eklediğimiz koşul durumu sağlanırsa ilk boşluğa eklediğimiz bloklar, sağlanmazsa ikinci boşluğa eklediğimiz bloklar çalışır. Bu bloğu “Kontrol” grubu altında bulabilirsiniz.

Herhangi iki durumun eşitliğine bakar. Bu bloğu “İşlemler” grubu altında bulabilirsiniz.


mBlocktaki kodların nasıl işlediğini açıklayalım:

  • Butondan sinyal aldığımız 3 nolu pinin değeri eğer 1’e (YÜKSEK ise) eşitse

İPUCU – Devremizdeki buton pull-down direnç ile bağlı olduğu için butona basıldığında 3 nolu pin “1”, basılmadığında “0” değerini alır.

  • 7 nolu pine bağlı olan buzzer ses çıkarır.
  • 5 nolu pine bağlı olan LED söner.
  • 3 nolu pinin değeri 1’e eşit değilse (yani 0’a eşitse)
  • 5 nolu pine bağlı olan LED yanar.
  • 7 nolu pine bağlı olan buzzer ses çıkarmaz.

2- ARDUINO IDE

int buzzer=7; //Buzzer'ın bağlı olduğu pin
int led=5; //LED'in bağlı olduğu pin
int buton=3; //Buton'un sinyal verdiği pin

void setup() {
pinMode(buzzer,OUTPUT);
pinMode(led,OUTPUT);
pinMode(buton,INPUT);
}

void loop() {
if(digitalRead(buton)==1){ //Butonun sinyal verdiği pinin değeri 1 ise
digitalWrite(buzzer,HIGH);
digitalWrite(led,LOW);
}else{ //Butonun sinyal verdiği pinin değeri 1 değilse (yani 0 ise)
  digitalWrite(led,HIGH);
  digitalWrite(buzzer,LOW);
  }
}

Yukarıdaki kodlarda sizlere tanıtacağım yeni ifadeler var. Şöyleki;

int degisken_adi=değişken değeri – Değişkene değer atama işlemi bu şekilde yapılır. Değişken adının başındaki “int” ifadesi ile değişken değerinin bir tamsayı olduğu belirtilmiştir. Kullanılacak diğer veri türlerinden yeri geldikçe bahsedilecektir.

NOT – Arduino dersleri kodlama kısmında temel programlama bilgisine sahip olduğunuz varsayılarak anlatım yapılmıştır. Temel programlama bilginiz yok ise “Python” eğitim serisini incelemenizi tavsiye ederim.

-Koşul Durumları (if – else if – else) – Devremizin koşula bağlı olarak çalışmasını veya çalışmamasını kontrol edebiliriz.

if – else if – else ifadelerinin kullanımı şu şekildedir;

if (koşul){
    //Koşul sağlanması durumunda yapılacaklar.
}
else if (koşul){
    /*Daha önceki koşul veya koşullar sağlanmaz ve bu koşul 
    sağlanırsa yapılacaklar.*/
}
...
else if (koşul){
    /*Daha önceki koşul veya koşullar sağlanmaz ve bu koşul 
    sağlanırsa yapılacaklar.*/
}
else{
    /*Daha önceki hiçbir koşul sağlanmazsa yapılacaklar.*/
}

HATIRLATMA – Koşul durumları ilişkisel operatörler ile kullanılır.
== Eşit
!= Eşit Değil
>= Büyük Eşit
<= Küçük Eşit
> Büyük
< Küçük

Devreye ait yazığımız kodları inceleyelim:

  • Elemanların bağlı olduğu pin değerlerini değişkenlere atadık.
  • void setup() kısmında butondan sinyal aldığımız için INPUT değeri verdik. Buzzer ve LED’e sinyal verdiğimiz için OUTPUT değeri verdik.
  • void loop() kısmında if koşul durumunu kullanarak devremizin çalışma şekline ait kodları yazdık. Eğer butondan gelen sinyal 1 ise buzzer ses çıkarsın LED sönsün, butondan gelen sinyal 1 değilse (yani 0 ise) buzzer ses çıkarmasın LED yansın.

3-TINKERCAD


Herşeyi bitirdik birde devremizin çalışır haline bakalım.

Buton 2 – (Buzzer+LED)

Değerli görüşlerinizi ve sorularınızı yorum olarak iletiniz.

You may also like...

2 Responses

  1. Kadir dedi ki:

    Hocam emekleriniz için sağolun…

  2. BİR YBFL'Lİ dedi ki:

    Mükemmel bir anlatım çok beğendim. Yazar çok samimi ve sevecen. Kendisini çok iyi tanırım. Çok severim. Anlatışı mükemmel ötesi derecede güzel.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.