Sommario:
- Passaggio 1: Introduzione
- Passaggio 2: cosa misureremo e come
- Passaggio 3: circuito
- Passaggio 4: programmi
- Passaggio 5: conclusione
Video: Tester batteria Arduino con interfaccia utente WEB.: 5 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:01
Oggi, le apparecchiature elettroniche utilizzano batterie di backup per salvare lo stato in cui si trovava l'operazione quando l'apparecchiatura è stata spenta o quando, accidentalmente, l'apparecchiatura è stata spenta. L'utente, all'accensione, torna al punto in cui è rimasto e quindi non perde né tempo né l'ordine di esecuzione dei suoi compiti.
Passaggio 1: Introduzione
Sto realizzando un progetto per misurare lo stato di batterie con diverse capacità e tensioni utilizzando il metodo: Carico CC a due livelli. Questo metodo consiste nel prelevare una piccola corrente dalla batteria per 10 secondi e una corrente elevata per 3 secondi (norme IEC 61951-1:2005). Da questa misura si calcola la resistenza interna e quindi il suo stato.
La workstation sarà composta da più connettori, uno per ogni tipo di batteria, e da un PC. Per questo è necessaria un'interfaccia utente (UI). La parte più importante di questo tutorial è l'interfaccia utente perché in altre istruzioni sono stati descritti questi metodi di test della batteria. Ho provato Processing e ho ottenuto buoni risultati ma ho deciso di realizzare il mio software utilizzando un server web locale e sfruttare le potenzialità di HTML, CSS e php.
Si sa che è molto difficile inviare informazioni da Arduino a un PC Windows ma alla fine ci sono riuscito. Tutti i programmi sono inclusi in questo tutorial.
Passaggio 2: cosa misureremo e come
Resistenza interna.
Ogni vera batteria ha una resistenza interna. Assumiamo sempre che sia una sorgente di tensione ideale, vale a dire che possiamo ottenere molta corrente mantenendo costante la tensione nominale. Tuttavia, le dimensioni della batteria, le proprietà chimiche, l'età e la temperatura influiscono sulla quantità di corrente che una batteria è in grado di fornire. Di conseguenza, possiamo creare un modello migliore di una batteria con una sorgente di tensione ideale e un resistore in serie, come mostrato in Fig. 1.
Una batteria con bassa resistenza interna è in grado di fornire più corrente e si mantiene fredda, tuttavia, una batteria con alta resistenza provoca il riscaldamento della batteria e la caduta di tensione sotto carico, innescando uno spegnimento anticipato.
La resistenza interna può essere calcolata dalla relazione corrente-tensione data da due punti in una curva di scarica.
Il metodo di carico CC a due livelli offre un metodo alternativo applicando due carichi di scarica sequenziali di diverse correnti e durate temporali. La batteria si scarica prima a una corrente bassa (0,2 °C) per 10 secondi, seguita da una corrente più alta (2 °C) per 3 secondi (vedi Figura 2); la legge di Ohm calcola i valori di resistenza. La valutazione della firma di tensione nelle due condizioni di carico offre ulteriori informazioni sulla batteria, ma i valori sono strettamente resistivi e non rivelano lo stato di carica (SoC) o le stime della capacità. Il test di carico è il metodo preferito per le batterie che alimentano carichi CC.
Come detto in precedenza, ci sono molti metodi di misurazione delle batterie trattati in altre istruzioni e che possono essere implementati con Arduino, ma in questo caso, pur non offrendo una valutazione completa dello stato della batteria, fornisce valori che possono essere utilizzato per stimare il loro comportamento futuro.
La resistenza interna si trova utilizzando la relazione
In cui si
Ri = (V1 - V2) / (I2 - I1)
?1-La tensione viene misurata durante la bassa corrente e un istante di tempo più lungo;
?2-Tensione misurata durante l'alta corrente e l'istante di tempo più breve;
?1 - Corrente durante istanti di tempo più lunghi;
?2 - Corrente durante l'istante di tempo più breve.
Passaggio 3: circuito
Il circuito è una sorgente di corrente che assorbe 0.2C (in questo caso 4mA) e 2C (in questo caso 40mA) dalle batterie utilizzando un solo circuito controllato con il segnale PWM di Arduino. In questo modo è possibile misurare tutte le batterie di backup con C = 20 mAh, indipendentemente dalla loro tensione nell'intervallo da 1,2 V a 4,8 V e anche altre batterie di capacità diversa. Nella prima versione ho utilizzato due transistor ciascuno con un carico per drenare 4mA e l'altro 40mA. Quella variante non era appropriata per il futuro poiché volevano misurare altre batterie con capacità diverse e questo schema richiedeva un gran numero di resistori e transistor.
Il circuito con una sorgente di corrente è mostrato in Fig. 3. La frequenza del segnale PWM dal pin 5 della scheda Arduino è 940Hz, ecco perché, la Fc del filtro passa basso (LPF) è 8 Hz, significa che la prima armonica di Il segnale PWM (940Hz) sarà attenuato di 20dB perché i filtri RC forniscono 10dB di attenuazione per decennio (ogni 10 volte la Fc - l'attenuazione sarà di 10dB a 80Hz e 20dB a 800Hz). Il transistor IRFZ44n è sovradimensionato perché, in futuro, verranno testate batterie di capacità maggiore. L'LM58n, doppio amplificatore operazionale (OA), è l'interfaccia tra la scheda Arduino e l'IRFZ44n. L'LPF è stato inserito tra i 2 amplificatori operazionali per garantire un buon disaccoppiamento tra il microprocessore e il filtro. Nella Fig.3, il pin A1 di Arduino è collegato alla sorgente del transistor IRFZ44n per verificare la corrente assorbita dalla batteria.
Il circuito è composto da 2 parti, sotto la scheda Arduino UNO e sopra la sorgente di corrente, come mostrato nella foto successiva. Come puoi vedere, in questo circuito non ci sono né interruttori né pulsanti, sono nell'interfaccia utente del pc.
Questo circuito permette anche di misurare la capacità della batteria in mAh poiché ha una sorgente di corrente e la scheda Arduino ha un timer.
Passaggio 4: programmi
Come accennato in precedenza, l'applicazione ha, da un lato, un'interfaccia utente realizzata con HTML, CSS e, dall'altro, lo sketch di Arduino. L'interfaccia è estremamente semplice, per il momento, perché esegue solo la misura della resistenza interna, in futuro svolgerà più funzioni.
La prima pagina presenta un elenco a discesa, dal quale l'utente seleziona la tensione della batteria da misurare (Fig. 4). Il programma HTML della prima pagina, si chiama BatteryTesterInformation.html. Tutte le batterie hanno una capacità di 20 mAh.
Seconda pagina, BatteryTesterMeasurement.html.
Nella seconda pagina si collega la batteria al connettore indicato e si avvia (pulsante START) la misurazione. Per il momento questo led non è incluso perché ha un solo connettore ma, in futuro, avranno più connettori.
Una volta cliccato il pulsante START, inizia la comunicazione con la scheda Arduino. In questa stessa pagina, quando la scheda Arduino invia i risultati del test della batteria, viene mostrato il modulo Risultati della misurazione e i pulsanti START e CANCEL sono nascosti. Il pulsante BACK viene utilizzato per iniziare il test di un'altra batteria.
La funzione del prossimo programma, PhpConnect.php, è quella di connettersi con la scheda Arduino, trasmette e riceve dati dalle schede Arduino e dal server web.
Nota: la trasmissione da PC ad Arduino è veloce ma la trasmissione da Arduino a PC ha un ritardo di 6 secondi. Sto cercando di risolvere questa fastidiosa situazione. Per favore, qualsiasi aiuto è molto apprezzato.
E lo schizzo Arduino, BatteryTester.ino.
Quando la resistenza interna risultante è 2 volte maggiore di quella iniziale (batteria nuova), la batteria è difettosa. Vale a dire, se la batteria in prova ha 10 Ohm o più e, per specifica, questo tipo di batteria dovrebbe avere 5 Ohm, quella batteria è difettosa.
Questa interfaccia utente è stata testata con FireFox e Google senza problemi. Ho installato xampp e wampp e funziona bene in entrambi.
Passaggio 5: conclusione
Questo tipo di sviluppo tramite interfaccia utente su PC presenta numerosi vantaggi perché consente all'utente una più facile comprensione del lavoro che sta svolgendo oltre ad evitare l'utilizzo di componenti costosi che richiedono un'interazione meccanica, che li rende suscettibili di rotture.
Il prossimo passo di questo sviluppo è aggiungere connettori e modificare alcune parti del circuito per testare altre batterie e aggiungere anche un caricabatterie. Successivamente, il PCB verrà progettato e ordinato.
L'interfaccia utente avrà più modifiche per includere la pagina del caricabatterie
Per favore, qualsiasi idea, miglioramento o correzione non esitate a commentare per migliorare questo lavoro. D'altra parte, se hai domande, chiedimele, ti risponderò il più velocemente possibile.
Consigliato:
Convertitore boost basato su Esp8266 con un'incredibile interfaccia utente Blynk con regolatore di feedback: 6 passaggi
Convertitore boost basato su Esp8266 con un'incredibile interfaccia utente Blynk con regolatore di feedback: in questo progetto ti mostrerò un modo efficiente e comune come aumentare le tensioni CC. Ti mostrerò quanto può essere facile costruire un convertitore boost con l'aiuto di un Nodemcu. Costruiamolo. Include anche un voltmetro su schermo e un feedback
Analizzatore logico con interfaccia utente Android: 7 passaggi
Analizzatore logico con interfaccia utente Android: il mondo è già invaso da così tanti analizzatori logici. Nel mio hobby di elettronica, ne avevo bisogno per la risoluzione dei problemi e il debug. Ho cercato su internet ma non riesco a trovare quello che cerco. Quindi eccomi qui, presentando…"YET Another Lo
Interfaccia utente facile da implementare -- Display OLED con joystick e pulsanti: 6 passaggi
Interfaccia utente facile da implementare || Display OLED con joystick e pulsanti: questo modulo ha un display OLED con due pulsanti, joystick a 5 direzioni e accelerometro a 3 assi. Questo è utile per impostare l'interfaccia utente per un progetto. Ehi, che succede ragazzi? Akarsh qui da CETech. Oggi daremo un'occhiata a un modulo all-in-one che
ARDUINO MENU DESIGN Con OLED-UI (INTERFACCIA UTENTE): 4 passaggi
ARDUINO MENU DESIGN Con OLED-UI (INTERFACCIA UTENTE): Ciao a tutti! In questo tutorial proverò a spiegare come creare ARDUINO MENU DESIGN utilizzando lo schermo OLED i2c. È anche conosciuto come UI (interfaccia utente). È stato utilizzato per molti progetti ma deve avere familiarità con te dalle stampanti 3D :) Qui anche il video
Interfaccia utente Android (remotexy) per controllare il servomotore utilizzando Arduino e Bluetooth: 7 passaggi (con immagini)
Interfaccia utente Android (remotexy) per controllare il servomotore utilizzando Arduino e Bluetooth: In questo Instructable ti fornirò un rapido passaggio per creare un'interfaccia utente Android utilizzando Remotexy Interface Maker per controllare il servomotore collegato ad Arduino Mega tramite Bluetooth. Questo video mostra come l'interfaccia utente controllerà la velocità e la posizione del servomotore