- Materiale richiesto
- Schema elettrico
- Grafico a barre a LED
- Programma Arduino per il monitoraggio della tensione della batteria:
- Funzionamento dell'indicatore di tensione della batteria
Le batterie hanno un certo limite di tensione e se la tensione supera i limiti prescritti durante la carica o la scarica, la durata della batteria ne risente o si riduce. Ogni volta che utilizziamo un progetto alimentato a batteria, a volte dobbiamo controllare il livello di tensione della batteria, se è necessario caricarla o sostituirla. Questo circuito ti aiuterà a monitorare la tensione della batteria. Questo indicatore di tensione della batteria Arduino indica lo stato della batteria mediante LED luminosi su un grafico a barre LED a 10 segmenti in base alla tensione della batteria. Mostra anche la tensione della batteria sul display LCD collegato ad Arduino.
Materiale richiesto
- Arduino UNO
- Grafico a barre a LED a 10 segmenti
- LCD (16 * 2)
- Potenziometro-10k
- Resistenza (100ohm-10; 330ohm)
- Batteria (da testare)
- Cavi di collegamento
- Adattatore 12v per Arduino
Schema elettrico
Grafico a barre a LED
Il grafico a barre LED è disponibile in dimensioni standard industriali con un basso consumo energetico. La barra è classificata per intensità luminosa. Il prodotto stesso rimane nella versione conforme alla direttiva RoHS. Ha una tensione diretta fino a 2,6 V. La dissipazione di potenza per segmento è di 65 mW. La temperatura di esercizio del grafico a barre LED è compresa tra -40 ℃ e 80 ℃. Esistono molte applicazioni per il grafico a barre a LED come apparecchiature audio, pannelli strumenti e display di lettura digitale.
Diagramma dei pin
Configurazione dei pin
Programma Arduino per il monitoraggio della tensione della batteria:
Il codice Arduino completo e il video dimostrativo sono forniti alla fine di questo articolo. Qui abbiamo spiegato alcune parti importanti del codice.
Qui stiamo definendo la libreria LCD e specificando i pin dell'LCD da utilizzare con Arduino. L'ingresso analogico è preso dal pin A4 per il controllo della tensione della batteria. Abbiamo impostato il valore come Float per ottenere la tensione fino a due decimali.
#includere
int ledPins = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11}; // un array di numeri di pin a cui sono collegati i LED int pinCount = 10; // il numero di pin (cioè la lunghezza dell'array)
Impostazione dell'LCD e dei pin analogici (A0, A1, A2, A3) come pin OUTPUT.
void setup () {Serial.begin (9600); // apre la porta seriale, imposta la velocità dei dati a 9600 bps lcd.begin (16, 2); //// impostare il numero di colonne e righe dell'LCD: pinMode (A0, OUTPUT); pinMode (A1, OUTPUT); pinMode (A2, OUTPUT); pinMode (A3, OUTPUT); pinMode (A4, INPUT); lcd.print ("Livello di tensione"); }
Qui creiamo una funzione per utilizzare il grafico a barre LED da utilizzare in modo semplice, puoi persino illuminare i LED programmandoli uno per uno, ma il codice diventa lungo.
void LED_function (int stage) {for (int j = 2; j <= 11; j ++) {digitalWrite (j, LOW); } for (int i = 1, l = 2; i <= stage; i ++, l ++) {digitalWrite (l, HIGH); // ritardo (30); }} In questa parte, abbiamo letto il valore della tensione utilizzando il pin analogico. Quindi, convertiamo il valore analogico in un valore di tensione digitale utilizzando la formula di conversione da analogico a digitale e visualizzandola ulteriormente sull'LCD.
// Formula di conversione per la tensione analogValue = analogRead (A4); Serial.println (analogValue); ritardo (1000); input_voltage = (analogValue * 5.0) / 1024.0; lcd.setCursor (0, 1); lcd.print ("Voltage ="); lcd.print (input_voltage); Serial.println (input_voltage); ritardo (100);
In base al valore della tensione di ingresso abbiamo dato delle condizioni per controllare i LED del grafico a barre LED. La condizione è possibile verificare di seguito nel codice:
if (input_voltage <0.50 && input_voltage> = 0.00) {digitalWrite (2, HIGH); ritardo (30); digitalWrite (2, LOW); ritardo (30); // quando la tensione è zero o bassa il 1 ° LED indicherà lampeggiando} altrimenti if (input_voltage <1.00 && input_voltage> = 0.50) {LED_function (2); } else if (input_voltage <1.50 && input_voltage> = 1.00) {LED_function (3); } else if (input_voltage <2.00 && input_voltage> = 1.50) {LED_function (4); } else if (input_voltage <2.50 && input_voltage> = 2.00) {LED_function (5); } else if (input_voltage <3.00 && input_voltage> = 2.50) {LED_function (6); } else if (input_voltage <3.50 && input_voltage> = 3.00) {LED_function (7); } else if (input_voltage <4.00 && input_voltage> = 3.50) {LED_function (8);} else if (input_voltage <4.50 && input_voltage> = 4.00) {LED_function (9); } else if (input_voltage <5.00 && input_voltage> = 4.50) {LED_function (10); }}
Funzionamento dell'indicatore di tensione della batteria
Indicatore di tensione della batteria basta leggere il valore dal pin analogico di Arduino e convertirlo in un valore digitale utilizzando la formula di conversione da analogico a digitale (ADC). L' ADC Arduino Uno ha una risoluzione di 10 bit (quindi i valori interi da 0 - 2 ^ 10 = 1024 valori). Ciò significa che mapperà le tensioni di ingresso tra 0 e 5 volt in valori interi compresi tra 0 e 1023. Quindi se moltiplichiamo l'ingresso anlogValue a (5/1024), otteniamo il valore digitale della tensione di ingresso. Scopri qui come utilizzare l'input ADC in Arduino. Quindi il valore digitale viene utilizzato per illuminare di conseguenza il grafico a barre LED.
Inoltre, controlla questo semplice monitor del livello della batteria senza alcun microcontrollore