#113Principiante
Lettura dell'intensità luminosa con il modulo LDR ESP32
Monitoraggio in tempo reale sul Serial Monitor del valore di luce misurato dal modulo LDR + valore approssimativo in lux. Spiega il principio di calibrazione del modulo. È consigliabile eseguirlo prima del Progetto 10, poiché serve a determinare il valore di soglia.
4.6(36)
55 completato

Monitoraggio in tempo reale sul Serial Monitor del valore di luce misurato dal modulo LDR + valore approssimativo in lux. Spiega il principio di calibrazione del modulo. È consigliabile eseguirlo prima del Progetto 10, poiché serve a determinare il valore di soglia.
Video
Schema circuito

Codice sorgente
1#if defined(CONFIG_IDF_TARGET_ESP32S2) || defined(CONFIG_IDF_TARGET_ESP32S3)
2 const int LDR_PIN = 1; // ESP32-S2/S3: ADC1_CH0
3#else
4 const int LDR_PIN = 34; // Klasik ESP32 DevKit V1: ADC1_CH6 (input-only) / GPIO 1 Serial TX cakisir
5#endif
6
7// Kalibrasyon — kendi ortamında ölç, buraya yaz:
8// LDR Modülünde aydınlık arttıkça A0 voltajı (ve raw) DÜŞER.
9const int RAW_DARK = 4000; // Karanlık raw / Dark raw
10const int RAW_LIGHT = 100; // Aydınlık raw / Light raw
11
12void setup() {
13 Serial.begin(115200);
14 analogReadResolution(12); // 12-bit ADC / Force 12-bit
15 Serial.println("LDR Okuma / LDR Reading");
16 Serial.println("-----------------------------");
17}
18
19void loop() {
20 int raw = analogRead(LDR_PIN);
21 int clipped = constrain(raw, RAW_LIGHT, RAW_DARK);
22 int percent = map(clipped, RAW_DARK, RAW_LIGHT, 0, 100);
23
24 Serial.print("Raw: ");
25 Serial.print(raw);
26 Serial.print(" | Light: %");
27 Serial.println(percent);
28
29 delay(500);
30}