Al giorno d’oggi, le false batterie al litio e NiMH si possono trovare quasi ovunque e sono vendute dalle pubblicità con capacità superiori a quelle reali. È quindi molto difficile distinguere una batteria vera da una falsa. Pertanto, è necessario un dispositivo per misurare la capacità effettiva della batteria.
Sono noti due metodi per testare le batterie con arduino. Un primo basato sulla legge di Ohms. La batteria da testare viene scaricata attraverso una resistenza fissa, la corrente e il tempo vengono misurati da Arduino e la capacità viene calcolata moltiplicando le due letture (corrente di scarica e tempo).
Lo svantaggio di questo primo metodo è che durante il test, quando la tensione della batteria diminuisce, anche la corrente diminuisce, rendendo i calcoli complessi e imprecisi. Per rimediare, ecco il secondo metodo per testare la capacità di una pila con Arduino. Questo è progettato in modo che la corrente rimanga costante durante tutto il processo di scarico. Senza ulteriori indugi, ecco come creare un tester della capacità della batteria con Arduino!
Le caratteristiche principali di un test della batteria con Arduino sono :
- In grado di misurare la capacità delle batterie AA / AAA NiMh / NiCd, 18650 Li-ion, Li-Polymer e Li FePO4. È adatto a quasi tutti i tipi di batterie inferiori a 5V.
- Gli utenti possono regolare la corrente di scarica usando i pulsanti.
- Interfaccia utente OLED
- Il tester può essere usato come un carico elettronico.
Componenti utilizzati
Ora ordina il PCB e tutti i componenti necessari per costruire questo progetto in un kit.
- PCB
- Arduino Nano
- Opamp LM358
- Display OLED 0,96
- Resistenza in ceramica
- Condensatore 100nF
- Condensatore 220uF
- Resistenze 4.7K e 1M
- Pulsante
- Tappi a pulsante
- Terminale a vite
- Tabella dei prototipi
- Spegnimento del PCB
- Tubi termorestringenti
- Dissipatore di calore
Strumenti utilizzati
- Saldatore
- Misuratore a pinza
- Multimetro
- Soffiatore ad aria calda
- Taglierina del filo
- Spellafili
Passo 1: diagramma schematico
L’intero schema è diviso in 5 circuiti:
- Circuito di alimentazione
- Circuito di carica a corrente costante
- Circuito di misurazione della tensione della batteria
- Circuito di interfaccia utente
- Circuito della suoneria
Circuito 1: circuito di alimentazione
Il circuito di alimentazione consiste in una presa DC (7-9V) e due condensatori di filtro C1 e C2. L’uscita di alimentazione (Vin) è collegata al pin Vin di Arduino. Qui, uso il regolatore di tensione a bordo di Arduino per abbassare la tensione a 5V.
Circuito 2: circuito di carica a corrente costante
Il componente centrale del circuito è l’amplificatore operativo LM358 che contiene due amplificatori operativi. Il segnale PWM dal pin D10 di Arduino è filtrato da un filtro passa-basso (R2 e C6) e inviato al secondo amplificatore operazionale. L’uscita del secondo amplificatore operativo è collegata al primo amplificatore operativo in una configurazione voltage-follower. L’alimentazione dell’LM358 è filtrata attraverso un condensatore di disaccoppiamento C5.
Il primo amplificatore operazionale, R1, e Q1 costituiscono un circuito di carico a corrente costante. Ora possiamo controllare la corrente attraverso la resistenza di carico (R1) cambiando la larghezza dell’impulso del segnale PWM.
Circuito 3 : Circuito di misurazione della tensione della batteria
La tensione della batteria è misurata dal pin A0 dell’ingresso analogico di Arduino. Due condensatori C3 e C4 sono usati per filtrare il rumore dal circuito di carico a corrente costante che può degradare le prestazioni di conversione ADC.
Circuito 4: Circuito di interfaccia utente
Il circuito dell’interfaccia utente consiste in due pulsanti e un display OLED I2C da 0,96″. Il pulsante “Up and Down” è usato per aumentare o diminuire la larghezza dell’impulso PWM. R3 e R4 sono resistenze di pull-up per i pulsanti Up e Down. C7 e C8 sono utilizzati per far rimbalzare i pulsanti. Il terzo pulsante (RST) è usato per resettare la batteria di Arduino.
Circuito 5: circuito di squillo
Il circuito del cicalino è usato per avvisare l’inizio e la fine del test. Un cicalino a 5V è collegato al pin D9 della batteria digitale di Arduino.
Passo 2: Come funziona?
La teoria si basa sul confronto della tensione degli ingressi invertiti (pin-2) e non invertiti (pin-3) dell’OpAmp, configurato come un amplificatore unitario. Quando si regola la tensione applicata all’ingresso non invertente regolando il segnale PWM, l’uscita dell’opamp apre il gate del MOSFET. Quando il MOSFET si accende, la corrente scorre attraverso R1, creando una caduta di tensione, che fornisce un feedback negativo all’OpAmp. Controlla il MOSFET in modo tale che le tensioni ai suoi ingressi invertenti e non invertenti siano uguali. Così, la corrente attraverso la resistenza di carico è proporzionale alla tensione all’ingresso non invertente dell’amplificatore operazionale.
Il segnale PWM di Arduino è filtrato con un circuito di filtro passa-basso (R2 e C1). Per testare il segnale PWM e le prestazioni del circuito di filtro, ho collegato il mio DSO ch-1 all’ingresso e ch-2 all’uscita del circuito di filtro. La forma d’onda di uscita è mostrata sopra.
Passo 3: Misurare la capacità
Qui la batteria viene scaricata alla sua bassa tensione di soglia (3,2V).
Capacità della batteria (mAh) = Corrente ( I ) in mA x Tempo (T ) in ore
È chiaro dall’equazione precedente che per calcolare la capacità della batteria (mAh), dobbiamo conoscere la corrente in mA e il tempo in ore. Il circuito progettato è un circuito di carica a corrente costante, in modo che la corrente di scarica rimanga costante per tutto il periodo del test.
La corrente di scarica può essere regolata premendo il pulsante “Su e Giù”. Il tempo viene misurato utilizzando un timer nel codice di Arduino.
Passo 4: Fare il circuito
Nei passi precedenti, ho spiegato la funzione di ogni componente del circuito. Prima di passare alla produzione della mappa finale, provate prima il circuito su una breadboard. Se il circuito funziona perfettamente sulla piastra di montaggio, allora procedete a saldare i componenti sulla piastra del prototipo.
Ho usato la scheda prototipo 7cm X 5cm.
- Montaggio dell’Arduino Nano: Per prima cosa tagliate due file di pin femmina di 15 pin ciascuna. Ho usato pinze diagonali per tagliare i connettori. Poi saldare i pin del collettore. Assicuratevi che la distanza tra le due rotaie sia la stessa di quella di Arduino nano.
- Montaggio del display OLED: tagliare un commutatore femmina con 4 pin. Poi saldatelo come mostrato nell’immagine.
- Montaggio di terminali e componenti : Saldate gli altri componenti come mostrato nell’immagine.
- Cablaggio: Eseguire il cablaggio secondo lo schema. Ho usato fili colorati per fare il cablaggio in modo da poterli identificare facilmente.
Passo 5: display OLED
Per visualizzare la tensione della batteria, la corrente di scarica e la capacità, ho usato un display OLED da 0,96″. Ha una risoluzione di 128×64 e utilizza un bus I2C per comunicare con Arduino. Due pin SCL (A5), SDA (A4) nell’Arduino Uno sono usati per la comunicazione.
Uso la libreria Adafruit_SSD1306 per visualizzare i parametri.
Per prima cosa, dovete scaricare la libreria Adafruit_SSD1306. Poi deve essere installato.
Le connessioni devono essere come segue
- Arduino a OLED
- da 5V a VCC
- Da GND a GND
- A4 a SDA
- Da A5 a SCL
Passo 6: Cicalino di avvertimento
Un cicalino piezoelettrico è usato per dare avvisi durante l’inizio e la fine del test. Il cicalino ha due terminali, quello più lungo è positivo e quello più corto è negativo. L’adesivo sul nuovo cicalino ha anche un “+” per indicare il terminale positivo.
Dato che la scheda del prototipo Arduino non ha abbastanza spazio per posizionare il cicalino, ho collegato il cicalino alla scheda del circuito principale usando due fili. Per isolare la connessione nuda, ho usato un tubo termorestringente.
Le connessioni devono essere come segue
- Arduino a cicalino
- D9 al terminale positivo
- Da GND a terminale negativo
Passo 7: Montare i fermi del PCB
Dopo la saldatura e il cablaggio, montate le staffe ai 4 angoli. Questo permetterà uno spazio sufficiente tra le saldature e i fili e la terra.
Passo 8: progettazione del PCB
Ho disegnato lo schema usando il software online EasyEDA dopo essere passato al layout del PCB.
Tutti i componenti che avete aggiunto nello schema dovrebbero essere lì, impilati l’uno sull’altro, pronti per essere posizionati e instradati. Fate scorrere i componenti afferrando i suoi perni. Poi posizionatelo all’interno della linea rettangolare.
Disporre tutti i componenti in modo che la scheda occupi il minimo spazio. Più piccola è la dimensione della scheda, più basso è il costo di fabbricazione del circuito stampato. Sarà utile che questa scheda abbia alcuni fori di montaggio in modo che possa essere montata in un case.
Ora dobbiamo fare il viaggio. Il routing è la parte più divertente dell’intero processo. È come risolvere un puzzle! Utilizzando lo strumento di routing, dobbiamo collegare tutti gli elementi. Puoi usare i livelli superiore e inferiore per evitare la sovrapposizione tra due tracce diverse e accorciare le tracce.
Passo 9: montaggio del PCB
Per la saldatura, avrete bisogno di un saldatore, pinze e un multimetro. Si consiglia di saldare i componenti secondo la loro altezza. Prima saldate i componenti inferiori.
Potete seguire i seguenti passi per saldare i componenti:
- Spingete le gambe del componente nei loro fori e girate il circuito sul retro.
- Tenere la punta del saldatore alla giunzione tra il pad e la gamba del componente.
- Inserire la saldatura nel giunto in modo che scorra intorno al filo e copra la piazzola. Una volta che è affondato tutto intorno, allontanare la punta.
Passo 10: Software e biblioteche
Prima di tutto, scaricate il codice Arduino allegato. Poi, scaricate le seguenti librerie e installatele.
Librerie da scaricare
Scaricare e installare le seguenti librerie:
- JC_Button: https://github.com/JChristensen/JC_Button
- Adafruit_SSD1306: https://github.com/JChristensen/JC_Button
Nel codice, dovete cambiare le due cose seguenti:
- Valori di corrente dei tabelloni: Questo può essere fatto collegando un multimetro in serie alla batteria. Premere il pulsante su e misurare la corrente, i valori attuali sono le voci della tabella.
- VCC: Si usa un multimetro per misurare la tensione al pin 5V di Arduino. Nel mio caso, è 4,96V.
Potete cambiare il valore di Low_BAT_Level nel codice a seconda della chimica dello stack. È preferibile prendere un po’ di margine sulla tensione di taglio indicata qui sotto.
Qui ci sono i tassi di scarica e le tensioni di taglio per diversi tipi di batterie agli ioni di litio:
- Ossido di cobalto di litio: tensione di spegnimento = 2,5 V a 1 C di scarica
- Ossido di litio e manganese: tensione di spegnimento = 2,5 V con un tasso di scarica di 1 C
- Litio ferro fosfato: tensione di spegnimento = 2.5V con un tasso di scarica di 1C
- Titanato di litio: tensione di spegnimento = 1,8V ad un tasso di scarica di 1C
- Ossido di litio-nichel-manganese-cobalto: tensione di taglio = 2,5 V con un tasso di scarica di 1 C
- Ossido di litio-nichel-cobalto-alluminio: tensione di spegnimento = 3.0V ad un tasso di scarica di 1C
Passo 11: Conclusione
Per testare il circuito, ho prima caricato una buona batteria Samsung 18650 con il mio caricatore ISDT C4. Poi collego la batteria al terminale della batteria. Ora regola la corrente secondo le tue esigenze e premi a lungo il pulsante “UP”. Si dovrebbe quindi sentire un bip e la procedura di test della capacità della batteria inizierà. Durante il test, si monitorano tutti i parametri sul display OLED. La batteria si scaricherà fino a quando la sua tensione raggiungerà la soglia di basso livello (3,2V). Il processo di test della capacità della batteria terminerà con due lunghi segnali acustici.
Spero che troviate utile il mio tutorial.