ESP8266 NodeMCU ile Buton Kontrollü LED Uygulaması

👤 Yazar: ozcan 📅 Tarih: 28.07.2026 17:06 👁️ Görüntüleme: 10

ESP8266 NodeMCU ile Buton Kontrollü LED Uygulaması

Bu rehberde, ESP8266 NodeMCU geliştirme kartı ile harici bir push buton kullanarak LED kontrolü yapmayı inceleyeceğiz. Dijital giriş (Digital Read) mantığını anlayarak, fiziksel bir buton basışına göre çıkıştaki LED'i yakıp söndüren temel bir kontrol devresi oluşturacağız.

ESP8266 NodeMCU Buton ve LED Bağlantı Şeması

Gerekli Malzemeler:
  • 1 x ESP8266 NodeMCU V3 Geliştirme Kartı
  • 1 x 5mm LED
  • 1 x Push Buton (2 Pin / 4 Pin)
  • 1 x 220 Ω Direnç (LED Koruma Direnci)
  • 1 x 10 kΩ Direnç (Pull-Down Direnci)
  • Jumper Kablolar (Erkek - Erkek)

Devre Bağlantı Detayları

Şemaya uygun olarak yapılan bağlantı adımları şu şekildedir:

1. LED Bağlantısı (Çıkış):

  • NodeMCU D0 (GPIO16) pini -> 220 Ω direnç üzerinden LED'in Anot (+) bacağına.
  • LED'in Katot (-) bacağı -> NodeMCU GND hattına.

2. Buton ve Pull-Down Devresi (Giriş):

  • Butonun bir bacağı -> NodeMCU 3V3 (+3.3V) güç hattına.
  • Butonun diğer bacağı -> NodeMCU D5 (GPIO14) giriş pinine.
  • Pull-Down Direnci: D5 pini ile butonun birleştiği noktadan 10 kΩ direnç bağlanarak GND hattına çekilmiştir.
Pull-Down Direnci Neden Gereklidir?
Butona basılmadığı anlarda mikrodenetleyici pinleri havalı (floating) durumda kalır ve ortamdaki elektromanyetik gürültüden etkilenerek kararsız okumalar (rastgele HIGH/LOW) yapabilir. 10 kΩ Pull-Down direnci, buton serbestken D5 pinini kararlı bir şekilde 0V (LOW) seviyesinde tutar.

Örnek Arduino IDE Kodu

Butona basıldığında (HIGH okunduğunda) LED'i yakan, buton serbest bırakıldığında (LOW okunduğunda) LED'i söndüren örnek yazılım koda aşağıdan ulaşabilirsiniz:

// ESP8266 NodeMCU Buton ile LED Kontrolü

const int ledPin = D0;    // LED'in bağlı olduğu pin (GPIO16)
const int butonPin = D5;  // Butonun bağlı olduğu pin (GPIO14)

int butonDurumu = 0;      // Buton durumunu saklayacak değişken

void setup() {
  pinMode(ledPin, OUTPUT);   // LED pini çıkış olarak ayarlandı
  pinMode(butonPin, INPUT);  // Buton pini giriş olarak ayarlandı
}

void loop() {
  // D5 pinindeki dijital voltaj seviyesini okuyoruz (HIGH veya LOW)
  butonDurumu = digitalRead(butonPin);

  // Eğer butona basılmışsa (Pull-down nedeniyle 3.3V yani HIGH gelir)
  if (butonDurumu == HIGH) {
    digitalWrite(ledPin, HIGH); // LED'i yak
  } else {
    digitalWrite(ledPin, LOW);  // Buton serbestse LED'i söndür
  }
}

Çalışma Prensibi ve İpuçları

  • Sinyal Akışı: Butona basıldığında 3.3V hattı doğrudan D5 pinine iletilir ve `digitalRead(D5)` komutu `HIGH` (1) değerini döner. Buton bırakıldığında ise 10 kΩ direnç pindeki yükü toprağa tahliye eder ve okuma `LOW` (0) olur.
  • Yazılımsal Debounce (Sıçrama Önleme): Mekanik butonların içindeki metal kontaklar basılma anında mikrosaniyeler içinde defalarca sekebilir. Daha hassas projelerde buton arkını (ark/bounce) engellemek için kod içerisine `delay(50);` gibi kısa bekleme süreleri veya zamana dayalı debounce algoritmaları eklenebilir.

💬 Yorumlar

Henüz yorum yapılmamış. İlk yorumu siz yapın!

Bir Yorum Bırakın

Güvenlik Kontrolü:

Yenidir.com
↑ Sayfa Başı
📞 İletişim ✉ E-Posta Gönder 🟥 YouTube
© 2026 Yenidir.com
Yenidir CMS V0.1