Ed ora un’altro interessante progettino.
Dopo aver visto vari progetti in rete, soprattutto basati sui microcontroller PIC, ho deciso di realizzare un caricabatterie per batterie NiMh gestito da un’Attiny85.
Per quale motivo, penserà qualcuno, serve un microcontrollore per gestire la carica di una batteria. La risposta è molto semplice… La maggior parte dei caricabatterie economici che ci sono in commercio, regolano la carica basandosi su un timer, cioè se devo caricare una batteria da 2500mAh, forniscono una corrente di carica ad esempio di 250mAh, continuando la carica per ad esempio 14 ore (una parte dell’energia se ne va a quel paese, 10 ore non sarebbero sufficienti).
Questo modo di caricare le batterie al Nichel (Mh o Cd), non è tanto funzionale. In primo luogo è un processo lento, e poi non garantisce la corretta carica precisa al 100% delle celle, oltre a presentare rischi di sovrraccarica.
I caricabatterie di tipo “smart” in commercio invece, caricano le batterie correttamente, ma oltre ad essere abbastanza costosi, hanno solitamente correnti di carica non elevatissime, con tempi quindi non sempre sopportabili.
Da qui, oltre che la curiosità e la voglia di creare qualcosa di mio, nasce questo progetto…
Ma andiamo con ordine, e cominciamo con il il video che mostra il progetto finito ed in funzione:
Cerchiamo ora di capire un’attimo il funzionamento.
Innanzitutto le batterie al Nichel necessitano di una corrente costante per essere caricate correttamente. In questo caso si è utilizzato un generatore di corrente costante basato su transistor, derivato da quello che abbiamo visto in un post precedente, e fin qui niente di particolare, ma come facciamo a capire quando la batteria è carica?
Dobbiamo leggere continuamente la tensione della batteria sotto carica, e quando questa presenterà dopo un picco massimo di tensione, una discesa repentina di circa 20mv, la batteria potrà considerarsi carica. Tale fenomeno (chiamato Negative Delta V) è legato alla chimica di questa tipologia di batteria, e permette di stabilire con precisione il momento corretto per terminare la carica.
Vediamo quindi lo schema del circuito:
Lo schema è abbastanza semplice. Il transistor dalington Q1 (TIP127), tramite il LED1 (che deve essere assolutamente ROSSO) e la resistenza R3 da 0,3Ω, crea una corrente costante che scorre in direzione della batteria a 6 celle (7.2V), mentre il diodo Schottky 1N5822 da 3A, serve per proteggere tutto il circuito nel caso che venga a mancare la tensione di ingresso con la batteria connessa. Il partitore di tensione R4-R5, serve per portare alla porta 7 dell’Attiny (A1) il voltaggio della batteria diminuito a circa 1/3, in maniera tale che possa funzionare con tensioni sino a 15V (l’ingresso analogico dell’Attiny non può superare i 5V). Il transistor Q2, pilotato dalla porta 5 dell’Attiny (D0), serve come interrutore per attivare o disattivare il LED1 e il transistor Q1.
E’ fondamentale che il LED sia ROSSO, e questo non per una questione di estetica, ma perchè la potenza uscita è data dal rapporto tra la tensione del LED (nei led rossi è di circa 1,8-2,2V) e la resistenza R3. Usando un LED verde, la tensione di riferimento si alza, e di conseguenza anche la corrente si alza (e non di poco).
Il circuito così fornito, può erogare circa 1,5-2,5A, dovete eventualmente fare un po’ di prove con vari tipi di LED rosso, oppure variare la resistenza, che deve essere da 2W. Nel caso non abbiate a disposizione o non riusciate a trovare resistenze di valori così bassi, potete utilizzare 3 o 4 resistenze da 1Ω in parallelo.
Altra cosa da tenere in conto, è la potenza dissipata dal TIP127, che può arrivare anche a 20Watt (dipende dalla corrente e dalla differenza di tensione tra l’ingresso e la batteria), quindi va montato un dissipatore adeguato. Nel mio caso ho usato il case di alluminio che risulta essere sufficiente.
Ultimo appunto è il voltaggio di ingresso, che non deve essere troppo alto altrimenti si rischia di far bruciare il transistor, ma non deve essere nemmeno troppo basso, perchè altrimenti il dropout indotto dai vari componenti fa scendere troppo la corrente di carica. Consiglio all’incirca una differenza di circa 5V tra la tensione di ingresso ed il valore nominale della batteria. Ad esempio con 6 celle, il voltaggio consigliato è di 12,2V (va bene anche 12). Ovviamente si possono caricare anche meno celle, regolando opportunamente la tensione in ingresso. Per una cella, dovremmo alimentare il tutto con una tensione di circa 1,2+5 = 6,2V (va bene anche 6 o 7).
Vediamo ora il circuito stampato:
Da notare le due chicche che non erano visibili nello schema. Il connettore ICSP (quindi la possibilità di aggiornare il firmware sull’Attiny (via programmatore ad esempio UsbTinyISP), e il connettore debug, da collegare ad un convertitore TTL per potere leggere il voltaggio della batteria durante la carica.
Il connettore J1 invece è un jumper che deve essere sempre chiuso, tranne quando aggiorniamo il firmware dell’Attiny85.
A proposito di firmware… Il codice sorgente del firmware è il seguente:
/*
NiMh Charger 0.9
con AtTiny85 @ 1Mhz
by Luca Soltoggio
10/03/2012 - 20/04/2012
Usa il -dT per determinare la fine carica.
Funziona con batteerie NiMh e NiCd.
I valori di default sono per pacchi da 6 celle e 2500mAh
Necessita di qualche aggiustamento hardware/software per parametri differenti.
Vedi http://arduinoelettronica.wordpress.com/
*/
const int inputPin = A1;
const int outputPin = 0;
const int numReadings = 30; // numero di letture analogiche prima di fare il check della batteria
const int multi = 1614; // coefficiente di moltiplica per ottenere il voltaggio corretto dall'analogread
long interval = 1000; // intevallo del pulse charge - non modificare
long interval2 = 250; // intervalle pulse off - modificabile. Utlizzare 100 per 2-4Ah, 500 per 1-2Ah
long interval2b=interval2;
long previousMillis,currentMillis,currentMillis2,trickleMillis = 0;
unsigned int readingtemp;
unsigned int total = 0;
unsigned int average,medium,maxmedium = 0;
boolean executed,endcharge,trickle=false; // variabili di controllo
unsigned int myarray [7]; // arrray che memorizza le ultime 7 letture
int index,i = 0;
void setup()
{
Serial.begin(9600);
pinMode(0,OUTPUT);
// Alcune letture per un controllo iniziale
for (i=0;i<10;i++) {
readingtemp = analogRead(inputPin);
total=total+readingtemp;
}
average = (((float)total / 1023.0) * (float)multi) / 10.0 + 0.5;
if (average<=70) endcharge=true; // Se la batteria non è presente, termina la carica
Serial.println(average);
total=0;
average=0;
}
void pusharray() {
// push dell'array
for (i=0;i<=5;++i) {
myarray[i]=myarray[i+1];
}
myarray[6]=average;
}
void voltread() {
readingtemp = analogRead(inputPin); // legge l'input analogico
total= total + readingtemp;
index++;
// se è stato raggiunto "numReadings" calcola la media
if (index==numReadings) {
index=0;
average = (((float)total / 1023.0) * (float)multi) / numReadings + 0.5;
if (average<=70) endcharge=true; // termina la carica se la batteria viene scollegata
total=0;
pusharray(); // inserisce la nuova media nell'array
// calcola la media delle ultime 7 letture
medium=(float)(myarray[6]+myarray[5]+myarray[4]+myarray[3]+myarray[2]+myarray[1]+myarray[0])/7.0+0.5;
if (medium>maxmedium) maxmedium=medium; // salva il valore della media più alta in "maxmedium"
Serial.print(medium);
Serial.print(",");
Serial.print(maxmedium);
Serial.print(",");
Serial.println(myarray[6]);
// se la batteria è carica (la media dei voltaggi è scesa di 0.02v), ma non nei primi 11 minuti
if ( ((medium+1) < maxmedium) && ((millis()/60000)>=11) ) {
if (!trickle) trickleMillis=millis(); // parte il timer per la "trickle charge" finale
trickle=true; // parte la "trickle charge" finale
// se la batteria si è caricata nei primi 15 minuti, non utilizzare la "trickle charge" finale
// (probabilmente la batteria era già carica)
if ((millis()/60000)<=15) endcharge=true;
}
}
}
void loop() {
currentMillis = millis();
// esegui ogni "interval" millis
if(currentMillis - previousMillis > interval) {
voltread(); // chiama la funzione di lettura e controllo
digitalWrite(outputPin,LOW); // ferma temporaneamente la carica
previousMillis = currentMillis;
executed=false; // variabile per controlloare se è già stata riattivata la carica
// nei primi 10 minuti e negli utlimi 15 minuti effettua una "trickle charge"
// (modifica il tempo di OFF)
if ( ( (trickle) && (((millis()-trickleMillis)/60000)<15) ) || ((millis()/60000)<10) ) {
interval2=(interval-(interval-interval2b)/5);
// dopo la carica iniziale ripristina il valore corretto di interval2
} else if ((millis()/60000)>=10) interval2=interval2b;
// alla fine dell'ultima "trickle charge" termina la carica
if ( (trickle) && (((millis()-trickleMillis)/60000)>=15) ) endcharge=true;
}
currentMillis2 = millis();
// esegui "interval2" millis dopo aver fermato la carica
if ((currentMillis2 - previousMillis > interval2) && (!executed)) {
executed=true;
if (!endcharge) {
digitalWrite(outputPin,HIGH); // se la batteria non è carica, riabilita la carica
}
}
}
Il codice è abbastanza semplice ed autoesplicativo.
Per la versione con i commenti in inglese – For commented English version, take a loke at:
http://fritzing.org/projects/smart-nimh-battery-power-charger-with-attiny85/
Concludo con qualche foto del progetto finito:
Trovi il mio progetto anche su Fritzing:
http://fritzing.org/projects/smart-nimh-battery-power-charger-with-attiny85/
Alla prossima!






ehbbbravoilfratellino!
Ciao, bel progettino
Come programmi l’ATtiny85? Gli carichi il bootloader di arduino? Mi consigli qualche risorsa sul web?
Grazie
Oops, mi rispondo da solo: qui sul tuo blog!
E allora ti faccio i complimenti per il blog
Grazie mille!!!
Ciao e a presto
Luca
Ciao trovo il tuo progetto molto interessante dato che devo realizzare un caricabatterie serio per le Ni-Mh da 2500mAh.
In particolare dovrei caricare pacchi da 4 batterie quindi sono 4.8V mi potresti indicare le modifiche da apportare?
Vorrei inoltre sapere se hai il circuito stampato già pronto da vendere, in caso contattami in privato.
Grazie
Andrea
Ciao Andrea,
e grazie per i complimenti.
Per caricare un pacco da 4.8V, potrebbe già andare bene così, se non che rischia di surriscaldare un po’ troppo il transistor, altrimenti come indicato nell’articolo, riduci il voltaggio in ingresso a 4,8V+5V = 9,8V (va bene 10V).
Il circuito non lo vendo, ne ho fatti stampare alcuni su fritzing fab.
Puoi eventualmente seguire il ling su fritizing alla fine del mio articolo, e da li comprarlo direttamente da loro.
A presto
Hi toggio, nice charger!
Please, this 0.3ohms resistor R3 can be a carbon resistor 0.24ohms 2W? I ask this because it seems to me by your photo that you are using a different resistor. Looks like a wirewound resistor. I want to charge 6 NiMh 2200mAh battery pack.
Thanks
Hi Bernardo,
sure you can use 0.24ohms, but be carefull that power will increase, so you will have to dissipate well the TIP127!!!
Greetings
Luca
Hai mai pensato di creare una per lo zinco nichel? ZN?
Molto difficile ahcar caricabatterie intelligente per questo tipo di chimica.
Ci scusiamo per il traduttore.
Ciao!
Ho l’esigenza di caricare 3 NiMH AAA, ed ho preso spunto dal tuo progetto. Per il generatore di corrente costante ho usato un LM317, ed ho fatto alcune prove utilizzando un atmega328 per leggere la tensione ai capi della serie di batterie, ma non ho ottenuto, o meglio, non ho visto, il calo di tensione! Ho usato batterie ‘quasi’ cariche, per velocizzare il tutto, ma dopo 4 ore a 125mA (le batt. sono da 700mAh) ho solo letto valori in costante aumento tra 3.95 e 4.24volts. Il sistema di lettura è simile al tuo, faccio la media di 20 letture (una ogni 5 secondi)…. leggo i millivolts, per cui un calo di anche solo di 10 mVolts dovrei vederlo bene…. le letture di tensione sono sempre o costanti o in aumento, ed ho visto pochissime diminuzioni, nell’ordine di 1mV….
Qualche suggerimento??
Grazie per aver reso pubblico il progetto!!
Caro Ivan,
grazie a te che segui questo blog.
La risposta al tuo quesito credo sia abbastanza semplice. Il problema dovrebbe essere legato al fatto che la corrente di carica è troppo bassa… dovrebbe essere almeno la metà del valore nominale delle batterie, o anche un po’ di più, altrimenti non si genera l’effetto di abbassamento del voltaggio o si genera in maniera troppo blanda. Ti consiglio una corrente di carica di 600-700ma con una pausa di 100ms ogni secondo… Inoltre per poter funzionare correttamente le batterie devono essere completamente scariche…
A presto.
azz… 700mA… mi sa che il LM317 non è sufficente!
Farò ulteriori prove!
Grazie mille delle preziose informazioni!
Ciao Ivan,
L’integrato LM317 supporta carichi fino a 1,5A, quindi non preoccuparti…
Fa attenzione anche al dropout… Il voltaggio in ingresso deve essere almeno 6volts in più rispetto al voltaggio delle batterie…
A presto
Rispondo qua, non ho l’opzione ‘risposta’….
Penso che costruirò un caricabatterie piu ‘malleabile’, anche per serie di AA, per cui mi avvicinerei troppo a 1.5A…. gia con 125mA scalda tanto (con su un dissipatore da ram video)…. credo opterò per un LM338, identiche caratteristiche del 317 ma corrente max 5A, e un case piu grande, piu adatto ad essere dissipato efficacemente rispetto al TO220.
Grazie ancora!
Ciao Toggio,
innanzitutto grazie mille per aver reso disponibile il tuo utilissimo progetto, era da tanto tempo che cercavo un sistema per caricare “intelligentemente” le mie NiMH, in quanto quelli in commercio a basso costo caricano male e i risultati sono quindi poco soddisfacenti, senzo contare la paura di accorciare la vita delle batterie ogni volta che le mettevo sotto carica
Volevo chiederti come mai hai usato un darlington PNP e non invece un NPN come un TIP122?
) In quanto ho qualche “122 avanzato che aspetta solo di esser usato 
Non ho sotto mano TIP127, secondo te è possibile sostituire il 127 con un 122 modificando la posizione del transistor “pilota” a monte del tip e correlati aggiustamenti? (se si, dammi una dritta su come potrei procedere
Nel tuo articolo specifichi inoltre che il led deve essere obbligatoriamente rosso, in quanto è necessario al corretto funzionamento del dispositivo, e che se si andasse a modificare bisognerebbe ritarare la resistenza… intendi R1 o R3? e perchè? non ho afferrato il principio :/
Ringrazio ancora infinitamente per l’utilissimo progetto
Ciao Claudio,
scusa se ci ho messo un po’ a rispondere, ma sono stato un po’ impegnato…
Ti ringrazio molto per i tuoi complimenti: il motivo per cui anche io ho creato questo progetto, è che anche io non avevo trovato progetti soddifacenti in rete.
Ma venendo al dunque, ho usato un PNP perchè era l’unico modo che ho trovato per usarlo come switch in parallelo ad una tensione attiva come quella di una batteria… Per usare un NPN sarebbe stato estremamente più complicato…
Non è possibile quindi sostituire il circuito usando un NPN. Puoi comunque usare (li trovi a basso costo) qualsiasi PNP darligton di adeguata potenza, purchè si leggano le specifiche e si effettuino alcuni test.
Per quanta riguarda il LED rosso il discorso è questo: la corrente di carica è data dal rapporto tra la tensione di riferimento – data dal LED – e la resistenza R3.
Se vuoi variare la corrente in uscita (in questo caso siamo tra 1,5A e 2,5A), devi modificare la resistenza R3 (più il valore è alto, più la corrente diminuisce). Potresti usare anche un LED con un dropout diverso volendo (quelli bianchi arrivano fino a 3,5V contro 1,8-2V di quelli rossi), ma aumenteresti il dropout generale del circuito diminuendone l’efficienza.
In definitiva, ogni LED, ogni transistor ed ogni resisenza sono diverse: ti consiglio di fare dei test misurando gli Ampere generati dal circuito, prima di realizzare la versione definitiva.
Spero che il tutto sia abbastanza chiaro.
A presto
Luca
Ciao Luca,
grazie ancora per aver pubblicato il tuo lavoro, mi ha dato modo di conoscere e capire meglio il funzionamento delle batterie NiMH e NiCD, infatti dopo averlo letto ho iniziato a documentarmi incuriosito dai vari sistemi di carica e dei relativi pro e contro, e più o meno tutti sembrano concordi che il sistema del dV negativo a fine carica sembra il più funzionale, anche se promuovono il fatto che una carica lenta sarebbe meglio, ma difficile da controllare…
Tralasciando le mie divagazioni e tornando al punto xD, volevo utilizzare un modello modificato del tuo schema sempre tenendo intatto il tuo codice, ma nell’intestazione del codice specifichi che necessita di aggiustamenti “hardware/software”… aggiustamenti all’hardware ok li hai puù o meno illustrati nei precedenti post, ma riguardo il software? sarebbe possibile secondo te creare un codice “universale” che vada solo a rilevare il deltaV a prescindere dalla portata e tensione del pacco batterie? (sempre restando entro la tolleranza di lettura del controllore e considerando il partitore per la lettura) cioè che legga il solito numero di misure, e che ne faccia la differenza con quelle effettuate precedentemente, e che quando intercetta un risultato negativo interrompa la carica e/o vada in modalità “mantenimento” (opzionale, basta che stacchi la carica come prima priorità)?
Grazie ancora mille per le ottime idee divulgate
Penso che continuerò ad usare i caricabatteria con PIC perchè questo non mi sembra un granchè. Naturalmente di caricabatterie seri con microcontrollori AVR c’è ne sono ma questo sicuramente NO!
Caro Gigi, ovviamente non ho mai preteso di realizzare il miglior caricabatterie al mondo… Tutto quanto presente in questo sito è realizzato in maniera hobbistica e senza grandi pretese. Tutti i commenti, anche negativi, sono accettati. Certamente sarebbe più costruttivo un commento che mi indicasse i motivi del perché secondo te non è un granché e magari qualche link di progetti migliori da cui prendere spunto.
A presto
Ciao volevo chiederti i metodi di pagamento di fritzing fab e anche il costo del circuito stampato. Grazie (:
Come spiegato dettagliatamente sul sito (http://fab.fritzing.org/fritzing-fab/pricing), il prezzo è di 0,70€ per centimetro quadro + 4€ di fisso per sketch + 6€ di spedizione.
Quindi per una board di 40mmx30mm, sono 8,4+4+6=18,4€ (+ 19% di iva su 8,4+4).
Il pagamento viene invece effettauto con paypal.
A presto
ok grazie mille,molto gentile
ciao,
innazitutto bel lavoro, non sono un grande esperto ma avrei bisogno di caricare un pacco batterie ni-mh da 20 celle cioè mi servirebbero 24 v in uscita. Volevo chiederti che modifiche fare al tuo circuito per renderlo utilizzabile per i 24 v.
Grazie ancora per il progetto.
Ciao Matteo,
il circuito così com’è supporterebbe già i 24v, in quanto i due transistor utilizzati lavorano tranquillamente fino a più di 60v.
La tensione in ingresso dovrebbe essere ovviamente intorno ai 29v, o anche qualcosina in più (diciamo 30v), l’importante è dotare il TIP127 di un bel dissipatore, altrimenti rischi di bruciarlo.
Per lo stadio in ingresso del microcontroller, l’integrato LM7805 supporta fino a 35v, ma è un po’ “tirato” e rischia di surriscaldarsi. Consiglio quindi anche qui un dissipatore… Il consumo basso del micro, non doverebbe creare però grossi problemi.
Spero di esserti stato utile.
A presto
Hello,
Very interesting project, congratulations. I will try to build one, following your design. I have kind of a robot powered from eight 2100 mAh NiMH batteries. The elements that draw current are, basically, an arduino, a motor bridge and an xbee RF transmitter. The robot has a charging station. My plan is to charge batteries when the robot comes to charging station. I bought a so called “smart” NiMH charger and wanted to use it to charge the robot in the charging station, but…. I think it is so “smart” (it uses pulses as in your design) that it somehow detects that energy is drawn from the batteries (the arduino and other stuff are working non stop) and it refuses to charge. If I disconnect the arduino and all the other consuming elements, the charger does its job.
So, I hope with your design I will be able to charge the batteries, even if energy is drawn whilst charging is taking place. Do you think it will be possible?
The other question I have is in regard to pulses: are they necessary? and if so, why? is it possible to charge continually, without pulses, as one does for example with Pb batteries?
Thanks a lot in advance,
Angel Valor from Madrid
Hola Angel,
muchas gracias por los cumplidos. Ahora escribo en Inglés, porque para hablar de la electrónica es más fácil.
Ok, so i think it’s not possibile to charge the NiMh batteries when in use, because that charging metod requires batteries volts to be so precise with an accuracy of 1-2mv. If not batteries will damages, or not charge at all. That’s because the only method to know if NiMh have reached charge (during fast charge), is to detect a negative peak in battery volts. That is really different from Pb batteries. Regarding pulses, they are not necessary, but it help to full charge the battery leaving it sit for some time during charge. If u want fast charge, pulses are necessary. If u want slow charge, you don’t need pulese neither smart charge, but i think your robot need to charge quickly… So i advise you to use Lithium batteries (like the ones in cell phones, notebooks and so)… Are more powerfull, lighter, and althugh they requires more precise battery charger, they chan be charged while in use. There is a sparkfun dedicated Lipo charger shield (https://www.sparkfun.com/products/10711).
Espero que esto ayude
Hasta pronto
muchas gracias Toggio por la rapida y util respuesta.
and I would like yet to explore a way to use the NiMh batteries in the project. I forgot to mention that in the robot there is still an ip wireless camera not very efficient, as it draws 2 amperes! thats why pb batteries is neither a good choice for me. NiMh is a good choice but i have this problem with charging.
The thing is that budget in my case is a constraint (you know, we are in economical crisis
i will have into account the lipo option, but still explore a solution with nimh.
something as for example switch power to the circuit from batteries to mains when the robot enters charging station. i.e. disconnect batteries from the circuit and charge batteries. when robot leaves charging station, do the opposite. I just have to find out how to implement this (i am relatively new to this fascinating world of electronics).
thanks a lot again. Angel Valor
Ciao, complimenti per il tuo semplice e bel carica batteria.
Ho solo una curiosità/lacuna………come mai la carica viene ogni tanto interrotta?
Questo attacca/stacca non influenza la tensione della batteria, quindi la lettura del micro?
Ciao Paolo e grazie per i complimenti…
Il fatto che la carica venga interrotta non è un errore, ma anzi è una cosa voluta ed è fondamentale per la corretta riuscita della carica…
Con la carica ad alto amperaggio, tale interruzzione fa si che la batteria non si surriscaldi, e che la chimica interna torni in uno stato di “riposo”…
Non influenza la lettura del micro, perchè tale lettura viene fatta sempre nello stesso momento preciso, e cioè quando la carica è attiva e non in off.
A presto
Ciao, bel progetto complimenti davvero!!
Si potrebbe secondo te implementare un circuito di scarica del pacco batterie?
Una batteria nimh si considera totalmente scarica quando la tensione va a 0,8V. Si potrebbe quindi mettere una resistenza in parallelo al carico e tramite uno switch tipo relè controllare la scarica.
Una volta arrivato a 0,8 per cella iniziare la ricarica.
Altra domanda (non sono esperto di batterie come te), se una batteria del pacco è difettosa, c’è un modo di controllarla?
Grazie e di nuovo complimenti.
Massimo.
Grazie mille,
sicuramente si può implementare un circuito di scarica, era una delle cose che mi ero promesso di fare.
Se una batteria del pacco è difettosa si può controllarla, ma per far ciò va smontato il pacco e misurata la tensione della singola cella.
A presto
Rieccomi qua, ho modificato un po’ il tuo circuito. Non sono pratico con gli Atmel quindi ho usato un pic per controllare la tensione delle batterie.
Inoltre ho provato a mettere anche il circuito di scarica tramite relè cmndato sempre dal PIC.
Nel fine settimana (tempo permettendo) provo ad assemblare il tutto.
Unico dubbio: a me serve un carica batteria per 8 celle. Quindi la tensione di alimentazione sarà 1.2×8+5 = circa 15 V.
Sul led L1 passa una corrente abbastanza alta..non è che si frigge?
Grazie dell’aiuto.
Massimo
Ciao Massimo,
sarebbe interessante se pubblicassi qui il tuo progetto così da poter essere uno spunto per altri.
Per quanto riguarda il led L1, non ci sono problemi, in quanto la corrente che passa è legata al voltaggio ed alla resistenza R1. Avendo 15V quindi è sufficente aumentare leggermente la resistenza R1 (diciamo da 560 o 680Ohm).
Mi raccomando dissipa bene il TIP127!!!
A presto
Luca
Ciao Luca, stavo dando un occhiata al tuo codice:
Se ho ben capito (ma correggimi se sbaglio) funziona a impulsi, cioè si carica per 1000 ms e poi si aspetta 250 ms. In tale tempo si fa la lettura della tensione della batteria stessa. Ma questo attacca e stacca non danneggia la batteria? Ho sbagliato qualcosa? (non sono esperto di atmel nè di carica batterie…)
Ciao Massimo,
è giusta l’analisi che hai fatto del codice, riguardo il funzionamento ad impulsi. Tale modalità però, non solo non danneggia la batteria, ma ne prolunga la vita. Quando si carica una Ni-Mh con correnti elevati (0,5C – 1,5C), questo è infatto l’unico modo per non danneggiare la batteria. Il momento di pausa, permetta alla chimica della batteria di assestarsi ed evità il surriscaldamento della batteria stessa.
Ulteriori informazioni le trovi qui: http://www.mpoweruk.com/chargers.htm
A presto
Ciao Luca, lo pubblicherò sicuramente ma prima vorrei provarlo…non vorrei pubblicare qualcosa che assomiglia a una stufa per il fumo che fa… ahahahah
Grazie a presto.
Massimo.