CARGADOR SOLAR
Pasos dados en la realización del proyecto:
-Elección del proyecto para la asignatura: Queríamos realizar un proyecto, que posteriormente pudiéramos quedarnos y nos fuera útil.
-Búsqueda de los materiales necesarios para poder montar el hardware
-Montaje de todo el hardware relacionado con el cargador solar.
-Montaje de hardware que iba a ir conectado a Arduino.
-Implementación del código con el que funciona Arduino.
Reparto de tareas
El proyecto no fue dividido de ninguna manera. Ambos integrantes hicimos todo juntos y hasta que no terminábamos una parte no hacíamos la siguiente.
Implementación
El sistema se divide en dos partes:
La primera esta compuesta por un cargador solar, conectado a una placa encargada de cargar una batería de litio y esta batería conectada al power booster con salida de USB .
-la segunda es un circuito en Arduino conectado a la batería que en función de la carga que tiene encenderá un led verde, amarillo o rojo.
Coste de los materiales
batería de Litio 3,7V | 7,27€ |
Cargador de baterías de litio 3,7V | 1,24€ |
Porta pilas | 1,36€ |
Diodo rectificador 1000V | 0,12€ |
Interruptor | 0,33€ |
Voltage Booster | 1,9€ |
Panel Solar 5 V – 1 W | 8.55€ |
CODIGO
// Se inician los pines digitales donde van conectados los LEDS
#define VERDE 2
#define AMARILLO 3
#define ROJO 4
#define BATERIA 0
int analogValue = 0;
float voltajeObtenido = 0;
float voltajeMaximo = 4.2;
float voltajeMedio = 3.8;
float voltajeMinimo = 1;
void setup() {
Serial.begin(9600);
// Ponemos LEDS en modo salida
pinMode(VERDE, OUTPUT);
pinMode(ROJO, OUTPUT);
pinMode(AMARILLO, OUTPUT);
}
void loop() {
// Leemos valor de la entrada analógica
analogValue = analogRead(BATERIA);
// Se obtiene el voltaje en la entrada analógica y se imprime por pantalla
// Para poder pasar el voltaje a digital, estuvimos buscando en internet y encontramos que V=5/1024 * lectura
// debido a que arduino suele trabajar con señales cercanas a 5V
voltajeObtenido = 0.0048 * analogValue;
Serial.print(«Voltaje obtenido: «);
Serial.println(voltajeObtenido);
// Si el voltaje obtenido es mayor que el máximo que 4.2V, encendemos el LED verde y despues del delay lo apagamos
if (voltajeObtenido >= voltajeMaximo)
{
digitalWrite(VERDE, HIGH);
delay(800);
digitalWrite(VERDE, LOW);
}
// Si el voltaje obtenido es menor que 4.2V pero mayor que 3.8V, encendemos el LED amarillo y despues del delay lo apagamos
else if (voltajeObtenido < voltajeMaximo && voltajeObtenido > voltajeMedio)
{
digitalWrite(AMARILLO, HIGH);
delay(800);
digitalWrite(AMARILLO, LOW);
}
// Si el voltaje obtenido es menor que 3.8V pero mayor que 1, encendemos el LED rojo y despues del delay lo apagamos
else if (voltajeObtenido < voltajeMedio && voltajeObtenido > voltajeMinimo)
{
digitalWrite(ROJO, HIGH);
delay(800);
digitalWrite(ROJO, LOW);
}
// Se apagan los LEDS
digitalWrite(VERDE, LOW);
digitalWrite(AMARILLO, LOW);
digitalWrite(ROJO, LOW);
Problemas y Soluciones:
-El principal problema que tuvimos en la implementación del código fue como pasar el voltaje que nos llegaba a Arduino desde el pin analógico para poder convertirlo al valor esperado. Se soluciono buscando información en internet, donde encontramos una fórmula que nos sirvió. Lo encontramos en esta página https://www.prometec.net/aref/
-También tuvimos problemas a la hora de saber si la batería se estaba cargando, y hasta que no hicimos la parte de Arduino, no pudimos comprobar esto.