Seguidor de luz con Arduino
- publicado por Ing. Jesús Martínez
- Fecha septiembre 7, 2023
Contenido:
Material:
Si bien este tutorial será desarrollado sobre Tinkercad, también puede desarrollarse de manera física como todos nuestros otros tutoriales de Arduino, así que de todas formas te compartiré los materiales.
- 2 Resistencias 1K ohm
- 2 Fotorresistencias
- 1 Arduino UNO
- 1 Micro servo
- 1 Protoboard
Introducción
En un mundo cada vez más consciente de la eficiencia energética y el aprovechamiento de fuentes de energía renovable, la tecnología se convierte en un aliado fundamental para explorar nuevas formas de aprovechar la luz solar de manera inteligente. Uno de los proyectos más emocionantes en esta dirección es la creación de un «Seguidor de Luz» que, literalmente, sigue la luz del sol a medida que se desplaza a través del cielo. ¿Cómo se logra esto? La respuesta se encuentra en la magia de la electrónica y la programación, y eso es precisamente lo que exploraremos en esta entrada.
Desarrollo:
Comencemos importando las librerías que utilizaremos, en este caso solamente Servo
#include <Servo.h>
Ahora crearemos las constantes que almacenarán los pines que utilizaremos, en este caso serán 3, 2 para los pines analógicos y 1 para el pin digital del servomotor
const int fotoresistenciaPin1 = A0;
const int fotoresistenciaPin2 = A1;
const int servoPin = 3;
Ahora crearemos una instancia de la clase Servo
Servo servo;
Configuremos ahora la inicialización de nuestro servomotor y de la comunicación serial donde visualizaremos los datos de las fotorresistencias. Inicializaremos el servomotor a 90 grados, esto para tener rango de movimiento hacia la derecha e izquierda
void setup()
{
Serial.begin(9600);
servo.attach(servoPin);
servo.write(90);
}
Y listo, llegamos a la sección final, el loop, en esta parte definiremos el funcionamiento o lógica de funcionamiento. Diremos que para un valor mayor a 300 en la LDR 1, el servomotor debe moverse a 45 grados, mientras que para un valor mayor a 300 en la LDR 2, el servomotor debe colocarse a 135 grados. Si los dos valores son mayores a 300, el servomotor debe colocarse a 90 grados, lo mismo para cualquier otro caso.
void loop()
{
int valorFoto1 = analogRead(fotoresistenciaPin1);
int valorFoto2 = analogRead(fotoresistenciaPin2);
Serial.print("Valor de la fotoresistencia 1: ");
Serial.println(valorFoto1);
Serial.print("Valor de la fotoresistencia 2: ");
Serial.println(valorFoto2);
if (valorFoto1 > 300 && valorFoto2 <= 300)
{
servo.write(45);
}
else if (valorFoto1 <= 300 && valorFoto2 > 300)
{
servo.write(135);
}
else if (valorFoto1 > 300 && valorFoto2 > 300)
{
servo.write(90);
}
else
{
servo.write(90);
}
delay(1000);
}
Resultados:
Listo, tenemos programado y funcionando nuestro seguidor de luz, ahora solo es cuestión de crear una estructura física para sostener un pequeño panel solar y colocar las fotorresistencias de modo que capten la luz solar para que el servo pueda colocar al panel en la posición con mejor nivel de luz.
Te comparto el código completo y simulación en Tinkercad, si el simulador no carga, posiblemente estés utilizando Chrome o Edge, recuerda que para una mejor experiencia debes utilizar Mozilla. Te comparto el enlace.
Etiqueta:Arduino
Soy un apasionado por la innovación tecnológica, el desarrollo y el emprendimiento. Durante mi educación superior me enfoqué en la programación de software para visión artificial e inteligencia artificial. Poco después al graduarme tuve la oportunidad de aplicar estos conocimientos en el desarrollo de soluciones para empresas como General Motors, Ford, Harley-Davidson, Mack, Tesla y unas cuantas empresas más del ramo automotriz.