Cómo añadir un panel solar en proyectos Arduino
08/08/2021Una de las posibles extensiones para Bike Pixel que estoy considerando, es añadir un módulo que permita realizar su carga a través de un panel solar. En teoría podemos alimentar nuestros proyectos con Arduino conectando directamente un panel solar. Si contamos con algún circuito estabilizador de corriente y mucho sol irradiando el panel no debería haber ningún problema. Pero en cuanto la energía que suministra este sea insuficiente nuestro dispositivo dejará de funcionar.
Por tanto, junto con un panel solar en nuestros proyectos con Arduino lo normal es utilizar también una batería que se cargue mientras que el panel reciba suficiente energía del sol. Esto hará que nuestro proyecto siga funcionando cuando la intensidad de la luz se reduzca. La configuración del circuito será muy similar a la utilizada para alimentar Arduino con una batería LiPo. En este caso además, añadiremos un par de componentes más, haciendo especial hincapié en las partes relacionadas con el suministro de energía, es decir, la batería y el panel solar.
Suministro de energía
Para seleccionar adecuadamente el panel solar y la batería para nuestro proyecto en primer lugar debemos considerar sus necesidades energéticas. Esto incluye tanto la placa Arduino como todos los demás componentes que puede incluir nuestro circuito.
Dependiendo del modelo de Arduino con el que trabajemos su consumo será diferente. En la tabla adyacente os dejo los consumos aproximados de las diferentes placas. Al consumo de la placa Arduino además le tenemos que sumar el de todos los periféricos incluidos en nuestro proyecto (actuadores, sensores, etc.). En el caso de un proyecto simple sin problemas podemos llegar a los 100 mAh. Por ejemplo:
- en el caso de incluir un sensor de temperatura solo necesitaremos 0,2 mA,
- un sensor de distancia por ultrasonido poco más de 2mA,
- para un módulo con un acelerómetro 4 mA,
- un led entre los 10 y los 20 mA,
- cosas más complejas como un módulo bluetooth ya nos harían falta 50 mA,
- y en el caso de servos, estos pueden llegar a consumir incluso más de 500 mA mientras se mueven.
Modelo | Consumo |
Arduino Pro Mini 3.3V | 5 mAh |
Arduino Nano | 15 mAh |
Arduino Uno | 46 mAh |
Arduino Due | 75 mAh |
Arduino Mega | 93 mAh |
Selección de la batería
Una vez estimado las necesidades energéticas de nuestro proyecto podemos pasar a la selección de la batería. Por supuesto cuanto más grande mejor. Pero por desgracia lo normal es que tengamos limitaciones de presupuesto, espacio o peso. De este modo tendremos que seleccionar la que sea más adecuada para nosotros.
Si por ejemplo queremos que nuestro proyecto funcione al menos durante 24 horas sin luz solar, nos tendremos que asegurar que la batería tenga la suficiente capacidad como para mantener en funcionamiento nuestro dispositivo durante este tiempo. Supongamos (por simplicidad) que nuestro proyecto está construido con un Arduino Nano, que en total, junto con todos demás componentes necesita alrededor de 100 mAh. En este caso para que tengamos energía para durante un día entero necesitaremos una batería de al menos 2400 mAh de capacidad.
Además hay que tener en cuenta que las baterías se degradan con el paso del tiempo, el número de ciclos de carga realizados o que se producen perdidas en la transformación del voltaje de la batería. Por tanto, siempre es recomendable contar con un buffer que nos asegure ese extra de energía. Continuando con el ejemplo, podemos seleccionar una batería de 2500 mAh. (Casualmente 😉 es la que se incluirá en el futuro Bike Pixels Rear).
Selección del panel solar
Para nuestros proyectos con Arduino utilizaremos un panel solar con un voltaje de 5 o 6V. Normalmente la potencia de salida del panel se expresa en vatios (W), y es la cantidad de energía máxima que puede producir en condiciones ideales de temperatura y luz solar (es decir dada una irradiación solar de 1000 W/m², en una atmósfera estándar a 25 °C de temperatura).
Lo ideal sería contar con un panel que sea capaz de cargar nuestra batería durante un día. Por supuesto dependiendo de la meteorología, la época del año y la latitud en la que nos encontremos (salvo que vivamos entre los trópicos) la radiación solar varía por lo que la energía que puede producir nuestro panel también. Por tanto para empezar, debemos estimar la cantidad de energía solar que podemos obtener en nuestra localización.
Existen multitud de servicios que nos permiten conocer la cantidad de radiación estimada en un determinado punto del planeta. Uno de ellos es The POWER Project realizado por la NASA. En este podremos obtener los valores históricos de irradiación horizontal en cualquier punto de la tierra. Por ejemplo, en las siguientes gráficas tenemos la irradiación horizontal diaria en el caso de Lugo (España) durante el año 2020.
Podemos ver que en los mejores días tenemos algo más de 8 kW/m² por día y en el peor alrededor de 1 kW/m²/día. Por tanto, en el peor caso, nuestro panel generará en todo el día el equivalente de la potencia dada en su especificación. Sabiendo que la intensidad generada por un panel viene dada por:
I(A) = P(W) / V(V)
Si tenemos un panel de 5V que puede generar hasta 1W de potencia este solo generará un total de 200 mA en todo el día (1W/5A = 0.2A = 200 mA). Algo insuficiente.
Hay que tener en cuenta que las gráficas anteriores presentan el valor sobre la horizontal, es decir directamente sobre un suelo plano. Si orientamos nuestro panel en perpendicular a la dirección de la radiación solar podemos obtener un extra de energía. Continuando con el caso de Lugo (latitud ~43°) podremos incluso doblar la cantidad de energía en invierno si inclinamos nuestro panel a 60° tal y como se muestra en la siguiente gráfica obtenida gracias a esta herramienta online para el cálculo de la radiación solar sobre una superficie inclinada.
De este modo en los peores días para un panel de 1W, podemos estimar que contaremos con 400 mA a lo largo de todo el día. De este modo para cargar una batería de 2400 mA necesitaremos un panel de al menos 6W (2400/400).
Componentes
Para demostrar la forma en en la que es necesario configurar un proyecto con un panel solar he preparado un ejemplo. La idea es que un LED se encienda de noche y se apague de día y todo sea alimentado por un panel solar que carga una batería. Por simplicidad fingiremos que el consumo de este circuito es de 100 mAh (aunque en realidad sería mucho menor). De este modo podemos trabajar con la batería y el panel ya propuestos.
Para este proyecto, a parte de estos componentes y una placa Arduino, serán necesarios:
- un fotorresistor, un led y resistencias de 330Ω y 10kΩ, que son los elementos que conforman la parte para realizar la demostración del funcionamiento del conjunto;
- el módulo de carga TP4056, que se encargará de gestionar la carga y protección de la batería;
- un módulo step-up que convierta el voltaje de la batería LiPo a los 5V que es el que requiere Arduino para funcionar;
- un diodo SR240, que se encargará de asegurar que no fluye corriente desde la batería al panel.
El SR240 es un diodo Schottky. Su elección se debe a que este tiene una caída de tensión menor que los diodos convencionales de silicio. En el SR240 la caída de tensión es además especialmente pequeña, en torno a los 0.55V. De este modo podremos proteger el panel solar a la vez que no disminuimos demasiado su rendimiento. Además puede trabajar con intensidades de hasta 2A. Así nos aseguramos que será capaz de funcionar sin problemas también en el caso de que el panel trabaje al máximo. En los días con mejores condiciones el panel del ejemplo de 6W pudiendo llegar a producir hasta 1,2A.
Con todo ello la lista de componentes que vamos a necesitar y sus precios viene resumida en la siguiente tabla:
Componente | AliExpress | Amazon.es |
---|---|---|
Arduino Nano | 2,78€ (clone) | 13,31€ (oficial) |
Panel solar 5V 6W | 9,33€ | 25,18€ |
Módulo TP4056 USB-C | 0,39€ | 6,99€ (6 uds.) |
Batería LiPo 2500 mAh | 7,66 € | 22,88€ |
Módulo step-up 5V | 0,44 € | 8,49€ (5 uds.) |
Diodo Schottky SR240 | 2,30€ (100 uds.) | 2,81€ (20 uds.) |
Fotorresistor | 4,05€ (100 uds.) | 7,99€ (100 uds.) |
Led | 0,91€ (100 uds.) | 5,99€ (100 uds.) |
Resistencia 10kΩ | 0,93€ (100 uds.) | 6,49€ (100 uds.) |
Resistencia 330Ω | 0,93€ (100 uds.) | 6,49€ (100 uds.) |
Cables AWG26 | 11,78€ (6x10m) | 16,99€ (6x10m) |
Configuración del circuito y código
Una vez seleccionados los componentes principales, ya podemos comenzar con el circuito. La configuración será bastante simple. En primer lugar debemos conectar los componentes encargados de alimentar la placa Arduino. Se debe conectar el panel solar a los pines de entrada del TP4056, la batería a los B+ y B- y los pins OUT al módulo step-up. Este se encargará de transformar la corriente a 5V procedente de la batería o directamente del panel solar si este está funcionando. De este modo la salida del módulo step-up la podemos conectar directamente a los pins 5V y GND de Arduino.
Por último solo nos queda conectar el led a uno de los pines digitales (por ejemplo el 2) y el fotorresistor a uno de los pines analógicos (el A0 en este caso) así como a la alimentación. De este modo nuestro circuito debe quedar como en la configuración dada por el siguiente esquema.
Una vez tenemos todo listo, podemos subir el siguiente código a nuestra placa que se encarga de leer el valor del fotorresistor y encender o apagar el led dependiendo de su valor. Con el aumento de intensidad de luz incidente sobre el fotorresistor, su resistencia disminuirá por lo que el valor leído será más alto, es decir, a más luz mayor valor leído por Arduino y vice versa.
//Constantes configuración pins
const int PIN_POTHO = A0;
const int PIN_LED=2;
// Variable que almacena el valor leído del fotorresistor (0 a 1023)
int value;
void setup(){
pinMode(PIN_LED, OUTPUT);
pinMode(PIN_PHOTO, INPUT);
}
// Realiza lectura fotorresistor y apaga el led sí hay luz
void loop(){
value = analogRead(PIN_PHOTO);
if (value > 50){
digitalWrite(PIN_LED, LOW); // Apagar LED
} else{
digitalWrite(PIN_LED, HIGH); // Encender LED
}
// Esperar un segundo a siguiente lectura
delay(1000);
}
Conclusión y más información
La selección de los componentes adecuados para nuestro proyecto es crucial. En este caso tendremos que dimensionar la batería y el panel solar de modo que se ajusten a las necesidades energéticas de nuestro proyecto y las condiciones meteorológicas en las que vamos a trabajar. Debemos estudiar siempre el caso peor y basar nuestro diseño en ese análisis. Siempre podemos poner una batería y un panel más grande pero de este modo también aumentaremos el coste, tamaño y peso de nuestro proyecto.
Si queréis ahondar en el tema del consumo de energía y el uso de energía solar en vuestros proyectos, a continuación os dejo algunos enlaces.
- Para saber más sobre energía solar podéis consultar esta competa wiki sombre energía fotovoltaica desde cero.
- En Arduino Project Hub he encontrado un ejemplo mucho más completo y complejo en el que se emplea un panel solar para alimentar un proyecto IoT basado en Arduino.
- En la misma página tenéis también más de 30 proyectos relacionados con la energía solar para Arduino.