LDRs para saber cuándo tomar el sol
Aloha novatillos! Hace años escribí un post en el que incluía los robots huyeluz. Estos robots lo que hacen es huir de la luz, marchándose en dirección contraria a ella.
Este mecanismo es bastante simple y lo podemos replicar fácilmente ya que utiliza un componente llamado LDR: Light-Dependent Resistor.
Y si sabes un poco de inglés, seguro que ya sabes de qué va esto….
La absorción que creaba conducción
Los LDR o fotorresisores o fotorresistencias son componentes que varían su resistencia interna dependiendo de la luz que reciben. Con un ambiente oscuro podemos tener una resistencia de 1MOhm y si enfocamos una linterna, bajar esta resistencia a 100 Ohm.
Esto ocurre debido al material, que si bajamos al nivel de electrones en el material, lo que vemos es que cuando la luz impacta sobre este material, algunos fotones se absorben y los electrones empiezan a conducir.
Si conducen más, la resistencia general baja y esto es lo que vemos en la realidad. Este proceso se hace en un tiempo de unos 100ms, lo que nos quita de problemas a los makers que solamente queremos medir variaciones de luminosidad reales y no algunas que tengan que ver con muchos hercios por en medio…
Esta característica los hace menos válidos para medidas de precisión pero para nosotros es perfecto y económico.
¿Y esto pata qué sirve?
Estos LDR pueden ser utilizados en aplicaciones como:
- Encendido de las luces de casa cuando es de noche y no estamos
- Encendido de farolas
- Robots que siguen o huyen de la luz
- Ajustar la luz de una bombilla a la luz necesaria en cada momento según la luz entrante por la ventana
Y en definitiva cualquier proceso en el que nos interese comparar niveles de luz.
Cómo utilizar el LDR con Arduino
El circuito para utilizarlo es sencillo:
- Conectamos el pin 5V de Arduino a una pata del LDR
- Conectamos la otra pata a una resistencia de 10kOhms y a un pin analógico o digital para poder medir
- La otra pata de la resistencia de 10kOhm la conectamos a GND.
- FIN
En su programación, deberemos de tener en cuenta si lo hemos conectado a un pin digital o a uno analógico. La diferencia residirá en que el digital nos permitirá medir si la medida que recibimos está en LOW o en HIGH. Si está en LOW quiere decir que la resistencia del LDR es muy alta, por lo que nos encontraremos en un ambiente oscuro.
Si leemos un HIGH, que son casi los 5V, quiere decir que la resistencia del LDR es muy baja debido a la gran iluminación que recibe. Veamos el ejempo del código:
void setup(){ Serial.begin(9600); pinMode(9, INPUT); } void loop(){ if (digitalRead(9) == HIGH){ Serial.println("Hace un sol de justicia"); delay(1000); } else{ Serial.println("Aqui, en la cueva oscura"); delay(1000); } }
Información básica sobre Proteción de datos
Responsable ➥ Sergio Luján Cuenca
Finalidad ➥ Gestionar el envío de correos electrónicos con artículos, noticias y publicidad. Todo relacionado con los temas de rufianenlared.com
Legitimación ➥ Consentimiento del interesado
Destinatarios ➥ Estos datos se comunicarán a MailRelay para gestionar el envío de los correos electrónicos
Derechos ➥ Acceder, rectificar y suprimir los datos, así como otros derechos, como se explica en la política de privacidad
Plazo de conservación de los datos ➥ Hasta que se solicite la supresión por parte del interesado
Información adicional ➥ Puedes encontrarla en la política de privacidad y el aviso legal
Con pines analógicos cambia la cosa
Si conectaramos el LDR a la resistencia de 10kOhm y a un pin analógico, lo que mediríamos es la caída de voltaje que tenemos debido a la LDR y con esto podríamos intuir la iluminación que hay o crear varios tramos en los que según el tramo hagamos una cosa u otra.
Sería algo así:
void setup(){ Serial.begin(9600); } void loop(){ if (analogRead(A5) > 512){ Serial.println("Hace un sol de justicia"); delay(1000); } else{ Serial.println("Aqui, en la cueva oscura"); delay(1000); } }
Como ves, se trata de comparar conociendo unos tramos. Para conocer el valor real tendríamos que ir a unas gráficas que vienen en los datasheets que nos ofrecen el valor real en lux en cada momento y de ahí intentar aplicar la ecuación de la gráfica en nuestro programa de Arduino.
El LDR nos salva de las situaciones perezosas
Como ves, se trata de una simple resistencia pero nos permite poder hacer proyectos simples relacionados con la iluminación.
De hecho, ahora en estos momentos, medio a oscuras por no querer levantarme a encender la luz… Justo ahora mismo, me vendría muy muy bien un fotorresistor conectado a un relé que manejase la bombilla de esta habitación…
Y tú, ¿Para que utilizarías una LDR? Te leo en los comentarios 🙂