Batt.Man. (Battery Manager)

Tempo fa degli amici mi hanno chiesto uno strumento per fare alcune prove sulle batterie normalmente usate negli antifurto. Tali batterie (lead acid 12V) devono essere cambiate ogni tanto, perché perdono di efficienza. Ho deciso quindi di creare uno strumento di laboratorio in grado di effettuare dei cicli di carica e scarica per tali batterie, un dispositivo che fosse in grado di generare un “log” grafico dell’andamento di tali cicli su batterie vecchie e nuove, in modo da comparare il comportamento delle varie marche/modelli e quindi selezionare quelle con migliori caratteristiche nel lungo periodo.

Per costruire uno strumento da laboratorio (non per produzione) ho agito così: ho diviso la parte elettronica da quella di visualizzazione e di memorizzazione, creando così un circuito di acquisizione e attuazione, basato su micro Atmel AVR e un’App Android per l’interfaccia utente. L’App è progettata per girare su di un tablet da 7 pollici.

Ecco il circuito, montato su schede da prototipi in quanto è uno strumento di laboratorio, non destinato alla produzione:

Il firmware del microcontrollore, scritto in C, esegue un “main” piuttosto semplice: effettua la conversione analogico/digitale di due canali, uno per misurare la tensione della batteria, l’altro per misurare la corrente di carica / scarica; inoltre, tiene sotto controllo una porta seriale da cui riceve le richieste dal tablet e su cui invia le conseguenti risposte. I comandi sono pochi e semplici: in pratica, ci sono le richieste dei dati relativi ai canali ADC e l’attivazione dei relè. La parte più complessa è quindi nell’App, che gestisce tutte le funzioni e genera i comandi di base da inviare al firmware tramite porta seriale. Ecco un’immagine dell’App in funzione sul tablet:

Ecco lo schema elettrico del circuito:

clicca sull’immagine per ingrandirla

Il circuito si alimenta con la stessa batteria sotto prova. Ovviamente, questo vale per i cicli di scarica, ma per quelli di carica abbiamo bisogno di un circuito addizionale. Eccolo:

Anche questo alimentatore è stato realizzato su una scheda per prototipi. Eccola qui:

Nello schema elettrico si vede un connettore per la porta seriale del microcontrollore. In effetti, sul circuito è stato montato un convertitore usb-ttl seriale, come si vede in dettaglio dalla figura sottostante:

L’interfaccia seriale è utilizzabile (magari con un cavo di prolunga!) con un PC, per il debug del firmware. Il cavo flat è un cavo USB OTG autocostruito. E’ ovvio che NON si possono collegare ENTRAMBI i dispositivi! O si collega il PC, o il tablet! Per quanto riguarda il cavo USB OTG, consiglio la lettura del mio precedente articolo Esperimenti su USB OTG dove descrivo le varie prove effettuate in passato. Si noti anche il circuitino Maxim per la misura della corrente, che permette di convertire la corrente che scorre attraverso la resistenza (sotto l’IC) in tensione, misurabile direttamente dall’ADC del micro.

Ora vediamo un dettaglio dell’App. Lo schermo si presenta così (lo screenshot è stato preso su un phablet con schermo di 6.5″):

Questa è la descrizione dei vari elementi:

1)  grafico della tensione tra 10.50 e 13.25V
2)  grafico della corrente da -600 a +600 mA
3)  modello / marca della batteria, utile in screenshot dello schermo
4)  indicatore dello stato del relè di carica/scarica
5)  indicatore dello stato del relè di carico con load 47 Ohm
6)  indicatore delle stato del relè di carico con load 27 Ohm
7)  monitor dei messaggi su seriale (al reset mostra parametri screen)
8)  pulsante di attivazione del relè carica/scarica
9)  pulsante di attivazione del relè per il carico da 47 Ohm
10) pulsante di attivazione del relè per il carico da 27 Ohm
11) visualizzatore del tempo (in minuti) dall'inizio del log
12) selezione modalità automatica scarica -> carica
13) selezione modalità automatica carica -> scarica
14) usa il carico da 27 Ohm nella modalità automatica
15) usa il carico da 47 Ohm nella modalità automatica
16) avvia la registrazione (log) nella modalità automatica
17) pausa nella registrazione
18) interrompi/chiudi la registrazione automatica

L’app è molto semplice. I comandi possono essere eseguiti immediatamente (per esempio accendere o spegnere un relè), oppure può essere avviata una sequenza carica-scarica, oppure una di scarica-carica. Nel primo caso, la batteria viene portata in carica fino al livello di 13.25V e poi viene scaricata fino a 10.50V. Nel secondo caso, viene prima scaricata fino a 10.50V e poi ricaricata fino a 13.25V. La precisione dell’ADC è sufficiente allo scopo di disegnare un grafico. La misura, comunque, è abbastanza precisa, anche perché è possibile (una volta montato il circuito) programmare degli offset “specializzati” in funzione dei componenti. Una fase di debug, fatta tramite comandi seriali da PC e un tester “professionale” messo come elemento di paragone, permette di inserire nel firmware (o nell’App, di preferenza) i fattori correttivi per una misura precisa.

Ecco una schermata (foto non eccelsa) del dispositivo in funzione:

L’immagine mostra una fase di carica comandata “a mano”, passando da una condizione precedente di scarica (brusco sbalzo di corrente). Eseguire i programmi “loggati” di carica/scarica richiede tempo, specie considerando che le correnti applicate, sia in carica che in scarica, sono dell’ordine dei 600mA. Questa è una scelta dettata dall’applicazione delle batterie in dispositivi che hanno, tipicamente, questo range di utilizzo. Alla fine del ciclo, basta fare uno screenshot del video e si ha un’immagine “riassuntiva” di come è avvenuto il ciclo di carica/scarica. E’ interessante paragonare batterie vecchie e nuove, specie di marche diverse. Comparando le caratteristiche di carica e scarica dopo un certo periodo di utilizzo, si può verificare quale modello si “mantiene” meglio nel tempo e così allungare i tempi per la sostituzione programmata negli impianti degli utenti.