Buton ile led yakma dersimizde 1 adet push buton ile bir yeşil ve bir kırmızı olmak üzere 2 adet led‘imizi kontrol edeceğiz.

Malzeme Listesi:


Uygulamamıza başlamadan önce daha önce atlamış olduğumuz malzeme tanıtımını yapalım.

İlk olarak led ile başlayalım. Led kısaca ışık yayan diyottur. Ledlerin çalışma gerilimlerinde farklılık olabilir. Örneğin kullanmış olduğumuz kırmızı led minimum 2V ile yeşil led ise minimum 2.1V  ve bu ledler 15mA – 20mA akım aralığında çalışmaktadır. Fakat bizim Arduinomuz 5V gerilim seviyesiyle çalışmaktadır. Peki ne yapacağız? Tabiki de direnç adı verilen devre elemanı yardımımıza yetişmektedir. Peki burada led için hem akım dedik, hem de gerilim dedik. Hangisine bakacağız? Bizim için hem gerilim hem de akım önemlidir ve devremizde akımı referans alarak direnç değerini bulacağız. Şimdi devremizden akmasını istediğimiz akımı 15mA olarak kabul edelim. V=IxR yani gerilim=akım x direnç ‘tir. Bizim devremizdeki gerilim 5V ve akım 15mA eşitliği oluşturalım 5V=15mA x R buradaki bir bilinmeyenli denklemi çözersek direnç yaklaşık olarak 333 ohm olarak buluruz. Veya 20mA için 5V=20mAxR bu eşitlikten direnç değeri 250 ohm çıkmaktadır. Yani bizim direnç değerimiz 250 ohm ile 333 ohm aralığında olabilir. Bizim elimizdeki dirençlerden bu değere en yakın olanı 330 ohm ve devremizde onu kullanıyoruz. Dirençlerde yön kavramı yoktur yani hangi bacağı led’e  hangi bacağı GND’ye bağladığımızın bir önemi yoktur. Fakat bu durum led’lerde böle değildir. Ledlerde anot (uzun bacak)’a  pozitif gerilim (+= 5V=VCC=lojik 1) ve katot (kısa bcak)’a negatif (-=0V=GND=Lojik 0) gerilim bağlanır. Devremizde anot, Arduino tarafına ve katot ise direnç tarafına bağlanmıştır.

Push buton bir anahtarlama elemanıdır. Bu uygulamada eğer butona basılı ise yeşil led yanacak, kırmızı led sönecek ve basılı değilse yeşil led sönecek, kırmızı led yanacak şekilde programlayacağız. Push butonu “Pull up“ ve “Pull down“ şeklinde kullanabiliriz. Biz bu devrede “pull down” şeklinde kullandık ve bunun için gerekli olan “Pull down” direnci 10k ohm olduğundan, 10k ohm direnç kullanıldı. Bu direncin amacı butona basıldığı an Vcc ve GND‘nin kısa devre olmasını engellemek ve Vcc ile GND arasını izole etmektir.


Şimdi aşağıdaki devre şemasına göre devremizi kuralım ve kod kısmına geçelim.

Daha önce de yapmış olduğumuz gibi yeni bir Arduino sayfası açıyoruz. #define kısmında daha önce anlattığımız gibi led ve butonlarımızın hangi pine bağlı olduğunu belirtiyoruz. buton_durum‘u int(tamsayı,integer) formatında başlangıç değeri 0 (sıfır) olacak şekilde tanımlıyoruz. Bunun amacı Arduino’da bu adreste daha önceden kayıtlı bir değer olabilir ve bu değer yüzünden programımız doğru çalışmayabilir bundan dolayı değişken tanımlamalarda ilk değer atama genellikle tercih edilir. İnt-32767 ile 32767 sayıları arasındaki değerleri tutabilir ve en sık kullanılan değişken tanımlama ifadesidir. void setup() fonksiyonu içerisine kirmizi_led ve yesil_led adlı pinlerimizin çıkış (OUTPUT) ve buton adlı pinimizin giriş (INPUT) olarak tanımladık. void loop() kısmına geçelim buton_durum=digitalRead(buton); buton adlı pine bağlı butonumuzun dijital durumunu (1 veya 0) digitalRead(buton); adlı fonksiyon ile okuyup eşittir (=) atama operatörü ile buton_durum adlı integer(tamsayı) formatındaki değişkene atalım. Butondan gelen veriyi okuduğumuza göre okunan değeri “if-else” komutu ile değerlendirelim. Eğer buton durum 1 (HIGH) ise yeşil led’i yak, kırmızı led‘i söndür. Else komutu ise eğer if komutundaki şart sağlanmaz ise çalışacak olan kod bloğunu içerir. “if ve else” komutlarının geçerlilik alanı iki süslü parantez ( {  } )  arasıdır. Özet olarak butona basıldığı durumda yeşil led yanacak ve basılmadığında kırmızı led yanacaktır.

#define kirmizi_led 2
#define yesil_led 3
#define buton 7
int buton_durum = 0;
void setup()
{
pinMode(kirmizi_led, OUTPUT);
pinMode(yesil_led, OUTPUT);
pinMode(buton, INPUT);
}
void loop()
{
buton_durum = digitalRead(buton);
if (buton_durum == 1)
{
digitalWrite(yesil_led, HIGH);
digitalWrite(kirmizi_led, LOW);
}
else
{
digitalWrite(yesil_led, LOW);
digitalWrite(kirmizi_led, HIGH);
}
}

Kodumuzun son hali böyle gözüküyor. Artık Arduino’yu bilgisayarımıza bağlayabiliriz ve kodumuzu atabiliriz. İşte buton ile led yakma uygulamanız hazır.


Bu dersimiz işinize yaradıysa ve hoşunuza gittiyse diğer derslerimize göz atmayı unutmayın 🙂

robolinkmarket.com

1 Yorum

  1. Hocam bütün devreyi resimdeki gibi yaptım,başta benzerini yazdım yanlış çalışınca da,kodları da yazdığınız kodun aynısını ctrl + c ctrl + v yaptım yine de olmadı.Dirençlerle ledler temas ettiği zaman sadece bir tanesi yanıyor.Temas etmediği durumda ikisi de yanmıyor.Yardım edebilirseniz sevinirim.

CEVAP VER

Lütfen yorumunuzu giriniz!
Lütfen isminizi buraya giriniz