Arduino Buton Kullanımı
Bir buton ile giriş almak ve LED kontrolü yapmak.
Elbette! Bir butona basıldığında bir LED'i yakma işlemi, elektronik ve programlama öğrenirken yapılan en temel ve öğretici projelerden biridir. Genellikle bir **mikrodenetleyici** (en popüleri **Arduino**) kullanılarak yapılır.
İşlemi adım adım, gerekli bileşenlerden kodlamaya kadar detaylı bir şekilde anlatacağım:
---
### **1. Temel Konsept**
Amaç, fiziksel bir düğmeye bastığımızda, mikrodenetleyicinin bu eylemi algılaması ve ardından programlanmış bir çıktıyı (LED'i yakmak gibi) gerçekleştirmesidir.
---
### **2. Gerekli Bileşenler**
Bu proje için ihtiyacınız olan temel bileşenler şunlardır:
1. **Arduino Uno (veya benzeri bir mikrodenetleyici kartı):** Beyin görevi görür. Butondan gelen sinyali okur ve LED'e sinyal gönderir.
2. **Breadboard (Devre Tahtası):** Bileşenleri geçici olarak ve lehimlemeden birleştirmek için kullanılır.
3. **Push Buton (Anlık Kontak Butonu):** Basıldığında devreyi kapatan, bırakıldığında açan bir düğme.
4. **LED (Light Emitting Diode - Işık Yayan Diyot):** Işık verecek olan bileşenimiz.
5. **220 Ohm Direnç (LED için):** LED'in üzerinden geçen akımı sınırlamak ve yanmasını engellemek için kullanılır. (Değer, LED'in türüne göre biraz değişebilir, 220-330 Ohm arası genellikle güvenlidir).
6. **10k Ohm Direnç (Buton için - isteğe bağlı ama önerilir):** "Pull-down" veya "pull-up" direnci olarak kullanılır. Arduino'nun dahili pull-up direncini kullanacaksak bu harici direnç gerekmeyebilir. Ama temel mantığı anlatmak için ekleyelim.
7. **Jumper Kabloları:** Bileşenleri breadboard üzerinde ve Arduino'ya bağlamak için.
8. **USB Kablosu:** Arduino'yu bilgisayara bağlamak ve güç sağlamak için.
---
### **3. Devre Kurulumu (Donanım)**
Devreyi iki ana kısma ayırabiliriz: LED devresi ve Buton devresi.
#### **A. LED Devresi Bağlantısı:**
* **LED'in Bacakları:** LED'in uzun bacağı (+) **anot**, kısa bacağı (-) **katot**'tur. Akım anottan katota doğru akar.
* **Bağlantı:**
1. LED'in **uzun bacağını (anot)** breadboard'da bir deliğe takın.
2. **220 Ohm direncini** bu uzun bacağın olduğu sıraya ve başka bir sıraya takın.
3. Direncin diğer ucunu Arduino'nun **Dijital Pin 13**'üne (veya istediğiniz başka bir dijital pine) bağlayın.
4. LED'in **kısa bacağını (katot)** breadboard'da ayrı bir deliğe takın.
5. LED'in kısa bacağının olduğu sıradan bir jumper kablo ile Arduino'nun **GND (Toprak)** pinine bağlayın.
#### **B. Buton Devresi Bağlantısı (Dahili Pull-up Direnci Kullanımı):**
Arduino'nun dahili pull-up direncini kullanmak, harici bir direnç kullanmaktan daha kolay ve pratiktir. Bu durumda, buton basılmadığında pin HIGH (mantıksal 1) okurken, basıldığında LOW (mantıksal 0) okuyacaktır.
* **Bağlantı:**
1. Push butonu breadboard'ın orta boşluğuna (iki ayrı kısmı birleştirecek şekilde) takın. Butonun 4 bacağı vardır, çapraz olanlar genellikle dahili olarak bağlıdır.
2. Butonun bir bacağını (örneğin sol üstteki) Arduino'nun **Dijital Pin 2**'sine (veya istediğiniz başka bir dijital pine) bağlayın.
3. Butonun aynı taraftaki çapraz bacağını (örneğin sağ alttaki) veya diğer taraftaki herhangi bir bacağını Arduino'nun **GND (Toprak)** pinine bağlayın.
*Basitçe:* Butonun bir bacağı Arduino'nun dijital pinine, diğer bacağı GND'ye bağlanır.
#### **C. Buton Devresi Bağlantısı (Harici Pull-down Direnci Kullanımı - Alternatif):**
Bu yöntemde buton basılmadığında pin LOW (mantıksal 0) okurken, basıldığında HIGH (mantıksal 1) okuyacaktır.
* **Bağlantı:**
1. Push butonu breadboard'a takın.
2. Butonun bir bacağını Arduino'nun **5V** pinine bağlayın.
3. Butonun diğer bacağını ikiye ayırın:
* Bir jumper kablo ile Arduino'nun **Dijital Pin 2**'sine bağlayın.
* **10k Ohm direncini** de bu aynı bacağa ve ardından direncin diğer ucunu Arduino'nun **GND (Toprak)** pinine bağlayın.
*Bu şekilde, buton basılmadığında direnç pini GND'ye çeker (LOW), basıldığında ise 5V pini HIGH yapar.*
**Bizim örneğimizde, kodda da göreceğiniz gibi Dahili Pull-up Direncini kullanacağız. Bu daha az kablo gerektirir.**
---
### **4. Kodlama (Yazılım)**
Arduino IDE'yi açın ve aşağıdaki kodu kopyalayıp yapıştırın.
```cpp
// Sabitler: Pin numaralarını tanımlamak için
const int LED_PIN = 13; // LED'in bağlı olduğu dijital pin
const int BUTTON_PIN = 2; // Butonun bağlı olduğu dijital pin
// Değişkenler: Butonun durumunu saklamak için
int buttonState = 0; // Butonun mevcut durumunu okumak için değişken
void setup() {
// Pinleri ayarla:
// LED_PIN'i ÇIKIŞ (OUTPUT) olarak ayarla, çünkü buradan sinyal göndereceğiz.
pinMode(LED_PIN, OUTPUT);
// BUTTON_PIN'i GİRİŞ (INPUT) olarak ayarla.
// INPUT_PULLUP kullanarak dahili pull-up direncini etkinleştiriyoruz.
// Bu, buton basılmadığında pinin HIGH olmasını sağlar.
// Buton basıldığında ise pin GND'ye bağlanır ve LOW olur.
pinMode(BUTTON_PIN, INPUT_PULLUP);
// Seri Portu başlat (isteğe bağlı, hata ayıklama için faydalıdır)
// Seri.begin(9600);
}
void loop() {
// Butonun mevcut durumunu oku
// Eğer Dahili Pull-up kullanılıyorsa:
// Buton basılmadığında buttonState = HIGH (1)
// Buton basıldığında buttonState = LOW (0)
buttonState = digitalRead(BUTTON_PIN);
// Eğer buton basılmışsa (yani buttonState LOW ise):
if (buttonState == LOW) {
// LED'i YAK
digitalWrite(LED_PIN, HIGH);
// Seri.println("Buton basıldı, LED açık!"); // Seri Port çıktısı
} else {
// Aksi takdirde (buton basılı değilse):
// LED'i SÖNDÜR
digitalWrite(LED_PIN, LOW);
// Seri.println("Buton basılı değil, LED kapalı."); // Seri Port çıktısı
}
// Buton sıçramalarını (debounce) engellemek için küçük bir gecikme ekleyebiliriz.
// Bu, butonun fiziksel teması sırasında oluşan kısa süreli yanlış okumaları önler.
// delay(50);
}
```
---
### **5. Kodu Yükleme ve Test Etme**
1. **Arduino'yu Bilgisayara Bağlayın:** USB kablosunu kullanarak Arduino kartınızı bilgisayarınıza bağlayın.
2. **Arduino IDE'de Kart ve Port Seçimi:**
* `Araçlar > Kart > Arduino Uno` seçeneğini seçin.
* `Araçlar > Port` seçeneğinden Arduino'nuzun bağlı olduğu seri portu seçin (genellikle `COM` ile başlar ve bir sayı takip eder).
3. **Kodu Derle ve Yükle:**
* Arduino IDE'deki "Doğrula" (tik işareti) butonuna basarak kodu derleyin. Herhangi bir hata yoksa, derleme başarılı olacaktır.
* "Yükle" (sağ ok işareti) butonuna basarak kodu Arduino kartınıza yükleyin.
4. **Test Et:**
* Kod yüklendikten sonra, butonunuza basın.
* Buton basılı tutulduğu sürece LED'in yandığını, bıraktığınızda ise söndüğünü görmelisiniz.
---
### **Özetle İşlem Akışı:**
1. **Donanım Kurulumu:** LED ve butonu Arduino'ya doğru şekilde bağlarsınız.
2. **Giriş Pinini Ayarlama:** Arduino programında, butonun bağlı olduğu pini `INPUT_PULLUP` olarak ayarlarsınız. Bu, buton basılmadığında pinin yüksek (HIGH) olmasını sağlar.
3. **Çıkış Pinini Ayarlama:** LED'in bağlı olduğu pini `OUTPUT` olarak ayarlarsınız.
4. **Döngüde Okuma:** `loop()` fonksiyonu içinde, butonun bağlı olduğu pini sürekli olarak `digitalRead()` komutu ile okursunuz.
5. **Karar Verme:** Okunan değer `LOW` (düşük) ise (yani butona basılmışsa), LED'in bağlı olduğu pini `HIGH` (yüksek) yaparak LED'i yakarsınız.
6. **Aksi Durum:** Eğer okunan değer `HIGH` ise (yani butona basılmamışsa), LED'in bağlı olduğu pini `LOW` yaparak LED'i söndürürsünüz.
Bu temel proje, mikrodenetleyicilerle etkileşimli projeler yapmanın kapılarını aralayan önemli bir başlangıç noktasıdır. Başarılar dilerim!
Son Paylaşımlar
-
Python Temelleri Genel Tekrar
14:39:24 - 13/12/2025 -
Python Performans İpuçları
14:38:59 - 13/12/2025 -
Python’da Temiz Kod Yazma
14:38:28 - 13/12/2025 -
Python Mini Proje: Sayı Tahmin Oyunu
14:37:58 - 13/12/2025 -
Python Mini Proje: Hesap Makinesi
14:37:31 - 13/12/2025