Arduino Eğitimleri - 8. Ders Buton ile LED kontrolü
- egitimdebilisim.com

- 6 Kas 2025
- 2 dakikada okunur
Güncelleme tarihi: 10 Ara 2025
Arduino’da buton ile LED kontrolü, dijital giriş (buton) ve dijital çıkış (LED) arasındaki ilişkiyi öğretmek için en temel uygulamalardan biridir.
Gerekli Malzemeler
1 adet Arduino (UNO, Nano, vb.)
1 adet LED
1 adet 220Ω direnç (LED için)
1 adet buton (push button)
Breadboard ve jumper kablolar
Bunların tamamını Tinkercad üzerinden edinerek projenizi gerçekleştirebilirsiniz.

Butonu hatırlayalım.
Buton Bacakları:
Butonda 4 pin vardır ve şöyle isimlendirilir:
1A —— 1B
2A —— 2B
1A ile 1B birbirine bağlıdır (basılı olmasa bile).
2A ile 2B birbirine bağlıdır (basılı olmasa bile).
Bu iki grup normalde birbirine bağlı değildir.
BUTONA BASILINCA NE OLUR?
Basınca 1A–1B hattı ile 2A–2B hattı birleşir.
Yani dört pin tamamen birbirine bağlanır:
1A —— 1B
| |
2A —— 2B
Breadboardsız Devre:
BUTONA BASILMADIĞINDA:
Butona 5V gelmez
PIN 7, direnç üzerinden GND’ye bağlıdır Arduino LOW (0) okur
🟢 BUTONA BASILINCA:
Butonun iki ucu birleşir
5V → PIN 2’ye gider➡️ Arduino HIGH (1) okur

Tüm Devrenin Çalışma Prensibi
1️⃣ Arduino PIN 7 sürekli butonu kontrol eder
2️⃣ Eğer buton basılmamışsa → GND okunur → LED kapalı
3️⃣ Butona basınca → 5V gelir → PIN 7 HIGH olur
4️⃣ Arduino “basıldı” der → PIN 8’i HIGH yapar → LED yanar
5️⃣ Butonu bırakırsın → PIN 8 tekrar GND’ye döner → LED söner
Kodlar:

Breadboardlı Devre:
Breadboard eklediysen şimdi bağlantıları çok daha düzenli ve doğru şekilde kurabiliriz.

Örneğin siyah kabloyu aşağıdaki - hattından alıp aynı yerine götürebiliriz. Çünkü zaten butonun aynı sütundaki bacakları birbirine bağlıdır. Dolayısıyla sarı kablondan alınan bağlantı ile siyah kablonun bağlandığı yer birbirine bağlıdır.

ÖNEMLİ NOT:
Çalışmayan Durum: Direnci 5V Hattına Takmak (Yanlış Pull-Down Denemesi)
Siz direnci 5V'tan butona giden hatta taktığınızda ve butonun diğer ucunu GND'ye bağladığınızda:
Buton Basılı Değil: Arduino pini "havada" kalır (floating). Direnç, butondan önceki 5V hattında olduğu için pini GND'ye çekmez. Bu durumda pin belirsiz bir değer okuyabilir (genellikle $\approx 1-3V$ arası "gürültü" okur) ve bu, Arduino'nun kararsız çalışmasına neden olur.
Buton Basılı: Pin, direnç üzerinden 5V'a bağlanır. Bu durumda okunan değer YÜKSEK (HIGH) olur.
Sorun: Buton basılı değilken pin havada kaldığı için devre kararsızdır.
2. Çalışan Durum: Direnci GND Hattına Takmak (Pull-Down Konfigürasyonu)
Direnci butonun GND bağlantısına taktığınızda (butonun bir ucu 5V'ta, diğer ucu dirence ve Arduino dijital pinine bağlı, direncin diğer ucu GND'de):
Buton Basılı Değil: Direnç, dijital pini sürekli olarak GND'ye (0V'a) bağlar. Dijital pin net bir şekilde DÜŞÜK (LOW) okur.
Buton Basılı: 5V doğrudan pime ve aynı zamanda direnç üzerinden GND'ye bağlanır. Direncin değeri yüksek olduğu için akım büyük ölçüde direnç üzerinden akmaya çalışsa da, pin doğrudan 5V'u görür. Dijital pin net bir şekilde YÜKSEK (HIGH) okur.
Sonuç: Her iki durumda da dijital pinin net, tanımlı bir lojik seviyesi (LOW veya HIGH) vardır, bu da devrenin kararlı çalışmasını sağlar.
Özet video:




Yorumlar