Geçen hafta yeğenimin doğum günüydü, bizim evdeydi. Elinde bir robot kit vardı, yapmaya çalışıyor ama bir türlü çalıştıramadı. Baktım, biraz kablo bağlantısı hatası yapmış. Hemen dedim ‘Gel bakalım yeğenim, şu LED’i yakalım önce!’ O an fark ettim, çocuklara elektronik hobisini aşılamak ne kadar önemli. İşte tam da bu yüzden, basit ama etkili bir konuyla karşınızdayım: Buton ile LED kontrolü!
Hatırlıyorum da, ilk devrelerimi kurduğum zamanlar… Sanki sihirbazlık gibiydi! Birkaç kablo, bir direnç, bir de LED… Ve ışık yanıyor! O zamanlar daha ne olduğunu tam anlamasam da, o minik ışığın bana verdiği haz bambaşkaydı. Şimdi düşünüyorum da, o zamanlar bir buton ekleyip LED’i istediğim zaman yakıp söndürebilseydim, kim bilir neler yapardım! İşte bu yazıda da tam olarak bunu yapacağız, hem de çok basit bir şekilde. Kendi küçük elektronik projelerinizi hayata geçirmek için harika bir başlangıç olacak.
Bu tür projeler, özellikle elektronik dünyasına yeni adım atanlar için harika bir basamak. Bir butonun ne işe yaradığını, bir LED’i nasıl kontrol edeceğimizi anlamak, daha karmaşık devrelerin kapısını aralıyor resmen. Hem eğlenceli hem de öğretici. Hani bazen bir şeyi yapmak için çok karmaşık yollara saparız ya, işte bu öyle değil. Direkt konuya giriyoruz ve sonuç alıyoruz.
Şimdi gelelim temel malzemelere. Ne lazım bize? En başta, olmazsa olmazımız bir buton tabii ki. Hani şu basınca çalışan, genelde kırmızı, yeşil veya siyah olanlardan. Sonra, bir tane de LED. Renk seçimi size kalmış, ben genelde kırmızı veya yeşil severim ama mavi de çok havalı duruyor. Bir de tabii bu ikisini birbirine bağlayacak birkaç jumper kablo ve bir adet direnç. Direnç konusu biraz kafa karıştırıcı olabilir ama panik yok, hemen açıklayacağım.
LED’ler hassas elemanlardır, yani onlara fazla voltaj verirseniz hemen yanıp sönerler, hatta bazen dumanı bile çıkar! İşte bu direnç, tam da bu durumu önlemek için var. Bir nevi voltaj düzenleyici gibi düşünebilirsiniz. LED’in üzerinden geçen akımı sınırlar ve onu güvende tutar. Hangi direnci kullanmalıyız diye soracak olursanız, genelde 220 Ohm veya 330 Ohm civarı iş görür. Ama tabii bu, kullandığınız LED’in özelliklerine ve güç kaynağınıza göre biraz değişebilir. Emin olamıyorsanız, internette küçük bir arama yapıp LED direnç hesaplama araçlarına göz atabilirsiniz. Ben genelde 220 Ohm kullanırım, genelde işe yarar 🙂 Bu arada, Arduino gibi mikrodenetleyici kartlarla çalışırken bu direnç işi biraz daha kolaylaşıyor.
Devremizi kurmaya hazır mısınız? Gerekli malzemeleri topladıysak, şimdi işin en keyifli kısmına geçebiliriz. Bir mikrodenetleyici kartı (ben Arduino Uno kullanacağım, çünkü en popüler ve başlangıç için en uygunu diyebilirim) ve tabii ki bilgisayarınız. Devreyi kurduktan sonra, bilgisayarımıza bir kod yazacağız ve bu kod sayesinde butona bastığımızda LED’imiz yanacak, bırakınca sönecek. Ne güzel değil mi?
Arduino’nun dijital pinlerini kullanacağız. Butonu bir dijital pine, LED’i de başka bir dijital pine bağlayacağız. Buton basıldığında dijital pinin ‘HIGH’ (yani 1) olduğunu, bırakıldığında ise ‘LOW’ (yani 0) olduğunu algılayacağız. Eğer pin ‘HIGH’ ise LED’i yakacağız (yani onun bağlı olduğu dijital pini de ‘HIGH’ yapacağız), eğer ‘LOW’ ise LED’i söndüreceğiz (yani o pini de ‘LOW’ yapacağız). Bu kadar basit aslında mantığı.
Şimdi gelelim kod kısmına. Arduino IDE’yi açın ve aşağıdaki kodu yapıştırın. Bu kod, butona basıldığında LED’in yanmasını sağlayacak. Yalnız, dikkat edin, kodda bazı yerlerde pin numaraları var. Bunları, sizin devrenizde kullandığınız pin numaralarına göre ayarlamanız gerekiyor. Mesela ben buton için 7 numaralı pini, LED içinse 8 numaralı pini kullandım. Siz de kendi bağlantılarınıza göre bu numaraları değiştirin.
Önceki denemelerimde şöyle bir hata yapmıştım: Butonu ve LED’i aynı dijital pine bağlamaya çalışmıştım. Sonuç? Tabii ki çalışmadı! Çünkü her bir bileşenin kendi pini olmalı ki, mikrodenetleyici hangisinin ne işe yaradığını anlayabilsin. Bu tür basit hatalar bazen insanın canını sıkabiliyor ama neyse ki düzeltmesi de kolay oluyor. Kendi programım sınıfta kaldı derken işte tam da böyle bir durumdan bahsediyordum. Şimdi bunu doğru bir şekilde yapacağız.
// Butonun bağlı olduğu pin const int buttonPin = 7; // LED'in bağlı olduğu pin const int ledPin = 8;// Butonun mevcut durumunu saklamak için değişken int buttonState = 0;
void setup() { // LED pinini çıkış olarak ayarla pinMode(ledPin, OUTPUT); // Buton pinini giriş olarak ayarla pinMode(buttonPin, INPUT); }
void loop() { // Butonun durumunu oku buttonState = digitalRead(buttonPin);
// Eğer buton basılıysa (HIGH durumu) if (buttonState == HIGH) { // LED'i yak digitalWrite(ledPin, HIGH); } else { // Buton basılı değilse (LOW durumu) // LED'i söndür digitalWrite(ledPin, LOW); } }
Bu kod, oldukça basit ve anlaşılır. `setup()` fonksiyonunda pinlerimizi ayarlıyoruz: LED çıkış, buton giriş. `loop()` fonksiyonunda ise sürekli olarak butonun durumunu okuyoruz. Eğer buton basılıysa (`HIGH`), LED’i yakıyoruz (`digitalWrite(ledPin, HIGH)`). Eğer basılı değilse (`LOW`), LED’i söndürüyoruz (`digitalWrite(ledPin, LOW)`).
Bir de şunu eklemek isterim: Bazen kodda bir şeyler ters gider de, LED sürekli yanıp sönmeye başlar veya hiç sönmez. İşte o zaman, pin bağlantılarınızı ve kodunuzdaki `digitalWrite` komutlarının `HIGH` ve `LOW` değerlerini doğru ayarlayıp ayarlamadığınızı kontrol edin. Hani bazen öyle terslikler olur ki, insanın aklı karışır. Ama emin olun, sabırlı olunca çözülüyor.
Bu arada, eğer isterseniz, butona basıldığında LED’in sadece bir kere yanmasını sağlayacak veya birden fazla kez yanıp sönmesini sağlayacak şekilde de kodu değiştirebilirsiniz. Mesela, bir değişken tanımlayıp, butona her basıldığında o değişkeni artırıp, belirli bir değere ulaştığında LED’in durumunu değiştirebilirsiniz. Bu biraz daha ileri seviye ama öğrenmesi keyifli oluyor.
Sonuç olarak, bu basit devre, elektronik dünyasına ilk adımını atan herkes için harika bir başlangıç noktası. Hem malzemeleri bulmak kolay, hem de yapmak çok basit. Üstelik, bu temel üzerine daha karmaşık projeler inşa edebilirsiniz. Mesela, birden fazla butonu farklı LED’leri kontrol etmek için kullanabilirsiniz. Ya da bir butona basıldığında farklı renklerde LED’ler yaktırabilirsiniz. Mesela geçen gün YouTube’da bu konuyla ilgili bir sürü proje gördüm, ilham almak isterseniz bir göz atın derim.
Şimdi sıra sizde! Malzemeleri toplayın, devreyi kurun ve bu basit ama etkili projeyi hayata geçirin. Eminim çok eğleneceksiniz. Belki de bu, sizin de yeni hobiniz olur, kim bilir? Unutmayın, her büyük proje küçük bir adımla başlar. Hadi bakalım, kolay gelsin!