Jumping Jack Flash weblog

Collegamento di un CellLog8S/8m ad Arduino o a ESP8266

Posted in auto elettriche, batterie, hardware, scooter elettrici by jumpjack on 2 gennaio 2017

L’utente pa.hioficr sul forum https://endless-sphere.com/forums/viewtopic.php?f=14&t=20142 ha scoperto che è possibile leggere in tempo reale i dati di log di un CellLog (sia 8S con memoria che 8S senza memoria) semplicemente “agganciandosi” al pin TX dell’Atmel montato sul CellLog.

Questo significa che invece di spendere 40-50 euro per comprare un CellLog8S con memoria e infilarlo nel sottosella per poi aspettare di arrivare a casa per scaricare i dati letti, è in linea di principio possibile collegare al CellLog8M da 15 euro un ESP8266 da 8 euro che tramite Wifi invia dati a uno smartphone che li mostra in tempo reale sullo schermo durante la marcia; probabilmente è anche possibile scrivere un SW che legge i dati da più di un celllog contemporaneamente, sfruttando l’emulatore di porte seriali.

Questo è lo schema elettrico originale dell’autore:

celllog-000

 

Questa è una sua successiva modifica per implementare anche avvio del logging e reset del CellLog:

celllog-001

Di seguito la spiegazione del funzionamento che ho dedotto io dallo schema, inserita anche nella seconda edizione del mio libro “Guida alla costruzione di una batteria al litio per mezzi elettrici”, di imminente pubblicazione:

 

8.1.2. Materiale occorrente
Q1 = 2n3906 o altro PNP
R1 = R4 = R6 = R7 = 220 ohm
R2 = R5 = 330 ohm
R3 = 4700 ohm
U1 = U2 = optocoupler/fotoaccoppiatore a 2 canali, 5V, 8 pin, uscita a fototransistor di tipo NPN (es. Vishay ILD615, Fairchild MCT61, Isocom ISP827,… )
8.1.3. Spiegazione del funzionamento
Il circuito può essere suddiviso in 4 parti: le prime due ricevono dati dal CellLog tramite il primo fotoaccoppiatore e li inviano al microcontrollore esterno; le altre due ricevono invece dati dal microcontrollore e li inviano al CellLog tramite il secondo fotoaccoppiatore.
8.1.3.1. Rilevamento accensione
In Figura 127 è riportata la parte dedicata al rilevamento dell’accensione; notare che nella figura il transistor è stato capovolto rispetto allo schema originale reperito su internet, per renderlo coerente con la notazione standard di avere la corrente che scorre dall’alto verso il basso; inoltre lo schema è stato semplificato e ripulito, per facilitarne la comprensione, lasciando però inalterati i collegamenti e i componenti.
Il microcontrollore (MCU) è programmato per leggere sul pin MCU_CL8.1_DETECT lo stato del CellLog: quando il pin è “basso” (0V), vuol dire che il CellLog è acceso; normalmente questo pin è invece a 5V perché connesso all’alimentazione dell’MCU tramite R5 (che serve a limitare a 15mA la corrente Collettore-Emettitore quando il transistor è in conduzione); quando però il CellLog viene acceso, i suoi 5V arrivano, tramite la resistenza R4 (che limita la corrente a 23 mA) sul pin 4, e mettono in conduzione il fotodiodo 3-4, che mette a sua volta in conduzione il fototransistor 5-6, che mette a massa il pin MCU_CL8.1_DETECT.
celllog-002
Figura 127 – Rilevamento accensione
8.1.3.2. Lettura dati
Dobbiamo far “riflettere” sul piedino RX del microcontrollore esterno lo stato del pin TX del CellLog, tramite il fotoaccoppiatore; per farlo, usiamo il pin TX del CellLog per controllare la base di un transistor collegato all’ingresso del fotoaccoppiatore; il transistor serve a far sì che basti prelevare dal CellLog una piccolissima corrente (1 mA grazie a R3 da 4300 ohm) per attivare il fotodiodo, che richiede invece alcune decine di mA; in pratica è un transistor di disaccoppiamento, che cioè rende indipendenti gli assorbimenti di corrente di CellLog e fotoaccoppiatore.
celllog-003
Figura 128 – Circuito TX-RX con transistor PNP o NPN
Il progettista ha scelto di usare un transistor di tipo PNP, che viene acceso da una tensione di base negativa rispetto all’emettitore; l’emettitore va quindi collegato stabilmente alla tensione di alimentazione 5V, in modo che il transistor entri in conduzione quando TX va a 0V. Quando questo accade, succederà quanto segue, in sequenza:
1. Q1 si accenderà
2. Passerà una corrente nel fotodiodo 1-2
3. Si accenderà il fototransistor 7-8
Dobbiamo ora fare in modo che tutto ciò risulti in una tensione di 0V sul piedino RX del microcontrollore esterno, corrispondente al piedino 8 del primo fotoaccoppiatore, che è il collettore del fototransistor di uscita; per farlo, dobbiamo fare in modo che il piedino 8 si trovi normalmente a 5V, e venga portato a 0V solo quando si accende il fototransistor 7-8; bisogna quindi tenere il pin 8 costantemente collegato ai 5V del microcontrollore esterno, e il pin 7 alla sua massa; in questo modo, l’accensione del fototransistor 7-8, che avviene quando TX del CellLog va a 0, collegherà il pin 8 a massa tramite il 7, cioè metterà RX del microcontrollore esrerno a 0, riflettendo così esattamente lo stato del pin TX del CellLog.
Se non dovessimo avere disponibile un transistor PNP ma solo un NPN, occorrerà invertire la logica del circuito.
8.1.3.3. Reset
Il “cervello” del CellLog, un microcontrollore ATMEL, è dotato di un piedino di reset, che possiamo controllare tramite il nostro microcontrollore esterno; per farlo, al pin di reset colleghiamo il collettore del fototransistor 5-6 del secondo fotoaccoppiatore (pin 5); controlliamo questo fototransistor tramite il rispettivo fotodiodo 3-4, collegato al pin MCU_CL8.1_RESET del nostro microcontrollore esterno; basterà quindi mettere alto questo pin per mettere in conduzione il fotodiodo e il fototransistor e quindi resettare il CellLog.
celllog-005
8.1.3.4. Avvio log
Per far partire il logging è necessario premere per 3 secondi il pulsante 2 del CellLog (SW2); possiamo farlo fare al nostro microcontrollore esterno collegando l’interruttore in parallelo a un’uscita del secondo fotoaccoppiatore: quando sull’ingresso ci sarà una tensione di 5V (impostata via software), il fototransistor di uscita entrerà in conduzione chiudendo l’interruttore e avviando così il logging.

celllog-004

Diario Elettrico Ecojumbo 5000: due vittorie sulle batterie

Posted in batterie, scooter elettrici by jumpjack on 9 novembre 2016

Oggi ho conseguito due importanti traguardi:

  • sono riuscito a riparare la batteria guasta collegandola a un nuovo BMS esterno
  • sono riuscito a modificare un caricabatterie EMC240 comprato su BatteryBMS, tarato per batterie LiFePO4 da 60V per adattarlo a batterie li-ion

Nel primo caso ho usato un BMS 20S comprato su EclipseBikes, lo stesso che avevo già usato per la mia batteria sperimentale.

Nel secondo caso mi sono appoggiato a questa mia vecchia pagina, questo forum e questa pagina ,vecchia (2012) ma che ho appena scoperto; in pratica, facendo fare qualche giro in senso orario al trimmer VR2 posizionato vicino ai LED ho abbassato la tensione di uscita da 73V (20S LiFePO4, 3,65V/cella) a 67.2V (16S Li-ion, 4.20V). Trattandosi in entrambi i casi di batterie al litio, non c’è da cambiare altro perchè la curva di carica è la stessa, di tipo CCCV: una prima fase a Corrente Costante finchè la batteria non arriva a una tensione prefissata, seguita da una seconda fase in cui, mantenendo sempre quella tensione, si invia alla batteria sempre meno corrente, finchè non ne accetta più perchè è carica; nella prima fase si ricarica l’80% della batteria.

Seguiranno dettagli sulla riparazione della batteria.

Diario elettrico Ecojumbo 5000 – 15 marzo 2016: messa a punto centralina

Posted in Diario elettrico Ecojumbo 5000 by jumpjack on 17 marzo 2016

Passata la prima settimana di prove su strada, ho deciso di mettere mano alla centralina per mettere un po’ a punto le prestazioni: al momento, con questi settaggi, partendo da fermo con l’acceleratore a tavoletta vengo quasi disarcionato dallo scooter e la tensione di batteria scende paurosamente, quindi non è decisamente l’ideale… La velocità massima è di 82 km/h, e l’acceleratore, quand’è al minimo,non sempre viene letto correttamente dalla centralina. Questo perchè  applicando 3,75V , a riposo ottengo 0,88V (23,4%) e al massimo 2,95V (78,6%), mentre la centralina è impostata su  20% di minimo e 80% di massimo, valori troppo risicati (scelti infatti del tutto a caso…):

Configurazione acceleratore Ecojumbo su centralina Kelly KEB72801

Acceleratore Ecojumbo su centralina Kelly KEB72801 – configurazione 1 (prima del 15/3/2016) [schermata 1]

Ho scelto quindi questa nuova configurazione:

kelly-001-dopo2

L’acceleratore viene cioè “letto” come “zero” solo se è minore del 25%; la cosa è importante perchè c’è un’altra opzione sulla centralina che impedisce completamente di partire se all’accensione della centralina stessa l’acceleratore non risulta a zero (per motivi di sicurezza), dando l’errore (2,4) (schermata 2):

kelly-002-prima

Sicurezza acceleratore su centralina Kelly KEB 72801 – Configurazione 1 (pre 16/3/2016)  [schermata 2]

E’ l’opzione “Power on High Pedal disable” (che si leggerebbe meglio se scritta “Power-on high-pedal disable”, o meglio ancora “Disable if high-pedal detected at power-on”), perchè nella centralina l’acceleratore è chiamato “pedal” oltre che “throttle”.

Già che ci siamo, spieghiamo anche la seconda opzione, “Releasing Brake High Pedal Disable”: significa che se, quando si rilascia il freno, l’acceleratore non è a zero, il motore non parte.( Non so se dipende da questo il fatto che tirando il freno NON viene escluso il motore MA viene escluso se tiro indietro il pulsante sopra all’acceleratore: pensavo fossero sulla stessa linea di sicurezza, ma evidentemente non è così… o forse dànno due diversi livelli di tensione, non so… dovrò fare delle misure. )

“Si dice”, infatti, che su uno scooter elettrico sia obbligatorio disabilitare il motore a freni tirati. Non sono però mai riuscito a trovare la normativa che impone quest’obbligo. Forse dovrei cercare su una generica/fantomatica normativa sugli azionamenti elettrici in continua… ma io che ne so?!?

In questa stessa schermata, che riporto di nuovo per comodità per chi arriva a questo punto della pagina solo col FIND (CTRL+F)….,  si vede la tensione di “taglio sottosoglia” (Low Voltage Cutoff – LVC): in via estremamente prudenziale l’avevo inizialmente impostata a 60V:

kelly-002-prima

Tensione di sottosoglia per centralina Kelly KEB72801 – configurazione 1 [schermata 2]

La nota dice che le tensioni effettive di stacco e riattacco sono 60*1,1 (cioè 60 +10%) e 60*0,05 (cioè 60 +5%), cioè 66  e 63V; in questi giorni, tornando a casa dopo 20 km percorsi, era sui 64,5 , e ovviamente scendeva anche di più durante le accelerazioni. Però la nota mi sembra anche confusionaria: dice che la corrente viene tolta a 66V e riattaccata a 63… ma non ha senso! Semmai dovrebbe essere tolta a 63 e, quando poi la tensione risale a 66 perchè si è rilasciato l’acceleratore, essere riattaccata! Invece a me si staccava “a tensione indefinita dopo un tempo indefinito” (a volte sono stato anche a 58 per qualche secondo, e non ha staccato, mentre altre volte, in corsa, quando non riuscivo a leggere la tensione, staccava…), ma si è sempre riattaccata, benchè i 66V la batteria li raggiunga solo quando è completamente piena…

Mah. La morale della favola è che devo installare il voltmetro sul manubrio invece che sul “serbatoio”, dove non riesco a leggerlo in movimento quando ho il grembiule antivento… :-/

Comunque sia, ora ho impostato la soglia di LVC a 53V, che significa  55.65V e 58.3V:

Tensione di sottosoglia per centralina Kelly KEB72801 - configurazione 2 [schermata 2]

Tensione di sottosoglia per centralina Kelly KEB72801 – configurazione 2 [schermata 2]

 55.65V significa 2.78V/cella, mentre 58.3V significa 2.915V/cella (rispetto agli esagerati 3V di prima…). “Si dice”  che le LiFePO4 possano arrivare fino a 2.5V senza danneggiarsi, ma non vedo il motivo di stressarle tanto. Comunque, vedrò quanta autonomia riesco a raggiungere così. Sono anche finalmente riuscire a trovare una pinza amperometrica da 1000A DC e con uscita in tensione, quindi potrò finalmente tarare il powermeter comprato anni fa e mai utilizzato perchè starato.

La tensione di soprasoglia l’ho impostata a 74V rispetto ai 73V di tensione massima di ricarica, ma in realtà quando le batterie sono in ricarica sono staccate dallo scooter, quindi al momento questo valore è irrilevante. Devo ancora studiare un modo per ricaricare le batterie senza staccarle dallo scooter, perchè hanno un unico connettore sia per scarica che per ricarica, e devo capire se andando a ricaricarle mentre sono collegate vado anche a buttare corrente nelle varie utenze dello scooter  o no, e se devo aggiungere un interruttore che dovrei staccare ogni volta che ricarico… boh… Sono abituato a uno scooter con batterie estraibili, che dovevo per forza di cose ogni volta staccare dallo scooter pe ricaricare; ora che sono fisse nello scooter non so bene come gestirle…

Ma torniamo ora alla schermata 1, perchè è qui che si impostano, oltre alle tensioni dell’acceleratore, anche le correnti del motore e della batteria; questa era la prima mappatura:

Configurazione acceleratore Ecojumbo su centralina Kelly KEB72801

Configurazione acceleratore Ecojumbo su centralina Kelly KEB72801 – configurazione 1

Inizialmente avevo cioè impostato che la centralina prelevasse dalle batterie il 50% della corrente massima (50% di 140A, cioè 70A/4.6kW), e inviasse al motore l’80% (112A/7.4kW); però tirare fuori 70A da una batteria composta da due batterie da 18Ah significa estrarre da ciascuna 35A/2C, che è un po’ tanto; nella settimana di prove ho appurato che è anche inutile, e pure un po’ pericoloso, perchè così lo scooter ha un’accelerazione sconsiderata, al punto che se parto con l’acceleratore a tavoletta rischio di essere disarcionato!!! A me basta arrivare da 0 a 50 in 3 o 4  secondi, non in mezzo secondo! Quindi nella nuova mappatura ho impostato la corrente a 30% (42A/2.8kw, cioè poco più di 1C a batteria), molto più ragionevole, e 70% (98A/6.5kW) al motore:

 

kelly-001-dopo

Corrente di batteria – configurazione 2: 30% di 140A(=42A, 21A/batteria,  1.3C, 2.7 kW totali, max 70 km/h)

Infatti adesso il voltmetro dell’Ecojumbo non scende più di 2.5 tacche  su 3 quando accelero a fondo, ma solo di mezza tacca su 3 (non ho ancora verificato a quali valori effettivi corrisponde), ma l’accelerazione in partenza è ancora ottima, permettendomi di liberare gli incroci con la dovuta prontezza.

Come si nota, la corrente che va al motore è regolabile indipendentemente da quella estratta dalla batteria: questa “magia” (realizzata, credo,  da un DC/DC converter, che “trasforma” la tensione in corrente) è fondamentale per batterie sottodimensionate come le mie, perchè così posso preservarle senza dover rinunciare alle ottime prestazioni dell’ecojumbo. La conversione da tensione a corrente, infatti, fa sì che i “miseri” 42A/2.7kW prelevati dalla batteria diventino 98A quando vanno al motore; immagino che questo significhi che al motore non arrivano più i 66V della batteria, ma qualcosa in meno; ma tanto la tensione massima stabilisce solo qual è la velocità massima del motore… che ovviamente in partenza è minima, quindi in partenza serve poca tensione; serve invece molta corrente, perchè dalla corrente dipende l’accelerazione; si tratta quindi di “ridistribuire” opportunamente tra corrente e tensione la poca potenza disponibile proveniente dalle batterie: con 42A e 66V si hanno 2,8 kW; per avere 2,5 kW a 98A significa che la tensione scende a 28V, cioè che lo scooter può arrivare al massimo a 30-35 km/h. Ma stiamo per l’appunto parlando di “partenza” , “corrente di picco” e “accelerazione di picco”, quindi non è un problema: una volta partito lo scooter, la corrente cala drasticamente, per andare pian piano a risalire man mano che aumenta la velocità.

In teoria, per arrivare a 90 km/h dovrebbero servire oltre 6000W (anche se non ho dati certi su Frontal Area e Cx dello scooter, potrebbero essere 0.8 come 0.7 o 0.9…), nel qual caso con 2.8 kW potrei arrivare al massimo a 70 km/h…. che per l’appunto è la velocità che ho registrato nei test! Un po’ bassina, vorrei arrivare almeno a 80, ma sempre senza stressare le batterie; però secondo quella tabella servono 4.9 kW…. non so se ci riesco, prendendo dalla batteria solo 2.7kW! Lo vedo un po’ impossibile! Mi sa che dovrò per forza aspettare di installare una TERZA batteria per arrivare almeno a 54Ah, che significherebbe avere almeno 60A/3.9 kW continui disponibili. Solo che avevo intenzione di comprarla dopo aver fatto abbastanza km elettrici da equivalere i suoi 800 euro in benzina, ma l’acquisto della centralina nova mi è già costato… 6000 km di benzina! Dovrò farmi un po’ di conti.

Tutti gli altri settaggi, per ora, non li ho toccati; il regen non lo uso perchè sarebbe troppo complicato gestirlo con due batterie in parallelo.

kelly-003-prima kelly-004-prima kelly-005-prima

Schema elettrico caricabatterie li-ion Kingpan (forse)

Posted in batterie, scooter elettrici by jumpjack on 23 maggio 2014

Attenzione! L’articolo è stato rivisto e corretto più volte dopo la prima pubblicazione.

Sono riuscito a trovare lo schema elettrico di un CB che probabilmente è come il mio, almeno in linea di massima, anche se questo è da 36V e il mio da 60:

 

EBike-LiFePO4-Lithium-Ion-36V-8A-battery-charger-with-TL494-circuit

(more…)

Nuovi prodotti per monitoraggio batterie

Posted in auto elettriche, batterie, scooter elettrici by jumpjack on 15 maggio 2014

Tempo fa compilai un elenco di chip utilizzabili (in teoria) per realizzare un monitor/logger per batterie al litio; “in teoria” perché poi in realtà si è rivelato impossibile saldarli con metodi casalinghi perché troppo miniaturizzati.

Uno di questi era il Maxi MAX14921; per esso adesso è uscita una scheda dimostrativa (MAX14921EVKIT#) che permette di testarne la capacità; non sono riuscito a trovare il prezzo, ma immagino che purtroppo si aggirerà sui soliti 100 o 200 euro…

In compenso ho trovato un’Application Note (5760) che spiega come la scheda dimostrativa utilizzi il MAX14921 in configurazione di “ottimizzazione della precisione” con molti componenti esterni ausiliari, ma è possibile anche utilizzarlo da solo (almeno credo), collegandolo unicamente a un microcontrollore tramite un partitore di tensione.

 

http://www.maximintegrated.com/images/appnotes/5760/5760Fig07.gif

 

Il sistema pare sia “molto economico”, ma anche “molto meno preciso”, con errori dell’ordine dei 100 mV, che forse sono un po’ troppi per bilanciare celle LiFePO4, che hanno un range di funzionamento di meno di 800 mV (2800-3600 mV). E tornerebbe comunque il problema dell’ “insaldabilità” dei piedini troppo miuscoli.

Ci sono poi dei prodotti della O2Micro come l’OZ890, con cui qualcuno sembra stia facendo esperimenti:

http://endless-sphere.com/forums/viewtopic.php?f=14&t=48461&hilit=oz890

http://forum.arduino.cc/index.php?topic=156030.0

http://www.pedelecforum.de/forum/index.php?threads/smartbms-oz890-mit-elv-i2c-interface-ansprechen.22492/

Questo sembrerebbe essere un BMS basato sull’Oz890, ad appena 20 euro per 13 celle:

http://www.bmsbattery.com/smart/330-lifepo4lithium-ion-smart-bms-for-513-cells-in-series.html

Il cavo per programmarlo costa 70 euro, ma in quei forum mi pare di capire che hanno trovato un modo per comunicare tramite Arduino.