La Taberna del Puerto Social
"Se navega por los astros, por la mar, por la tierra, por las gentes, por los sentimientos...Se navega." Altair
VHF: Canal 77
Regresar   La Taberna del Puerto > Foro > Foros Náuticos > Foro Náutico Deportivo

Avisos

Responder
 
Herramientas Estilo
  #1  
Antiguo 19-07-2018, 01:22
Avatar de Capicua
Capicua Capicua esta desconectado
Capitán pirata
 
Registrado: 04-10-2010
Localización: A
Edad: 63
Mensajes: 586
Agradecimientos que ha otorgado: 155
Recibió 256 Agradecimientos en 119 Mensajes
Sexo:
Predeterminado Distribuidor de carga Bancos de Baterias

Como me sobrava carga de los paneles solares , decidi hacer un distribuidor de cargas. Asi los paneles me pueden cargar las Baterias de servicio, motor y Buw Thruster.

Dejo el codigo para quien le sea de interes. Esta vercion controla Mosfet. Tengo otra con rele. Sobra espacio para colocar un medidor de flujo, asi podemos saber si la circulacion de agua refrigerante es la correcta.

Vamos al Codigo.


// distribucion de carga de baterias para paneles solares
// Arduino Nano
float V1;
float V2;
float V3;
float V4;
int Caso;
const int Bat1 = 11; // Comando Mosfet bat Serviço
const int Bat2 = 9; // Comando Mosfet bat Motor
const int Bat3 = 4; // Comando Mosfet bat Thruster
const int Bat4 = 2; // Comando Mosfet bat extra

void setup()
{
Serial.begin(9600); //Inicia a serial com um baud rate de 9600, para monitorar e ajustar sistema
pinMode(Bat1, OUTPUT); // declara o pino comando
digitalWrite(Bat1, LOW); // Coloca comando a LOW
pinMode(Bat2, OUTPUT); // declara o pino comando
digitalWrite(Bat2, LOW); // Coloca comando a LOW
pinMode(Bat3, OUTPUT); // declara o pino comando
digitalWrite(Bat3, LOW); // Coloca comando a LOW
pinMode(Bat4, OUTPUT); // declara o pino comando
digitalWrite(Bat4, LOW); // Coloca comando a LOW

Serial.println("\n\Montitor de Bancos Baterias Capicúa \n\n"); //Imprime en el monitor serial que comienz a monitorar
}
void loop ()
{

for(int i=0;i<10000;i++)// Hace mil lectoras
V1=V1+analogRead (A0); // Lee la tesion del pino analogico 0 Bateria Servicio
V1=(V1*22.80)/1023/10000;// Hace la media de las mil lecturas y convierte lecturas en tension (obs 20 conversor tension4 a 1 )
for(int i=0;i<10000;i++)
V2=V2+analogRead (A1); // Lee la tesion del pino analogico 1
V2=(V2*22.60)/1023/10000;// convierte lecturas en tension (observacio 20 conversor lectura hay que hacer divisor de tension 4 a 1 )
for(int i=0;i<10000;i++)
V3=V3+analogRead (A2); // Lee la tesion del pino analogico 2
V3=(V3*22.66)/1023/10000;// convierte lecturas en tension (observacio 20 conversor lectura hay que hacer divisor de tension 4 a 1 )
for(int i=0;i<10000;i++)
V4=V4+analogRead (A3); // Lee la tesion del pino analogico 2
V4=(V4*23.09)/1023/10000;// convierte lecturas en tension (observacio 20 conversor lectura hay que hacer divisor de tension 4 a 1 )
{

// Se manda al monitor serial la lectura en Volts de cada banco de baterias
Serial.print ("Tensino en Volts Banco de Batraia Servicio\n\n"); Serial.print(V1); Serial.print ("V\n\n") ;
delay (10000);// Se detiene la lectura por 10 segundos
Serial.print ("Tension en Volts Batearia Motor \n\n");Serial.print(V2); Serial.print (" V\n\n");
delay (10000);// Se detiene la lectura por 10 segundos
Serial.print ("Tension en Volts Banco de Bateria Bow Thruster\n\n");Serial.print(V3); Serial.print ("V\n\n");
delay (10000);// Se detiene la lectura por 10 segundos
Serial.print ("Tension en Volts Banco de Baterias Extra\n\n");Serial.print(V4); Serial.print ("V\n\n");
delay (10000);// Se detiene la lectura por 10 segundos
// se inica el analisis de cada banco de bateria
Serial.println("\n\Verificando carga de los bancos de baterias\n\n"); //Imprime Inicio na serial
delay (10000);// Se detiene la lectura por 10 segundos
}
{

if ((V1<10.7) and (V2 <10.7) and (V3<10.7) and (V4<10.7))
{Caso=0;// caso no tengamos ninguna bateria conectada o las baterias esten dañadas.
}

if ((((V1>13.7) or (V1<10.7)) and (V2<12.5)) and (V2>10.7))
{Caso=2;// Carga bateria de motor, si las de servicio ya estan cagadas.
}

if (( (((V1>13.7) or ( V1<10.7)) and (( V2>12.5) or (V2< 10.7))) and (V3<12.5)) and ( V3>10.7))
{Caso=3; // Carga bateria do buw thruster , caso baterias de servico y de motro esten con plena carga o não tengamos estas baterias.
}

if ((((V2>12.5) or (V2< 10.7)) and (( V3>12.5) or (V3<10.7))) and ( V1>10.7))
{Caso=4;// Carga bateria de servicios y libera puerto extra, caso las baterias de motor e buw thruster esten con carga superior a 12.5 volts
}

if ((V1<13.5)and (V1>10.7))
{Caso=1;// carga batrias de servicio.
}

switch (Caso){

case 0:
digitalWrite(Bat1, LOW);
digitalWrite(Bat2, LOW);
digitalWrite(Bat3, LOW);
digitalWrite(Bat4, LOW);
Serial.println("****** No Identificamos Baterias ******");
delay (10000);
break;
case 1:
digitalWrite(Bat1, HIGH);
digitalWrite(Bat2, LOW);
digitalWrite(Bat3, LOW);
digitalWrite(Bat4, LOW);
Serial.println("******Cargando Baterias Servicio*****");
delay(300000);
break;

case 2:
digitalWrite(Bat1, LOW);
digitalWrite(Bat2, HIGH);
digitalWrite(Bat3, LOW);
digitalWrite(Bat4, LOW);
Serial.println("*****Cargando Baterias Motor*****");
delay(300000);
break;
case 3:
digitalWrite(Bat1, LOW);
digitalWrite(Bat2, LOW);
digitalWrite(Bat3, HIGH);
digitalWrite(Bat4, LOW);
Serial.println("*****Cargando Baterias Blowtruster*****");
delay(300000);
break;
case 4:
digitalWrite(Bat1, HIGH);
digitalWrite(Bat2, LOW);
digitalWrite(Bat3, LOW);
digitalWrite(Bat4, HIGH);
Serial.println("*****Cargando Baterias Servicio2*****");
delay(600000);
break;
}
}
}
__________________
MMSI 205801910 Call OR8019
Ham Call CX6AAT , PY2ZP ,PW2A
Citar y responder
Los siguientes cofrades agradecieron este mensaje a Capicua
Exterminador (19-07-2018)
Responder Ver todos los foros en uno

Social


Reglas del foro
No puedes crear discusiones
No puedes responder a mensajes
No puedes editar tus adjuntos
No puedes editar tus mensajes

BB code está activado
Emoticonos está activado
El código [IMG] está activado
El código HTML está desactivado
Ir a


Todas las horas son GMT +1. La hora es 14:52.


Powered by vBulletin® Version 3.7.0
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
© La Taberna del Puerto