|
VHF: Canal 77 |
#1
|
||||
|
||||
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 |
Los siguientes cofrades agradecieron este mensaje a Capicua | ||
Exterminador (19-07-2018) |
Ver todos los foros en uno |
|
|