LDR: medir la luz con una fotorresistencia

publicado en: Portada | 8

LDR o fotorresistencia para medir la luz con Arduino

Las LDR (del inglés Light-Dependent Resistor) o fotorresistencias son, como su nombre sugiere, resistencias que varían su valor en función de la luz que incide sobre ellas. Las LDR ofrecen menor resistencia cuanto mayor es la luminosidad. La incidencia de luz sobre las fotorresistencias hace disminuir unas cien veces su valor (dos órdenes de magnitud). La clásica serie GL55, que aún se toma con frecuencia como referencia al hablar de manera genérica de las fotorresistencias, va desde los 5 KΩ a los 200 KΩ en presencia de luz y desde los 500 KΩ a los 10 MΩ en ausencia de luz.

fotorresistencia resistencia mínima con luz resistencia máxima con luz resistencia sin luz
GL5516 5 KΩ 10 KΩ 500 KΩ
GL5528 10 KΩ 20 KΩ 1 MΩ
GL5537-1 20 KΩ 30 KΩ 2 MΩ
GL5537-2 30 KΩ 50 KΩ 3 MΩ
GL5539 50 KΩ 100 KΩ 5 MΩ
GL5549 100 KΩ 200 KΩ 10 MΩ

Este tipo de LDR funcionan hasta una tensión de 150 V y tienen unos 30 ms de tiempo de respuesta. Aunque abarcan más o menos todo el espectro visible (hay otras específicas para la zona infrarroja) son mucho más sensibles al verde, con un pico entorno a los 540 nm de longitud de onda (la del ojo humano, con luz diurna, está un poco más cerca del amarillo, algo menos de 560 nm). Su sensibilidad aumenta con la temperatura, no solo con la luz, es decir, a más temperatura, menor resistencia.

GL55 LDR fotorresistencia sensibilidad relativa longitud de ondaGL55 LDR fotorresistencia resistencia relativa temperatura

Las LDR son muy económicas y sencillas de utilizar pero no son especialmente precisas y su sensibilidad, como se deduce por el gráfico anterior, se ve afectada por la temperatura, especialmente las en condiciones más frías. En realidad, lo más correcto es considerar que las las fotorresistencias sirven para detectar la presencia de luz más que para medir su intensidad.

El material típicamente utilizado como base para construir las LDR sensibles al espectro visible solía ser el sulfuro de cadmio por el comportamiento de sus resistencia eléctrica en presencia de luz pero, por ser el cadmio un metal pesado agresivo al medio ambiente, su uso está prohibido en dispositivos electrónicos de consumo desde la entrada en vigor de la Directiva 2002/95/CE de 27 de enero de 2003 del Parlamento Europeo y del Consejo sobre restricciones a la utilización de determinadas sustancias peligrosas en aparatos eléctricos y electrónicos.

La conexión habitual de las fotorresistencias en un circuito, especialmente en los microcontrolados, suele ser como un divisor de tensión. Se dispone la LDR entre la alimentación positiva y la salida de señal (la entrada analógica del microcontrolador) y desde ahí se conecta con una resistencia a la alimentación negativa. Supondremos VCC la alimentación positiva, por ejemplo +5 V para una placa Arduino Uno y masa (GND) la negativa. Si fuera necesaria mucha precisión o realizar ajustes sobre el circuito terminado, se podría usar una resistencia variable en lugar de la resistencia fija.

LDR esquema conexión fotorresistencia microcontrolador divisor tensióndivisor tensión esquema fórmula microcontrolador entrada analógica

Para calcular la tensión máxima que llegará a la entrada analógica del µC, considerando la alimentación que se ha planteado para el circuito, se puede multiplicar el valor de VCC por el resultado de dividir la resistencia a masa por la suma de ella y el valor menor de resistencia (máxima luz) de la LDR.

A la vista del cálculo anterior se ve que la tensión a la entrada analógica del µC nunca será la de la alimentación. Aunque su uso, como se ha dicho, es más de detección que de medición, una construcción muy estricta podría incluir, además de la LDR y la resistencia a masa, un divisor de tensión que sirviera de referencia de medida analógica al microcontrolador.

En el caso de Arduino, habría que aplicar a la entrada AREF la salida (el nudo) del divisor de tensión de referencia como se indica en el esquema del circuito de abajo.

LDR fotorresistencia esquema circuito microcontrolador Arduino AREF referencia entrada analógica divisor de tensión

El valor de la resistencia RVCC del circuito anterior debe ser igual al menor de la fotorresistencia y el de la resistencia RGND debe ser igual al de la resistencia que conecta a masa la entrada analógica del microcontrolador y la LDR. Para la resistencia RGND se suele usar un valor 10 KΩ.

Sería raro que mereciera la pena para el caso de usar fotorresistencias pero con carácter general para medidas analógicas, para conseguir la precisión que se pierde por la tolerancia de las resistencias y para poder realizar ajustes, es posible utilizar una resistencia variable con la que afinar el valor de la tensión de referencia.

El correspondiente programa para medir la luz con Arduino y una LDR es muy sencillo, se trata solamente de medir de forma analógica la tensión; la luminosidad será mayor cuanto mayor sea la tensión ya que a más luz menos resistencia y por tanto más tensión. Para trabajar con la referencia que aporta el divisor de tensión, si se usa, se inca a Arduino con analogReference(EXTERNAL); que significa que el mayor valor de tensión medida (de forma analógica) será el aplicado al pin AREF.

El programa anterior mostrará un porcentaje de iluminación cada segundo (1000 ms) calculado multiplicando por 100 (porcentaje) y dividiendo por 1023, el valor mayor obtenido por la lectura analógica de 10 bits de Arduino. Se podría afinar utilizando un valor para detectar la oscuridad total en función del valor de la resistencia máxima de la LDR que se puede obtener de la hoja de datos del fabricante o estimar usando la tabla del principio del artículo.

LDR (fotorresistencia) para medir la intensidad de luz con Arduino

Víctor Ventura

Desarrollando aplicaciones para la web conocí el potencial de internet de las cosas, encontré la excusa perfecta para satisfacer la inquietud de aprender electrónica que había tenido desde siempre. Ahora puedo darme el gusto de programar las cosas que yo mismo diseño y fabrico.

Más entradas - Página web

Sígueme:
TwitterLinkedIn

Seguir Víctor Ventura:

Programador multimedia y web + IoT. Mejor con software libre.

Desarrollando aplicaciones para la web conocí el potencial de internet de las cosas, encontré la excusa perfecta para satisfacer la inquietud de aprender electrónica que había tenido desde siempre. Ahora puedo darme el gusto de programar las cosas que yo mismo diseño y fabrico.

8 Respuestas

  1. Javier galvis

    Víctor, excelente tu página, te felicito, tu sintaxis es muy clara, resuelves dudas que he tenido para entender algunas formas en las que operan los circuitos electrónicos y la programación de algunos proyectos tecnicos que estoy realizando. La forma como explicas es muy clara. Gracias.

  2. luis edgar decuir ramon

    muy buena teoría sobre esto amigo, era lo que necesitaba, y muchas gracias por tomarte tu tiempo para hacer esto! un saludos sigue creciendo!

  3. joan

    Muchas gracias Víctor! Muy buena entrada y blog!
    Tengo una pregunta, si quisieramos un poco más de precisión, qué utilizaríamos? hay disponible algun otro tipo de sensor?

    • Víctor Ventura

      Hola, Joan.

      Para medir con más precisión hay otro tipo de sensores, tanto analógicos, como el OPT101, como digitales, como el BH1750 del que puedes leer aquí mismo un artículo.

      Gracias a ti por participar en el blog.

  4. Franci

    hola, por favor, podrias decirme que ldr es más recomendable para usar con arduino y hacer un girasol o un seguimiento de linea, 5518, 5528 o 5537, gracias

  5. José María

    Buenos días, ante todo enhorabuena por tu página. Por favor, podrías decirme si existen LDR sensibles sólo a un determiado color, verde por ejemplo? Gracias

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *