BATTERY MONITOR

Valutazione attuale: 1 / 5

Stella attivaStella inattivaStella inattivaStella inattivaStella inattiva
 

leggi-faidate

Il progetto è di realizzare un analizzatore dello stato di carica del pacco batterie di servizio fornendo una lettura della tensione, della corrente di carica e scarica e della capacità residua delle batterie stesse. Alla corrente in uscita dalle batterie è stata applicata la legge di Peukert.

monitor-per-batterie-1-camperfaidate.it

Il progetto

Per la lettura della tensione della batteria è stato utilizzato un partitore di tensione mentre per la lettura della corrente è stato utilizzato uno shunt amperometrico e la shield INA219 pilotato da un Arduino UNO che rileva la piccola caduta di tensione ai capi di quest'ultimo. Nella figura sottostante è mostrato lo schema di principio del circuito di lettura della corrente.

monitor-per-batterie-2-camperfaidate.it

Nella figura sottostante sono mostrate le grandezze misurate:

La tensione in Volt,

la corrente che attraversa lo shunt (quindi tutta quella che circola nel pacco batterie),

la capacità residua del pacco batterie in Ah e in percentuale,

le ore di funzionamento.

monitor-per-batterie-3-camperfaidate.it

Componenti

I componenti utilizzati sono stati:

Arduino Unoù

monitor-per-batterie-4

Alimentatore

monitor-per-batterie-5

Shunt amperometrico

monitor-per-batterie-6

Shield INA219

monitor-per-batterie-7

Partitore di tensione

monitor-per-batterie-9

Display LCD 20x4

monitor-per-batterie-8

Interruttori di accensione e di accensione retroilluminazione LCD

Pulsanti

Appendice La legge di Peukert

La legge di Peukert è una semplice relazione che mette lega la capacità di una batteria al Piombo in funzione dell'intensità della corrente prelevata. Come quest'ultima cresce e più decresce la capacità della batteria.Normalmente la capacità riportata dai costruttori come dato di targa è quella ottenibile con una corrente di scarica pari ad un ventesimo (C20) della sua capacità, ad esempio per una batteria da 100 Ah significa che la stessa è in grado di fornire una corrente di 5 A per 20 ore.Per correnti superiori la capacità della batteria si riduce secondo la legge di Peukert: 

ItC K P =⋅ 

dove 

P C è la capacità espressa in Ah, 

I è l'intensità della corrente di scarica, 

t è il tempo in ore della scarica.

Si ottiene ad esempio che per una batteria 100 Ah sottoposta a una corrente di scarica di 10 A la sua durata non sarà pari a 10 h ma circa a 8,7 A, in pratica è come se la capacità della batteria si fosse ridotta a circa 87 A.

La legge di Peukert può anche essere scritta come: 

formula

Il software

Nelle righe di codice è riportato un estratto delle parti rilevanti del software realizzato per la gestione dell'analizzatore.

/*

Battery Monitor

by Antonio Viggiani (2013) versione alfa

*/

#define AVG_NUM 32 // numbero di iterazioni per la lettura media

#define BS_VOLT_CHAN 2 // adc pin di lettura analogica

float CAPACITA = 200.0; // capacita nominale batteria (C20)

float amper_ora = CAPACITA; // capacità residua batteria

float k = 1.4; // esponente di Peukert

float rendimentoRicarica = 0.95; // efficienza in ricarica

/* funzione per la lettura della tensione */

int read_adc(int channel){

int sum = 0;

int temp = 0;

int i;

for (i=0; i

temp = analogRead(channel);

sum += temp;

}

return(sum / AVG_NUM);

}

/* funzione per la lettura della corrente */

float read_current(){

float sum = 0.0;

float temp;

int i;

for (i=0; i

temp = monitor.shuntCurrent() * BS_AMPER_SCALE + amper_offset; // read the input INA219

sum += temp; // store sum for averaging

}

return(sum / AVG_NUM); // divide sum by AVG_NUM to get average and return it

}

/* funzione per la lettura della tensione di riferimento dell'Arduino */

long readVcc() {

long result;

// Read 1.1V reference against AVcc

ADMUX = _BV(REFS0) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1);

attendi(2); // Wait for Vref to settle

ADCSRA |= _BV(ADSC); // Convert

while (bit_is_set(ADCSRA,ADSC));

result = ADCL;

result |= ADCH<<8;

result = 1126400L / result; // Back-calculate AVcc in mV

return result;

}

/* funzione per il caloclo della corrente di Peukert*/

float CurrentPeukert(float c){

float temp = 0.0;

float temp1=0.0;

temp = -1.0*c;

temp1 = (pow(temp, k)/pow(CAPACITA/20.0, k-1.0)) * -1.0;

if (temp1 * -1.0 < temp)

{

temp1 = temp * -1.0;

}

return temp1;

}

void setup() {

// iniliziazione

}

void loop() {

float temp;

temp = read_adc(BS_VOLT_CHAN);

voltBS = temp/1023.0*readVcc()/1000*5.0;

Current = read_current();

time = millis();

intervallo_tempo = (time - old_time)/1000.0/3600.0;

old_time = time;

if (Current >= 0.0 && (amper_ora < CAPACITA))

{

amper_ora = (intervallo_tempo * Current) * rendimentoRicarica + old_amper_ora;

}

else

{

if (Current < 0.0)

{

amper_ora = (intervallo_tempo * CurrentPeukert(Current)) + old_amper_ora;

}

}

old_amper_ora = amper_ora;

}

 By Antonio Viggiani (2013)

 



alt

altAVVERTENZE  

Non hai il diritto di pubblicare commenti
Registrati

Commenti   

0 #22 Giuseppe 2014-04-07 17:19
Citazione cmanuel70:
Ciaoo... ottimo lavoro complimentoni, posso chiederti se ne costruisci per richiedenti poco esperti e a quanto!? grazie molto interssato

Ciao Antonio,
inutile dirti che hai fatto un'ottimo lavoro,ripeto la domanda di cmanuel70.
Attendiamo fiduciosi.
Saluti
0 #21 Manuel 2013-12-11 12:09
Ciaoo... ottimo lavoro complimentoni, posso chiederti se ne costruisci per richiedenti poco esperti e a quanto!? grazie molto interssato
0 #20 lugen 2013-12-06 11:46
Davvero un bel lavoto il tuo tanto che volevo copiartelo poi ho trovato la giocamper come usata revisionata a 140,00 euro e ho deciso di acquistarla ed ora sto partendo con il progetto per automatizzarla con arduino.
0 #19 Giuseppe 2013-12-06 09:54
Ciao Antonio, innanzitutto complimenti per l'ottimo lavoro, adesso mi ripeto chiedendoti quanto già chiesto:
a- come fare per acquistare o far realizzare a pagamento quanto da te progettato e realizzato.
Attendo info e visto le imminenti festività auguro a voi ed ai Vs. care buone feste.
joe
0 #18 operacinque@libero.it 2013-12-05 11:33
Citazione feynman:
L'alimentatore serve per alimentare l'Arduino e tutte le schede e anche l'LCD.

Che parabola hai?

Buongiorno,le parabole perchè ne ho costruite due la seconda a mio avviso più
funzionale la puoi trovare nella sezione
fai da te con titolo
( Parabola semiautomatica linocamper)

https://www.camperfaidate.it/forum-fai-da-te ,mentre il filmato della parabola finita la trovi in questa posizione https://www.camperfaidate.it/faidate/2560-parabola-per-camper-autocostruita-in-fai-da-te :lol:
0 #17 lugen 2013-12-04 22:07
L'alimentatore serve per alimentare l'Arduino e tutte le schede e anche l'LCD.

Che parabola hai?
0 #16 Antonio 2013-12-03 20:07
COMPLIMENTONI, Bellissimo ed utilissimo lavoro. :-)
Come hanno suggerito altri amici potresti crearne di altri e certamente troveresti a venderne.
Ancora Complimenti
Antonio
0 #15 operacinque@libero.it 2013-12-03 13:26
Complimenti per il bellissimo progetto ,approfitto per farti due domande,L'alimentatore serve per alimentare Arduino a 5 V ? la seconda é possibile avere il codice completo da caricare su Arduino Grazie. Altro progetto molto interessante è quello della motorizzazione automatica della parabola, che io purtroppo ho rinunciato perchè troppo complicata per me,e mi sono accontentato solo dei spostamenti con telecomando. Ancora complimenti e bravo :lol:
0 #14 evisionindonesia 2013-12-03 11:29
Bravissimo !
Veramente interessante, era quello che cercavo, poi un paio di mesi fa mi sono comprato e montato l'iMANAGER che fa queste cose su due BS (gestendo anche alternanza di batterie su carica e scarica oppure il parallelo se necessario) e da parallelatore sulla BM.
L'ho pagato dei bei soldini, però ne sono soddisfatto, e vedo che anche col fai da te tutto sommato in questo caso di soldi bisogna spenderne)

Complimenti ancora, lavoro ben concepito e ben realizzato. Peccato solo che non sia alla portata di tutti (ma potresti sempre acquistare i componenti in quantità, realizzare assemblaggio e programmazione e rivendere agli amici del sito) ;-)
0 #13 Orazio 2013-12-03 09:23
I complimenti..non saprei da dove iniziare. Se ti venisse in mente di venderlo montato fammi sapere sarei intenzionato.
0 #12 lugen 2013-12-02 22:10
certamente, ora sto automatizzando la parabola con arduino dopo perchè no.
Ciao.
0 #11 lugen 2013-12-02 22:09
circa 120 euro.
0 #10 lugen 2013-12-02 22:02
Grazie per i complimenti.
0 #9 marino 2013-12-02 18:38
lo fai anche a me!!!!!! complimenti
-2 #8 bruno 2013-12-02 18:34
AMMAZZA CHE FICO ma che è no a che serve ao so quasi invidioso anzi so invidioso lovedi che vordi studià tecnica fisica etc etc dai datece qualche idea per noi poveri mortali qualcosa che sé potemo da fa da soli però so sincero so invidioso perché non potrò mai fare un lavoro del genere COMPLIMENTISSIMI sei stato veramente bravo
0 #7 carlo 2013-12-02 12:26
Complimenti bel lavoro e sopratutto molto utile.
Ora però vorrei sapere dove reperire tutto l'occorrente e a quale spesa vado incontro,grazie e complimenti di nuovo.
0 #6 romano43 2013-12-02 11:24
Lavoro molto bello,però io mi chiedo dove hai applicato il supporto,non riesco a valutare lo spazio che occorre per installarlo, il materiale per fabbricarlo dove lo hai acquistato.
0 #5 saverio 2013-12-02 01:27
fantasticooo...complimenti, quanto costa comprare tutti gli accessori per realizzarlo???
0 #4 saverio 2013-12-02 01:27
fantasticooo...complimenti, quanto costa comprare tutti gli accessori per realizzarlo???
0 #3 Alessandro 2013-12-02 00:17
Finalmente anche Arduino in camper avrei in mente tanti progettima non so programmare mi dda resti una mano cosi pubblichiamo qualcosa insieme ti prego
-2 #2 CarloUgo46 2013-12-01 23:52
Ciao Antonio, ti devo fare i miei complimenti, ai eseguito un lavoro da maestro, l'elettronica ce lai nel sangue, bravo e preciso continua cosi' e ti mando un caro saluto ciaoooooo.....
0 #1 Fabrizio 2013-12-01 23:30
Caro Antonio, e dove pensi di scappare? Con un progetto così bello e ben fatto come minimo ti dovrai sorbire tanti rompiscatole come il sottoscritto che ne vogliono sapere di più. Preparati :-) Ancora tanti complimenti.