![]() |
Misuratore di Resistenza Interna con ARDUINO Ciao, volevo presentarvi un progetto che sto portando avanti. Mi sono cimentato un poò su ARDUINO e la prima cosa che ho sentito la necessità di realizzare è un misuratore di Resistenza Interna delle nostre lipo. Perchè questo strumentino? Molto semplice : non tutti i cb misurano la Ri, tra quelli che la misurano, non tutti la misurano cella per cella, tra questi ancora meno sono quelli che mi danno la possibilità di archiviare i dati in un file sul pc per mantenere lo storico. Al momento ho già superato la fase embrionale ed il progetto è quasi in via definitiva. NON VUOLE essere uno strumento di precisione, ma mi sono reso conto che confrontato con altri strumenti e con calcoli fatti a mano per misurare la Ri, i valori riportati sono affidabili. Questa foto è per dare l'idea delle dimensioni : https://lh6.googleusercontent.com/-h...531_122259.jpg Questo è stato il primo esperimento usando la scheda LEONARDO che è molto piccola; poi ho dovuto cambiarla con una MEGA perchè il codice sorgente era troppo grande. Poco male : una scheda ARDUINO la si recupera sempre e non sono mai soldi buttati via. La spesa è del tipo 18 il display e 40 la MEGA, ma se si vuole risparmiare su HK ci sono i cloni a pochi dollari ma io preferisco rimanere nell'ambito dell'originale. In pratica come funziona il progetto? La scheda ARDUINO si basa (come i nostri multifunzione più famosi tipo questo Radio Control Planes, Helicopters, Cars, Boats, FPV and Quadcopters - Hobbyking* o questo che è molto più preciso ACME LiPo Voltage Monitor con misura Resistenza interna cella a diversi carichi) sugli stessi circuiti integrati della serie ATMEL che in pratica sono dei piccoli microprocessori programmabili con una dozzina di IN analogici e digitali e con dei convertitori ADC abbastanza precisi a 10 bit. ll codice scritto fino ad ora fa le seguenti operazioni : -> lettura voltaggio per singola cella a riposo -> tramite un mosfet, applico un carico da 10 ohm 100W sui cavi di potenza della lipo -> dopo aver aspettao qualche secondo per stabilizzare il carico, rileggo il voltaggio di ogni singola cella -> stacco il carico -> conoscendo Voltaggio a riposo e sottocarico e conoscendo la resistenza di carico, calcolo la Ri -> scrivo sul display tutti i valori con sfondo coloraro in base alla tensione Il risultato finale è questo : https://lh3.googleusercontent.com/-2...630_233329.jpg Il calcolo della percentuale residua di carica si basa, ovviamente, sul voltaggio. Per la misurazione del voltaggio di ogni singola cella, all'entrata c'è un partitore resistivo che divide la tensione per 2,3,4,5,6,7 e 8 in base alla cella di riferimento. TUTTE le resistenze che ho usato sono con tolleranza 0,1% Questo il codice scritto : Codice: // Include le librerieAl momento la visualizzazione avviene solo su display ma è possibile, modificando opportunamente il codice, scrivere anche sul pc oppure solo sul pc evitando l'acquisto del display. In futuro aggiungerò del codice per usarlo anche come servo tester. Se vi vengono in mente modifiche di qualunque genere, sono gradite :wink: Il prosismo passo è quello, per avere una precisione ancora più elevata, di eliminare i partitori resistivi all'entrata e sostituirli con degli op-amp. Ovviamente, sempre per l'entrata, è in fase di realizzazione un pcb apposito per ospitare tutte le resistenze compresa quella di carico anzichè usare un millefori come adesso di cui vi risparmio la foto... |
molto bello e bravissimo. non ci stanno le unita di misura V- mOhm ? almeno credo che le misure a dx siano mOhm. |
Interessante il progetto, ma che tipo di display hai usato? |
La colonna di sinistra riporta i Volt di ogni singola cella, la colonna di fianco riporta i milliohm corrispondenti, a destra i Volt totali, il numero di celle e la percentuale di carica residua. Quest'ultima si basa su dei limiti, ovviamente variabili da codice, che sono : 0% 3.5V e 100% 4.2V Il display è quello originale ARDUINO ;) |
Salve. Progetto molto interessante...sono intenzionato a farlo anche io, perché ne ho bisogno. E' possibile avere anche uno scema elettrico con i componenti? Grazie. Saluti Pauli |
Può aiutarmi qualcuno? grazie Saluti Pauli |
Ciao prova a contattare con messaggio privato l'utente che ha aperto il post ,sempre se e' ancora sul barone. |
Citazione:
Per quello ho provato a crivere se qualcuno mi può aiutare. Saluti Pauli |
Esclusa la parte del mosfet, non è difficile. Serve solo pazienza per progettare i collegamenti e fare i calcoli. Se qualcuno riuscisse a spiegare la parte mosfet si potrebbe lavorare insieme e progettare da 0 questo sistema... Purtroppo sembra che l'utente sia inattivo da un po'.. speriamo comunque che legga |
Se volete fare esercizio di programmazione, va bene farsi da soli questo strumento. Ma se vi serve questo strumento, il suo prezzo da Hobby King è inferiore al costo del solo materiale per costruirselo in proprio. Le molte ore di programmazione che dovrete impiegare per far funzionare uno strumento simile, possono essere impiegate meglio per la costruzione di un nuovo modello. Naraj. |
Citazione:
Considera che io ho già Arduino Uno e Mega 2560 fermi a fare nulla, inoltre ho un ACS718 da 30A ( sensore di corrente ) fermo a fare polvere. Ho anche un LCD 128x64 B/N cosi come dei 16x2 blu.. Il mio costo sarebbero i connettori XT60 e bilanciatori... |
Prova a dare un'occhiata a questi strumenti. https://hobbyking.com/en_us/turnigy-...-ir-meter.html https://hobbyking.com/en_us/turnigyt...vo-tester.html Naraj. |
Per pilotare un mosfet da un I/O di un microprocessore basta questo: http://1.bp.blogspot.com/-RjxKkks0kG...s1600/fig1.png se usi un mosfet 'intelligente' puoi anche eliminare R1 ed R2 va bene da 47..68 ohm. Per misurare bene la resistenza interna di una batteria converrebbe fare due misure a correnti diverse, esempio 1A e 10A, leggere contemporaneamente sia I che V (usando due ADC sincroni) ed al posto di una resistenza di carico impiegare un generatore di corrente costante. Concordo con Naraj che per misure di massima ma sufficienti per uso amatoriale vanno bene gli strumenti ni che ha consigliato. :yeah: |
Bell' esempio ELNonino per il pilotaggio del mosfet!!!! Però come faresti la parte di lettura delle singole celle? Nel senso che, per leggere una sola è facile però se devi leggere le altre dove la tensione è 8,4 - 12,6 in più le celle sono collegate tra loro? Spero di essermi spiegato..... Saluti Pauli |
Citazione:
|
Il punto critico L4kyITA è proprio che con arduino hai una massa unica...e quindi non puoi prendere come riferimento il "negativo" della cella precendente, a menochè si usi degli operazionali....cè qualcuno che ha gia fatto, oppure ne sa qualcosa? Saluti Pauli |
Un partitore resistivo realizzato con resistenze al 0,1% garantisce una precisione più che sufficiente allo scopo. Con opportune tecniche di sovracampionamento si può aumentare la risoluzione base di 10 bit di Arduino, nulla vieta poi di usare un economico ADC esterno ad elevata risoluzione ed interfacciarlo con il micro tramite I2C o meglio SPI. Esistono anche microprocessori economici con doppio AD a 12/16bit e relative schede pronte all'uso. Per realizzare un mini strumento è comunque necessaria un po di conoscenza del HW, non basta saper pigiare tasti per scrivere codice (per di più spesso realizzato da altri sotto forma di librerie pronte all'uso). :wink: Volendo strafare: LT1167 - Single Resistor Gain Programmable, Precision Instrumentation Amplifier - Linear Technology si possono usare questi. :yeah: |
Citazione:
Allora come dice ElNonino conviene fare un partitore con resistenze con bassa tolleranza |
1 Allegato/i In rete ho trovato questo esempio....però mi piacerebbe trovare e sapere i valori delle resistenze.... http://www.baronerosso.it/forum/atta...1&d=1482179570 Pauli |
Op-amp Varieties Le resistenze devono essere a bassissima tolleranza se no gli errori introdotti saranno superiori alla perdita di risoluzione non lineare dei partitori connessi al ADC. Tenete presente che esistono anche ADC con ingressi VRef+ e VRef- che possono essere usati vantaggiosamente per quest'applicazione. In ogni caso dovrete prevedere una tabella di calibrazione nel firmware. :yeah: |
| Tutti gli orari sono GMT +2. Adesso sono le 15:56. |
Basato su: vBulletin versione 3.8.11
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
E' vietata la riproduzione, anche solo in parte, di contenuti e grafica. Copyright 1998/2019 - K-Bits P.I. 09395831002