Sommario:
- Passaggio 1: modifica dal progetto di base
- Passaggio 2: V0.2 della scheda
- Passaggio 3: breadboard: controller di visualizzazione dei caratteri I2c espanso
- Passaggio 4: breadboard: visualizzazione dei caratteri con I2c integrato
- Passaggio 5: realizzazione
- Passaggio 6: estensibilità
- Passaggio 7: elenco delle parti
- Passaggio 8: scheda: reset, pulsante Gnd E per selezionare la batteria
- Passaggio 9: scheda: pin I2c e alimentazione
- Passaggio 10: scheda: termistore e misurazione della tensione
- Passaggio 11: scheda: resistenza alla misurazione della tensione
- Passaggio 12: Passaggio di saldatura: tutti i pin
- Passaggio 13: passaggi di saldatura: resistenza di pulldown e termistore
- Passaggio 14: passaggi di saldatura: MOSFET, resistenza per controllare la tensione
- Passaggio 15: codice
- Passaggio 16: risultato dopo l'assemblaggio
- Passaggio 17: prima seleziona il tipo di batteria
- Passaggio 18: iniziare a scaricare
- Passaggio 19: eccezioni: batteria rimossa
- Passaggio 20: eccezioni: avviso di temperatura
- Passaggio 21: test dell'amperaggio
- Passaggio 22: pacchetto
Video: Controllo batteria con selezione della temperatura e della batteria: 23 passaggi (con immagini)
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:03
Tester di capacità della batteria.
Con questo dispositivo puoi controllare la capacità della batteria 18650, acido e altro (la batteria più grande che ho testato è la batteria 6v Acid 4, 2A). Il risultato del test è in milliampere/ora.
Creo questo dispositivo perché ne ho bisogno per controllare la capacità della batteria fake china.
Per sicurezza ho aggiunto, utilizzando un termistore, la temperatura della resistenza di alimentazione e della batteria per evitare che si surriscaldasse, con questo accorgimento posso controllare la batteria ad acido 6v senza accendere la scheda (nel ciclo di scarica un po' di tempo vado a resistenza di potenza calda e il dispositivo attende 20 secondi per ridurre la temperatura).
Seleziono piccolo micro controller atmega328 compatibile nano (eBay).
Tutto il codice è qui.
Passaggio 1: modifica dal progetto di base
Ho rubato l'idea al progetto di OpenGreenEnergy, e ho rifatto il tabellone per aggiungere funzionalità, così ora divento più generale.
v0.1
- Il VCC di Arduino viene ora calcolato automaticamente;
- Aggiunta variabile per modificare l'impostazione in modo più comodo.
- Aggiunta percentuale di scarico
- Aggiunta temperatura della batteria e resistenza di alimentazione
v0.2
- Aggiunta possibilità di selezione della batteria
- Ho creato una scheda prototipo (guarda lo schema), con lo schermo, il pulsante e l'altoparlante all'esterno della scheda perché in futuro mi piacerebbe creare un pacchetto.
- Aggiunta la gestione del limite di temperatura alla resistenza di potenza in modo da poter bloccare il processo quando la temperatura sale oltre i 70° (oltre questa temperatura declassamento della resistenza di potenza).
v0.3
Prossimamente una scheda da questo servizio
Passaggio 2: V0.2 della scheda
Nella v0.2 per supportare vari tipi di batterie, ho creato una struttura che deve essere riempita con il nome della batteria, la tensione minima e la tensione massima (ho bisogno di aiuto per riempirla:P).
// Struttura della batteria typestruct BatteryType { char name[10]; galleggiante maxVolt; galleggiante minVolt; }; #define BATTERY_TYPE_NUMBER 4 BatteryType batteryTypes[BATTERY_TYPE_NUMBER] = { { "18650", 4.3, 2.9 }, { "17550", 4.3, 2.9 }, { "14500", 4.3, 2.75 }, { "6v Acid", 6.50, 5.91 } };
Ora uso un set di resistori da 10k per il partitore di tensione per leggere la doppia temperatura dell'ingresso analogico. Se vuoi cambiare il supporto di tensione, devi cambiare questo valore (spiega meglio dopo):
// Resistenza alla tensione della batteria
#define BAT_RES_VALUE_GND 10.0 #define BAT_RES_VALUE_VCC 10.0 // Resistenza di tensione del resistore di potenza #define RES_RES_VALUE_GND 10.0 #define RES_RES_VALUE_VCC 10.0
Se non usi il termistore, imposta questo su false:
#define USING_BATTERY_TERMISTOR vero
#define USING_RESISTO_TERMISTOR vero
Se utilizzi un display i2c diverso, devi riscrivere questo metodo:
pareggio vuoto (vuoto)
Nel progetto, puoi trovare schemi, foto e altro.
Passaggio 3: breadboard: controller di visualizzazione dei caratteri I2c espanso
Ho usato un display di caratteri generico e ho costruito il controller i2c e l'ho usato con la mia libreria personalizzata.
Ma se vuoi puoi prendere un normale controller i2c (meno di 1€) con una libreria standard, il codice rimane lo stesso. Tutto il codice di visualizzazione è in funzione di disegno, quindi puoi cambiarlo senza cambiare altre cose.
Spiegato meglio qui.
Passaggio 4: breadboard: visualizzazione dei caratteri con I2c integrato
Lo stesso schema senza i2c controllato espanso.
Passaggio 5: realizzazione
Per misurare la tensione utilizziamo il principio di un partitore di tensione (maggiori informazioni su Wikipedia).
In parole semplici, questo codice è il fattore moltiplicatore per misurare la tensione della batteria.
batResValueGnd / (batResValueVolt + batResValueGnd)
Ho inserito le 2 resistenze di batResValueVolt e batResValueGnd dopo e prima del filo di lettura analogico.
batVolt = (campione1 / (1023.0 - ((BAT_RES_VALUE_GND / (BAT_RES_VALUE_VCC + BAT_RES_VALUE_GND)) * 1023.0))) * vcc;
sample1 è la media delle letture analogiche;
vcc riferimento tensione Arduino;
1023.0 è il valore massimo di riferimento della lettura analogica (le letture analogiche Arduino vanno da 0 a 1023).
Per ottenere l'amperaggio è necessaria la tensione prima e dopo la resistenza di potenza.
Quando hai la misura della tensione prima e dopo la resistenza di potenza puoi calcolare il milliampere che consuma la batteria.
Il MOSFET viene utilizzato per avviare e arrestare il consumo della batteria dal resistore di alimentazione.
Per sicurezza ho inserito 2 termistori per monitorare la temperatura della batteria e della resistenza di alimentazione.
Passaggio 6: estensibilità
Cerco di creare una scheda prototipo che sia estensibile, ma per ora utilizzo solo un set minimo di pin (in futuro aggiungerò led e altri pulsanti).
Se si desidera una tensione di supporto maggiore di 10 V, è necessario modificare il valore del resistore della batteria e della resistenza secondo la formula
(BAT_RES_VALUE_GND / (BAT_RES_VALUE_VCC + BAT_RES_VALUE_GND)
nello schema Tensione di alimentazione della resistenza
Tensione alimentazione resistenza GND 1/2 / (Tensione alimentazione resistenza 2/2 + Tensione alimentazione resistenza GND 1/2)
Il rosa è giù saldatura
Passaggio 7: elenco delle parti
Proprietà del tipo di parte dell'importo
- Morsettiera a vite per montaggio su PCB da 2 5 mm Morsettiera a vite 8A 250 V LW SZUS (eBay)
- 1 clone Arduino Pro Mini (compatibile Nano) (eBay)
- 1 canale P FET di base IRF744N o IRLZ44N (eBay)
- 11 10kΩ Resistore resistore 10kΩ (eBay)
- 2 Sensore di temperatura (termistore) 10kΩ; (eBay)
- * Modulo di intestazione maschile generico ♂ (maschio); (eBay)
- * Modulo di intestazione femminile generico ♀ (femmina); (eBay)
- 1 Scheda PerfBoard Scheda prototipo 24x18 (eBay)
-
10R, 10W
resistore di potenza (eBay) Trovo il mio in un vecchio televisore crt.
Passaggio 8: scheda: reset, pulsante Gnd E per selezionare la batteria
Nella parte sinistra dei pin si trovano il pulsante e il cicalino.
Uso 3 pulsanti:
- uno per cambiare tipo di batteria;
- uno per avviare la scarica della batteria selezionata;
- quindi uso il pin di ripristino per riavviare tutto e attivare una nuova operazione.
Tutti i pin sono già stati abbassati, quindi è necessario attivarli con VCC
Il reset è attivato con GND
Il rosa è giù saldatura
Passaggio 9: scheda: pin I2c e alimentazione
Alla base puoi vedere il VCC, GND e SDA, SCL per la visualizzazione (e altro in futuro).
Il rosa è giù saldatura
Passaggio 10: scheda: termistore e misurazione della tensione
A destra ci sono i pin per leggere il valore del termistore, uno per il resistore di potenza e l'altro per il termistore della batteria (pin maschio/femmina da collegare).
Poi ci sono pin analogici che misurano la tensione differenziale dopo e prima del resistore di potenza.
Il rosa è giù saldatura
Passaggio 11: scheda: resistenza alla misurazione della tensione
Qui puoi vedere il resistore che permette di supportare una tensione doppia rispetto al pin arduino (10v), devi cambiarlo per supportare più tensione.
Il rosa è giù saldatura
Passaggio 12: Passaggio di saldatura: tutti i pin
Per prima cosa aggiungo tutti i pin e la saldatura.
Passaggio 13: passaggi di saldatura: resistenza di pulldown e termistore
Quindi aggiungo tutti i resistori pulldown (per i pulsanti) e il connettore i2c (display).
Quindi il termistore del resistore di potenza è molto importante, con la batteria acida che si surriscalda.
Passaggio 14: passaggi di saldatura: MOSFET, resistenza per controllare la tensione
Ora dobbiamo inserire il mosfet per attivare la scarica e la resistenza per controllare la tensione.
2 resistenza per la tensione prima della resistenza di potenza 2 resistenza per la tensione dopo la resistenza di potenza, quando hai questa tensione puoi calcolare il consumo di milliampere.
Passaggio 15: codice
Il microcontrollore è compatibile con nano, quindi devi impostare il tuo IDE per caricare un Arduino Nano.
Per funzionare devi scaricare il codice dal mio repository github.
Quindi devi aggiungere 3 librerie:
- Wire: libreria arduino standard per protocollo i2c;
- Libreria Termistor da qui non la libreria che puoi trovare in arduino IDE, ma la mia versione;
- LiquidCrystal_i2c: se usi la versione estesa/custom dell'adattatore i2c (la mia versione) devi scaricare la libreria da qui, se usi il componente standard puoi prendere la libreria da arduino IDE, ma tutto è meglio spiegato qui.
Non provo LCD con libreria standard, mi sembra che siano intercambiabili, ma se ci sono problemi non esitate a contattarmi.
Passaggio 16: risultato dopo l'assemblaggio
La scheda base è nella foto, quindi possiamo andare a provarla.
Passaggio 17: prima seleziona il tipo di batteria
Come descritto abbiamo una mappa di valore con configurazione della batteria.
// Struttura della batteria typestruct BatteryType { char name[10]; galleggiante maxVolt; galleggiante minVolt; }; #define BATTERY_TYPE_NUMBER 4 BatteryType batteryTypes[BATTERY_TYPE_NUMBER] = { { "18650", 4.3, 2.9 }, { "17550", 4.3, 2.9 }, { "14500", 4.3, 2.75 }, { "6v Acid", 6.50, 5.91 } };
Passaggio 18: iniziare a scaricare
Il clic del secondo pulsante inizia a scaricare.
Nel display si possono vedere i milliampere correnti, i milliampere/ore, la percentuale di scaricamento, la tensione della batteria e la temperatura della resistenza di potenza e della batteria.
Passaggio 19: eccezioni: batteria rimossa
Se rimuovi la batteria il processo di scarica va in pausa, quando lo reinserisci ricomincia dall'ultimo valore.
Passaggio 20: eccezioni: avviso di temperatura
Se la temperatura (batteria o resistenza di alimentazione) si surriscalda, il processo di scarica va in pausa.
#define BATTERY_MAX_TEMP 50
#define RESISTANCE_MAX_TEMP 69 // 70° su datasheet (Resistenza di derating) #define TEMP_TO_REMOVE_ON_MAX_TEMP 20
Il valore predefinito per la temperatura massima è 50° per la batteria e 69 per la resistenza di alimentazione.
Come puoi vedere nel commento, il resistore di potenza è influenzato dal declassamento quando si supera i 70°.
Se viene generato un avviso, avviare TEMP_TO_REMOVE_ON_MAX_TEMP secondi di pausa per mettere a bassa temperatura.
Passaggio 21: test dell'amperaggio
Il risultato del test di amperaggio è buono.
Passaggio 22: pacchetto
Con il componente separato il pacchetto risulta semplice da realizzare.
In una scatola deve fare un rettangolo per LCD, i fori per i pulsanti e un barilotto femmina esterno per fornire tensione dall'alimentatore.
Il pulsante non necessita di resistenza pull-down perché lo aggiungo già a bordo.
Quando ho un po' di tempo lo creo e lo posto.
Consigliato:
Selezione di un motore passo-passo e driver per un progetto di schermatura automatizzata Arduino: 12 passaggi (con immagini)
Selezione di un motore passo-passo e un driver per un progetto di schermatura automatizzata Arduino: In questo Instructable, illustrerò i passaggi che ho seguito per selezionare un motore passo-passo e un driver per un progetto prototipo di schermatura automatizzata. Gli schermi ombreggianti sono i popolari ed economici modelli a manovella Coolaroo, e volevo sostituire t
Controllo della luminosità Controllo LED basato su PWM tramite pulsanti, Raspberry Pi e Scratch: 8 passaggi (con immagini)
Controllo della luminosità Controllo LED basato su PWM tramite pulsanti, Raspberry Pi e Scratch: stavo cercando di trovare un modo per spiegare come funzionava il PWM ai miei studenti, quindi mi sono posto il compito di provare a controllare la luminosità di un LED utilizzando 2 pulsanti - un pulsante aumenta la luminosità di un LED e l'altro lo attenua. Per programmare
Sostituzione della batteria dell'iPhone 6 Plus: Guida per sostituire la batteria interna: 12 passaggi (con immagini)
Sostituzione della batteria dell'iPhone 6 Plus: guida per sostituire la batteria interna: Ehi ragazzi, ho realizzato una guida per la sostituzione della batteria dell'iPhone 6 qualche tempo fa e sembrava aver aiutato molte persone, quindi ecco una guida per l'iPhone 6+. L'iPhone 6 e 6+ hanno essenzialmente la stessa struttura, tranne per l'ovvia differenza di dimensioni. c'è
Indicatore del livello della batteria fai-da-te/spegnimento automatico per batteria da 12 V: 5 passaggi (con immagini)
Indicatore del livello della batteria fai-da-te / spegnimento automatico per batteria da 12 V: fai-da-te … Abbiamo tutti attraversato la situazione in cui i nostri caricabatterie di fascia alta sono impegnati a caricare quelle batterie ai polimeri di litio, ma è ancora necessario caricare quella batteria al piombo da 12 V e l'unico caricabatterie che hai ottenuto è un cieco …. Sì un cieco in quanto
Casella di selezione AV: 4 passaggi (con immagini)
AV Selector Box: ho un lettore DVD, un video VHS e una videocamera mini-DV. Registro dal mini-DV al mio PC, sto anche registrando da VHS in digitale in modo simile. A volte porto l'audio-video dal DVD al PC. Ero solito alimentare il video composito alla grafica del mio PC