Vamos a hablar en esta sencilla entrada del sensor de luminosidad LDR. Como su nombre indica (light-dependent resistor), está basado en la variación de la resistencia del sensor en función del nivel de iluminación que incida en él.
Puesto que es una resistencia variable, trataremos al LDR como un divisor de tensión. Si conectamos el sensor de forma adecuada, una de las patas mostrará una tensión variable entre 0 y 5V en función de la cantidad de luz que reciba.
Cómo conectar el sensor LDR
En su día ya indicamos cómo conectar el sensor LDR. Nos hacía falta una resistencia de 10 kΩ:

Cuanta más luz hay, la entrada analógica más cerca está de 5V, puesto que la resistencia del sensor es más más baja. La resistencia está en configuración de pull-down. El sensor LDR es barato y se encuentra fácilmente en internet a buen precio.
A veces se suministra en un módulo, como se ve en la fotografía que encabeza esta entrada. Este módulo no requiere resistencia. La pata de la izquierda (S) debe conectarse a 5V, la pata del centro a GND y la pata de la derecha (-) a una entrada analógica, A0 por ejemplo. En este caso, cuanta más luz haya, más cerca estará la entrada de 0 V, la resistencia instalada en el módulo está en configuración de pull-up.
Medición analógica del sensor e iluminancia (lux)
Existe una relación entre la resistencia que presenta el sensor LDR y el valor de la iluminancia, propio de la luz que incide sobre él. Esta última magnitud se mide en lux, de uso muy habitual en la normativa sobre iluminación de espacios (oficinas, fábricas, aulas, etcétera). De acuerdo con el datasheet de RS:
En la gráfica se ve que cuanto mayor luz hay menos resistencia presenta el sensor. Con esta gráfica podemos relacionar la entrada analógica, ya sea en voltios (entre 0 y 5V) o un número entra 0 y 1023, con la iluminancia en lux. Para ello hay que tener en cuenta que la gráfica es logarítmica.
En una entrada posterior desarrollaremos este tema. Es útil par a imprimir en una pantalla el valor de luxes, en lugar de un número entre 0 y 1023, que no aporta una información manejable.
En casi todos los móviles hay sensores de luminosidad y programas que obtienen la medida en luxes. Pueden usarse para comparar e incluso para calibrar este sensor. Debe tenerse en cuenta que el sensor no es muy preciso.
Programación del sensor LDR
Como ya hemos visto varias veces, una entrada analógica es muy fácil de programar para placas como arduino. El código para IDE sería:
int luz; void setup() { Serial.begin(9600); } void loop() { luz = analogRead(0); Serial.println(luz); delay(1000); }
A este código habría que añadir la transformación matemática que transforma los valores de 0-1023 a luxes.