ESP8266 NodeMCU ile Potansiyometre Kontrollü LED Parlaklığı (PWM & ADC)

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

ESP8266 NodeMCU ile Potansiyometre Kontrollü LED Parlaklığı (PWM & ADC)

Bu rehberde, ESP8266 NodeMCU üzerindeki analog-dijital dönüştürücü (ADC) pinini kullanarak bir potansiyometreden gelen voltaj değerini okuyacağız. Okunan bu analog değeri PWM sinyaline dönüştürerek LED'in parlaklığını ayarlayacak ve tüm verileri anlık olarak Seri Port (Serial Monitor) üzerinden takip edeceğiz.

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

Gerekli Malzemeler:
  • 1 x ESP8266 NodeMCU V3 Geliştirme Kartı
  • 1 x Potansiyometre (10 kΩ B Tipi önerilir)
  • 1 x 5mm LED
  • 1 x 220 Ω Direnç (LED Koruma Direnci)
  • Jumper Kablolar (Erkek - Erkek)

Devre Bağlantı Şeması

Görseldeki Fritzing şemasına göre yapılan pin bağlantıları şu şekildedir:

1. Potansiyometre Bağlantısı (Analog Giriş):

  • Sol Dış Bacak: NodeMCU üzerindeki 3V3 (+3.3V) hattına.
  • Orta Bacak (Sinyal): NodeMCU üzerindeki tek analog giriş pini olan A0 (ADC0) pinine.
  • Sağ Dış Bacak: NodeMCU üzerindeki GND hattına.

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

  • NodeMCU D0 (GPIO16) pini -> 220 Ω direnç üzerinden LED'in Anot (+) bacağına.
  • LED'in Katot (-) bacağı -> NodeMCU GND hattına.
Kritik Bilgi (ADC ve PWM Çözünürlüğü):
ESP8266'nın A0 pini 10-bit çözünürlüktedir ve 0 - 1023 arasında değerler okur (0V - 1.0V dahili / NodeMCU kart bölücüleriyle 0V - 3.3V). ESP8266'da varsayılan PWM çözünürlüğü ise 10-bit yani 0 - 1023 aralığındadır. Bu nedenle Arduino UNO'daki gibi `map(pot, 0, 1023, 0, 255)` dönüştürmesine ihtiyaç duyulmadan okunan değer doğrudan PWM çıkışı olarak kullanılabilir.

Örnek Arduino IDE Kodu

Aşağıdaki kod potansiyometreden gelen ham ADC değerini okur, bu değeri doğrudan PWM sinyali olarak D0 pinine iletir ve anlık durum verilerini Seri Port Ekranı'na yazdırır:

// ESP8266 NodeMCU Potansiyometre ile PWM LED Kontrolü

const int potPin = A0;  // Potansiyometre sinyal pini (ADC0)
const int ledPin = D0;  // LED PWM pini (GPIO16)

int potDegeri = 0;      // Potansiyometreden okunan ham değer (0 - 1023)
int pwmDegeri = 0;      // LED'e sürülen PWM değeri (0 - 1023)

void setup() {
  // Seri haberleşmeyi 115200 baud hızında başlatıyoruz
  Serial.begin(115200);

  // Pin modlarını ayarlıyoruz
  pinMode(ledPin, OUTPUT);
  // Analog pinler varsayılan olarak giriş modundadır
}

void loop() {
  // A0 pininden analog değeri okuyoruz (0 - 1023)
  potDegeri = analogRead(potPin);

  // ESP8266 PWM çözünürlüğü varsayılan olarak 10-bit (0-1023) olduğu için
  // okunan pot değerini doğrudan PWM olarak LED pini üzerine sürüyoruz
  pwmDegeri = potDegeri;
  analogWrite(ledPin, pwmDegeri);

  // Verileri Seri Port Ekranına (Serial Monitor) yazdırıyoruz
  Serial.print("POT Okunan Deger: ");
  Serial.print(potDegeri);
  Serial.print(" | LED PWM Sinyali: ");
  Serial.print(pwmDegeri);
  Serial.print(" (%");
  Serial.print((pwmDegeri / 1023.0) * 100.0, 1); // Yüzdesel doluluk oranı (Duty Cycle)
  Serial.println(")");

  // Seri port ekranının rahat okunabilmesi ve kararlılık için kısa bekleme
  delay(100);
}

Çalışma Prensibi ve Teknik Detaylar

  • PWM (Pulse Width Modulation) Mantığı: `analogWrite()` fonksiyonu gerçek bir analog voltaj çıkışı üretmez. Bunun yerine kare dalganın "HIGH" kalma süresini (Duty Cycle) değiştirir. 1023 değeri verildiğinde hat sürekli 3.3V vererek LED'i %100 parlaklıkta yakar. 512 verildiğinde zamanın %50'sinde açık kalarak LED'in yarı parlaklıkta görünmesini sağlar.
  • Seri Port Takibi: Kodu yükledikten sonra Arduino IDE üzerinde Araçlar -> Seri Port Ekranı (Ctrl+Shift+M) penceresini açıp hızı 115200 baud olarak seçtiğinizde, potu çevirdikçe değişen değerleri canlı olarak ekranda gözlemleyebilirsiniz.

💬 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