Please enable / Bitte aktiviere JavaScript!
Veuillez activer / Por favor activa el Javascript![ ? ]

sábado, 14 de mayo de 2016

MEDIR NIVEL DE LUZ CON FOTORESISTENCIA LDR EN ARDUINO

En este articulo aprenderemos a medir el nivel de luz, tanto en interiores o exteriores, con la ayuda de Arduino y una fotoresistencia LDR (familia GL55 o similar), usando las entradas analógicas de Arduino.

¿Qué es un fotoresistor LDR?

Un fotoresistor, o LDR (light-dependent resistor) es un dispositivo cuya resistencia varia en función de la luz recibida. Podemos usar esta variación para medir, a través de las entradas analógicas, una estimación del nivel de la luz.
Por tanto, un fotoresistor disminuye su resistencia a medida que aumenta la luz sobre él. Los valores típicos son de 1 Mohm en total oscuridad, a 50-100 Ohm bajo luz brillante.
Por otro lado, la variación de la resistencia es relativamente lenta, de 20 a 100 ms en función del modelo. Esta lentitud hace que no sea posible registrar variaciones rápidas, como las producidas en fuentes de luz artificiales alimentadas por corriente alterna. Este comportamiento puede ser beneficioso, ya que dota al sensor de una gran estabilidad.
Finalmente, los fotoresistores no resultan adecuados para proporcionar una medición de la iluminancia, es decir, para servir como luxómetro Esto es debido a su baja precisión, su fuerte dependencia con la temperatura y, especialmente, a que su distribución espectral no resulta adecuada para la medición de iluminancia.

Por tanto, un LDR es una sensor que resulta adecuado para proporcionar medidas cuantitativas sobre el nivel de luz, tanto en interiores como en exteriores, y reaccionar, por ejemplo, encendiendo una luz, subiendo una persiana, u orientando un robot.

¿Cómo funciona un fotoresistor LDR?

Matemáticamente, la relación entre la iluminancia y la resistencia de una LDR sigue una función potencial.

Siendo R0 la resistencia a una intensidad I0, ambas conocidas.
La constante gamma es la pendiente de la gráfica logarítmica, o la pérdida de resistencia por década. Su valor típicamente 0.5 a 0.8.
Por este motivo, frecuentemente las gráficas que relacionan ambos valores se representan en escalas logarítmicas para ambos ejes. Bajo esta representación, la relación se muestra como una gráfica lineal.

Estos valores pueden ser obtenidos del datasheet del componente. Por ejemplo, para la familia GL55 de fotoresistores son los siguientes:
Modelo Voltaje
(V)
Temperatura
(ºC)
Pico
espectral
(nm)
Resistencia
oscuridad
(KΩ)
Resistencia
luz brillante
(KΩ)
gamma Tiempo
respuesta
(ms)
GL5516 150 -30º+70º 540 5-10 500 0.5 30
GL5528 150 -30º+70º 540 10-20 1000 0.6 25
GL5537-1 150 -30º+70º 540 20-30 2000 0.6 25
GL5537-2 150 -30º+70º 540 30-50 3000 0.7 25
GL5539 150 -30º+70º 540 50-100 5000 0.8 25
GL5549 150 -30º+70º 540 100-200 10000 0.9 25

Sin embargo, siempre existirán pequeñas variaciones entre dispositivos, incluso dentro de la misma familia, debidos a la fabricación del componente.
El comportamiento potencial hace que estas pequeñas diferencias supongan grandes variaciones en la medición, por lo que no es posible, en general, emplear estos valores de forma absoluta sin un proceso de calibración.

Esquema eléctrico

El esquema eléctrico sería el siguiente.

Montaje

Por su parte, el montaje eléctrico en una protoboard quedaría de la siguiente manera.

Ejemplos de código

A continuación tenéis algunos ejemplos de código. En el siguiente, usamos las entradas digitales para hacer parpadear el LED integrado en la placa mientras el LDR recibe luz suficiente.


El siguiente ejemplo emplea una entrada analógica para activar el LED integrado en la placa si supera un cierto umbral (threshold).


El siguiente código proporciona una lectura del nivel de iluminación recibido. Observar que los cálculos se realizan con aritmética de enteros, evitando emplear números de coma flotante, dado que ralentizan mucho la ejecución del código.

Si te ha gustado comparte y comenta

Compartir la pagina :

0 comentarios: