#11Principiante

Medir la intensidad de luz con LDR

4.6(78)
119 completado
Medir la intensidad de luz con LDR
Proyecto que mide la intensidad de la luz ambiental con un sensor LDR y la muestra en un monitor serie. Enseña los fundamentos de la lectura de sensores analógicos y la comunicación serie.

Video

Diagrama del circuito

Medir la intensidad de luz con LDR - Circuit

Código fuente

Arduino (C++)
1// ─────────────────────────────────────────
2//   BlueGrays · bluegrays.com
3//   Medir la intensidad de luz con LDR
4// ─────────────────────────────────────────
5// Lee la luz ambiental en A0 mediante un divisor de tensión formado por un
6// LDR y una resistencia de 10k, e imprime el valor de 0-1023 en el Monitor
7// Serie cada 0.5 s. El valor sube cuanto más brillante es la luz.
8//
9// Pines:
10//   A0 -> Unión del LDR y la resistencia de 10k
11//   Otra patilla del LDR a 5V, otra patilla de la de 10k a GND
12
13int value;   // Lectura de luz (0-1023)
14
15void setup() {
16  Serial.begin(9600);   // Serial a 9600 baudios
17}
18
19void loop() {
20  value = analogRead(A0);   // Leer la tensión del LDR
21  Serial.print("Value: ");
22  Serial.println(value);
23  delay(500);               // Esperar 0.5 s
24}
25

Preguntas frecuentes

¿Cómo funciona el LDR?▾

A medida que aumenta la luz que incide sobre el LDR (resistencia fotosensible), su resistencia disminuye. Cuando se crea un divisor de tensión con una resistencia de 10 kΩ, la variación de la luz se convierte en una variación de tensión y se lee como un valor comprendido entre 0 y 1023 mediante la función analogRead.

¿Qué valores deben marcarse en condiciones de luz y de oscuridad?▾

Depende del tipo de conexión; por lo general, se observan valores altos con luz y bajos en la oscuridad (o al revés). Anota los valores de luz y oscuridad en el Monitor serie en su propio entorno; estos se utilizarán para seleccionar el valor umbral en proyectos posteriores.

Veo caracteres sin sentido en el monitor serie, ¿por qué?▾

La velocidad de transmisión del monitor serie debe coincidir con el valor de Serial.begin() del código (por ejemplo, 9600). Si no coinciden, aparecerán caracteres distorsionados en la pantalla.

¿Hay algún sensor de luz más preciso que el LDR?▾

Sí, los sensores de luz I2C, como el BH1750, miden la luz directamente en lux (lx) y son mucho más fiables que los LDR. Para una simple luz nocturna y la detección de oscuridad, basta con un LDR.

Medir la intensidad de luz con LDR | BlueGrays