LDR (Light Dependent Resistor), ortamdaki ışık şiddetine bağlı olarak direnç değeri değişen bir foto-dirençtir. ESP8266 (NodeMCU) üzerinde yer alan tek analog giriş pini olan A0 (ADC0) vasıtasıyla LDR üzerindeki gerilim değişimi ölçülerek ortamın ışık düzeyi sayısal veriye dönüştürülür.

Şemadaki devre bağlantılarına göre ESP8266 (NodeMCU) ile LDR gerilim bölücü devresi arasındaki pin haritası şu şekildedir:
| Bileşen / Hat | NodeMCU Pin | Sinyal / İşlev | Açıklama / Kablo Rengi |
|---|---|---|---|
| 3.3V Besleme | 3V3 | 3.3V Güç Çıkışı | LDR bacağına bağlanır (Kırmızı Kablo) |
| GND Hattı | GND | Ortak Toprak | Sabit direnç üzerinden bağlanır (Siyah Kablo) |
| Analog Okuma | A0 | ADC (0 - 1023) | LDR ile Direnç birleşim noktası (Yeşil Kablo) |
Aşağıdaki C++ kodu, A0 pininden LDR ham verisini okur, yüzdelik ışık seviyesini hesaplar ve Seri Port Ekranı üzerinden anlık olarak sunar:
#include <Arduino.h>
// Pin Tanımlaması
const int LDR_PIN = A0; // ESP8266 Analog Giriş Pini
void setup() {
Serial.begin(115200);
delay(10);
Serial.println("\nESP8266 LDR Işık Sensörü Testi Başlatılıyor...");
}
void loop() {
// A0 pininden ham ADC değerini okuma (0 - 1023)
int ldrRaw = analogRead(LDR_PIN);
// Read değerini yüzdelik ortama eşleme (0 - 100%)
int lightPercent = map(ldrRaw, 0, 1023, 0, 100);
// Seri Port Çıktısı
Serial.print("Ham ADC Değeri: ");
Serial.print(ldrRaw);
Serial.print(" | Işık Seviyesi: %");
Serial.print(lightPercent);
// Basit Durum Değerlendirmesi
if (lightPercent < 30) {
Serial.println(" -> [Karanlık]");
} else if (lightPercent < 70) {
Serial.println(" -> [Normal Işık]");
} else {
Serial.println(" -> [Yüksek Işık / Aydınlık]");
}
delay(500); // 500 ms aralıklarla ölçüm yap
}
Henüz yorum yapılmamış. İlk yorumu siz yapın!