La mayor crisis a la que nos dirigimos es el cambio climático debido al uso excesivo de combustibles fósiles y para superar estos problemas, solo tenemos una solución que es la utilización de energías renovables . La energía renovable es un tipo de energía que se aprovecha de la naturaleza sin causar efectos nocivos al medio ambiente. Uno de los tipos más destacados de energía renovable es la energía solar. La radiación solar del sol es recogida por los paneles solares y convertida en energía eléctrica. La energía eléctrica de salida depende de la cantidad de luz solar que incide sobre el panel solar.
Detectando la posición del Sol :
Medimos la intensidad de la luz con LDR usando Arduino y comparamos la intensidad de la luz que cae en ambos LDR. Los LDR se colocan en los bordes del panel solar como se muestra en la siguiente figura.
Basándonos en la intensidad de la luz en el LDR, le damos la señal al servomotor para que provoque el movimiento. Cuando la intensidad de la luz que incide en el LDR derecho es mayor, el panel gira hacia la derecha y si la intensidad es mayor en el izquierdo, el panel gira lentamente hacia el lado izquierdo.
Componentes necesarios para fabricar el seguidor solar
- 1 x Arduino Uno
- 1 x servomotor
- 1 x panel solar
- 2 x LDR
- Resistencia de 2 x 10k
- Cables de puente
- 1 x tablero de MDF
Servo motor:
El servomotor se utiliza para girar el panel solar. Estamos usando un servomotor porque podemos controlar la posición de nuestros paneles solares con precisión y puede cubrir todo el camino del sol. Estamos utilizando un servomotor que puede funcionar con 5 voltios.
Resistencia dependiente de la luz (LDR):
Una resistencia dependiente de la luz está hecha de material semiconductor que tiene propiedades sensibles a la luz y, por lo tanto, es muy sensible a la luz. La resistencia del LDR cambia según la luz que incide sobre él y es inversamente proporcional a la intensidad de la luz. Es decir, la resistencia del LDR aumentará con luz de alta intensidad y viceversa.
Esquemas y conexión del seguidor solar
La conexión del circuito es muy sencilla. Aquí, utilicé un Arduino Uno como controlador y conecté los 2 LDR al pin analógico A0 y A1 respectivamente. El pin 9 de Arduino está conectado al servomotor. Dado que hemos utilizado un servomotor de 5 V, no necesitamos ninguna fuente de alimentación externa porque todos los componentes pueden alimentarse fácilmente con el propio Arduino. Todas las conexiones se muestran en la siguiente figura.
Veamos cómo funciona el código.
El código completo de este proyecto se puede encontrar al final de esta página. El primer paso antes de escribir el código es descargar la Servo Library. Necesitamos una biblioteca de servos para controlar el movimiento del servo. La explicación paso a paso del programa se da a continuación.
#include <Servo.h>
Servo servo;
Primero, incluí la biblioteca de servos y creé un objeto de servo y lo nombré como ‘servo’.
int eastLDR = 0;
int westLDR = 1;
int este = 0;
int oeste = 0;
int error = 0;
Aquí, he asignado los pines analógicos A0 y A1pins para LDR y he declarado las variables para los valores del sensor.
int calibración = 0;
Esta variable es para calibrar el sistema, si está utilizando exactamente los mismos LDR en ambos lados, puede dejarla como cero. Pero si está usando diferentes LDR, entonces debería usar esto para calibrar. Para calibrar, siga las instrucciones en el siguiente párrafo.
Imprima en serie los valores del sensor y verifique la lectura de cada sensor al mediodía o coloque una fuente de luz justo encima del panel solar. Si la lectura muestra los mismos valores, entonces puede dejar esto como está y si muestra alguna diferencia, entonces debe copiar esos valores aquí.
int servoposición = 90;
Esta variable sirve para almacenar la posición del servo.
configuración vacía ()
{
servo.attach (9);
}
En la sección, he definido el pin del servo como pin 9
este = calibración + analogRead (eastLDR);
west = analogRead (westLDR);
En la sección de bucle, el primer paso es leer los valores LDR usando la función de lectura analógica de Arduino y almacenarlos en las variables este y oeste.
si (este <350 && oeste <350)
{
while (servoposición <= 150)
{
servoposición ++;
servo.write (servoposición);
retraso (100);
}
Esto si la condición es para girar el panel solar hacia el lado este, es decir, si ambos LDR leen un valor bajo, entonces el panel se mueve hacia el lado este.
error = este - oeste;
Aquí, calculamos la diferencia entre las lecturas este y oeste. Si el valor del error es positivo, significa que el este tiene más intensidad y si el error es negativo, el oeste tiene una mayor intensidad de luz. Entonces, de acuerdo con este valor de error, podemos girar el servo hacia el lado de baja intensidad.
si (error> 30)
{
si (servoposición <= 150)
{
servoposición ++;
servo.write (servoposición);
}
}
Si el error es positivo y mayor a 30, significa que el lado este tiene más intensidad. Entonces, inicialmente el sistema verificará la posición inicial del servo y si es menor a 150 grados, entonces gira hacia el este. Puede ajustar estos ángulos de acuerdo con su sistema.
else if (error <-30)
{
si (servoposición> 20)
{
servoposición--;
servo.write (servoposición);
}
Si el error es negativo y menor que -30, eso significa que el lado oeste es más intenso, por lo que el servo gira hacia el lado oeste.
Entonces, eso es todo sobre codificación. Ahora puede abrir este código en su IDE de Arduino y cargar el boceto en su Arduino.