Arduino öğrenmeye yeni başlayanların mutlaka yapması gereken ilk uygulamalardan biri buton ile LED kontrol devresi kurmaktır. Bu derste, bir butona bastığımızda LED’in yanmasını sağlayarak hem dijital giriş (input) hem de dijital çıkış (output) mantığını öğreniyoruz.
Bu yazıda, devre bağlantısından kod yapısına kadar tüm süreci adım adım ve sade bir şekilde anlatıyorum.
🔌 Gerekli Malzemeler
- Arduino Uno
- 1 adet LED
- 220Ω veya 330Ω direnç
- 1 adet 4 pinli buton
- Breadboard
- Jumper kablolar
📺 Ders videosunu buradan izleyebilirsiniz:
YouTube: https://www.youtube.com/watch?v=2YvaIKm59WU
📌 Devre Bağlantısı Nasıl Yapılır?
1️⃣ LED Bağlantısı
- LED’in anot (uzun bacak) ucu → D9 dijital pin
- LED’in katot (kısa bacak) ucu → Direnç üzerinden GND
Neden Direnç Kullanıyoruz?
Arduino’nun dijital pinleri HIGH olduğunda yaklaşık 5V üretir. Eğer LED’i dirençsiz bağlarsak aşırı akım nedeniyle LED zarar görebilir. Bu yüzden LED’i mutlaka bir akım sınırlama direnci ile korumalıyız.
2️⃣ Buton Bağlantısı
- Butonun bir ucu → GND
- Diğer ucu → D0 dijital pin
4 pinli butonlarda:
- 1–2 kendi içinde bağlıdır
- 3–4 kendi içinde bağlıdır
- Butona basıldığında 1 ile 3 kısa devre olur
Bu devrede butona bastığımızda D0 pinine Logic 0 (LOW) seviyesi gider.
Buton Ile Led Kontrol Uygulamasinin Kodu:
/*
* =================================================================================
* PROJE ADI: Buton ile LED Kontrolü
*
* AÇIKLAMA:
* Bu eğitimde buton kullanılarak bir LED'in nasıl kontrol edileceği anlatılmıştır.
* Butona basıldığında LED yanar, buton bırakıldığında LED söner.
*
* DEVRE KURULUMU VE DETAYLI ANLATIM:
* YouTube Video Rehberi: https://www.youtube.com/watch?v=2YvaIKm59WU
* Web Sitemiz / Blog : https://elektronikderslerim.blogspot.com/2026/02/lojik-kaplar-dijital-devrelerin-temel.html
* =================================================================================
*/
void setup() { // ilk başlatma anında bir defa çalışır
pinMode(0, INPUT);
pinMode(1, INPUT);
pinMode(9, OUTPUT);
pinMode(12, OUTPUT);
}
void loop()
{ // bu döngü sürekli tekrar eder
if(digitalRead(1)==LOW)
{
digitalWrite(12, HIGH);
}
digitalWrite(12, LOW);
if(digitalRead(0)==LOW)
{
digitalWrite(9, HIGH);
}
digitalWrite(9, LOW);
}Devre şemasına ulaşmak için linke tıkla:Buton ile LED Kontrolü — Kodun Açıklaması
Bu projede iki eleman kullanıyoruz: bir buton (LED'i tetiklemek için) ve iki LED (butonlara karşılık yanıp sönen). Kodu parça parça inceleyelim.
1. setup() Bölümü
Burada dört pini tanımlıyoruz:
- 0 ve 1 numaralı pinler →
INPUTyani giriş. Bunlara butonlarımız bağlı; Arduino bu pinlerden butona basılıp basılmadığını okuyacak. - 9 ve 12 numaralı pinler →
OUTPUTyani çıkış. Bunlara LED'lerimiz bağlı; Arduino bu pinlere sinyal gönderecek.
setup() fonksiyonu program başladığında sadece bir kez çalışır, bu yüzden pin ayarlarını burada yapıyoruz.
2. loop() Bölümü — Sürekli Tekrarlanan Kısım
digitalRead(1)komutu, 1 numaralı pindeki (butondaki) durumu okur.- Eğer buton basılıysa sonuç
LOWolur (bu, butonun devreye nasıl bağlandığına bağlı bir durumdur). - Eğer buton basılıysa,
digitalWrite(12, HIGH);komutu ile 12 numaralı pindeki LED'i yakmaya çalışırız.
Aynı mantık, 0 numaralı buton ve 9 numaralı LED için ikinci blokta tekrarlanır:
if(digitalRead(0)==LOW)
{
digitalWrite(9, HIGH);
}
digitalWrite(9, LOW);
⚠️ Dikkat: Bu Koddaki Küçük Bir Hata
Bu kodda öğrencilerin sık yaptığı bir hata var, bunu da anlatmak faydalı olur: digitalWrite(12, LOW); satırı, if bloğunun dışında ve her zaman çalışıyor. Yani Arduino LED'i HIGH yapıp hemen ardından tekrar LOW yapıyor — bu o kadar hızlı olur ki LED'in yandığını göz neredeyse hiç fark edemez.
Doğru çalışması için else kullanmak gerekir:
if(digitalRead(1)==LOW)
{
digitalWrite(12, HIGH); // buton basılıyken LED yanık kalsın
}
else
{
digitalWrite(12, LOW); // buton bırakılınca LED sönsün
}
📢 Beni takip etmeyi unutmayınYeni dersler, projeler ve elektronik içerikler için:
🎥 YouTube: https://www.youtube.com/@ohmakademi📸 Instagram: https://www.instagram.com/ohmakademi🎵 TikTok: https://www.tiktok.com/@ohmakademi👍 Facebook: https://www.facebook.com/@ohmakademi
Abone olarak ve takip ederek seriye destek olabilirsiniz 🙌
-----------------------------------------------------------------------------------------------------------------------------
🧠 Önemli Kavramlar
🔹 Logic 0 (LOW)
0 Volt seviyesini temsil eder.
🔹 Logic 1 (HIGH)
5 Volt seviyesini temsil eder.
🔹 Dijital Giriş – Dijital Çıkış Farkı
-
INPUT → Sensör, buton gibi elemanlardan veri alır
-
OUTPUT → LED, röle gibi elemanlara veri gönderir
🎯 Ev Ödevi (Pratik Çalışma)
Bu derste butona basıldığında LOW geldiğinde LED yandı.
Şimdi sizden istediğim:
👉 Butona basıldığında HIGH geldiğinde LED yansın.
Bunun için:
-
Devre bağlantısını değiştirmeniz
-
Kod içindeki koşulu HIGH’a göre düzenlemeniz gerekir
Bu değişikliği yaparak dijital giriş mantığını daha iyi kavrayabilirsiniz.
🚀 Bu Ders Neden Önemli?
Bu uygulama:
-
Arduino dijital pin kullanımını öğretir
-
Giriş/çıkış mantığını kavratır
-
Embedded sistemlere başlangıç sağlar
-
Sensör okuma ve kontrol projelerinin temelini oluşturur
Buton + LED uygulaması basit görünse de, mikrodenetleyici dünyasının en kritik temelidir.
📚 Arduino Öğrenmeye Devam
Bu yazı, Sıfırdan Uygulamalı Arduino Kursu – Ders 6 içeriğinin blog versiyonudur. Eğer Arduino öğrenmeye yeni başladıysanız, bu tür temel devreleri mutlaka kendiniz kurarak ilerlemenizi tavsiye ederim.
Sorularınızı yorum kısmına yazabilirsiniz.
Bir sonraki derste görüşmek üzere 🚀
