Hola buenas. Lo primero dar gracias a este foro tan instructivo. De aquí saque varias ideas para mi invernadero y comedero automático de animales.
Vivo en una casa con paneles solares. Mi regulador de carga se averió y la verdad es bastante viejo y malo, no merece la pena repararlo.
Como tengo un Arduino Mega (que ya utilizo para otros servicios) y me sobran pines, quiero incorporar un Regulador de carga de las baterías (plomo-ácido). Imagino que no sera muy complicado, pero mi torpeza y novato que soy, me obliga a pedir ayuda o consejos.
Mi instalación fotovoltaica es a 12 voltios, varios paneles solares que siempre voy ampliando cuando puedo. Actualmente la carga máxima son 25 Ah, espero aumentarla. 6 vasos de 2v a 660 Ah en C10 (tiempo de descarga 10h). Esta carga me obliga a utilizar un rele. El rele que tengo de 100A es este http://www.hongfa.com/pro/pdf/HFE28_en.pdf. Es un rele con enclava-miento mecánico, solo necesita un impulso para cambiar de estado a dos contactos. Aquí tengo mi problema. Ademas el positivo del rele, es el común, atraves de las masas gobernamos hacia NO o NC. En resumen para gobernar rele tiene tres contactos, positivo (comun entre bobinas), un contacto que poniendo masa lo lleva al NO y otro igual pero que lo lleva a NC.
Busque voltimetros, reguladores y demás .... pero siempre me falla que a el rele lo excitan constantemente, Yo solo quiero un impulso y deje de dar tensión a la bobina, ya que recuerda la posición el rele y no quiero quemarlo.
Para medir el voltaje en baterías, utilizo un divisor de tensión de tres resistencias (1k 1/4w), Despues multiplico por tres y arreglado. Esto me funciona bien. Pero con led de prueba o un rele normal, entre que el mio utiliza la masa y se enclava ....... uff liada que llevo.
esta es la parte de el regulador ............. lo de el comedero e invernadero me lo salto.
#include <LiquidCrystal.h> // Libreria para lcd
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);//pines lcd
float lectura;//variable lectura analogica
float voltaje=0;//variable conversion lectura a voltios
int rele1= 22;//pin para salida NO
int rele2=24;//pin para salida NC
void setup() {
lcd.begin(16, 2);//inicio lcd
lcd.setCursor(3,0);
lcd.print("INICIANDO ");
lcd.setCursor(3,1);
lcd.print("REGULADOR");
Serial.begin(9600);
delay(1000);
lcd.clear();
pinMode (rele1,OUTPUT);//declaro salidas..
pinMode (rele2,OUTPUT);
}
void loop() {
lectura_voltios(1,2);//llamo funcion de lectura
lcd.setCursor(0,0);
lcd.print("Voltaje medido:");
lcd.setCursor(8, 1);
lcd.print("Voltios");
Serial.println((voltaje)*3);//multiplico por tres al haber un divisor de tension
if (voltaje*3>=13.40)digitalWrite (rele1,HIGH);
if (voltaje*3<13.40)digitalWrite(rele1, LOW);
if (voltaje*3>13.40)digitalWrite (rele2,LOW);
if (voltaje*3<13.00)digitalWrite (rele2,HIGH);
delay(200);
}
void lectura_voltios(float unidad, int decimales)
{ // funcion leer el divisor de tension
lectura=analogRead(A1);
voltaje = ((5*float(lectura))/1023);
lcd.setCursor(0, 1);
lcd.print(float(voltaje)*3*unidad,decimales);
delay(200);
}
Si alguien quiere echarme una mano, recuerde el rele se excita por la masa y tiene enclavamiento, solo necesita un impulso en determinado voltaje para variar su estado.
También seria bueno para la carga correcta de las baterías, el hacer una equalizacion cada mes, para eso tengo pedido un modulo RTC.
Con los menús también llevo mi lió personal, pero hay bastante info por aquí en el foro.
Un saludo, gracias por todo y haber como resuelvo esto.