- Material Necessário
- Diagrama de circuito
- Gráfico de Barras LED
- Programa Arduino para monitoramento da tensão da bateria:
- Funcionamento do indicador de tensão da bateria
As baterias vêm com um determinado limite de voltagem e se a voltagem ultrapassar os limites prescritos durante o carregamento ou descarregamento, a vida útil da bateria será afetada ou reduzida. Sempre que usamos um projeto alimentado por bateria, às vezes precisamos verificar o nível de tensão da bateria, se ela precisa ser carregada ou substituída. Este circuito o ajudará a monitorar a tensão de sua bateria. Este indicador de tensão da bateria do Arduino indica o status da bateria por LEDs brilhantes em um gráfico de barras de LED de 10 segmentos de acordo com a tensão da bateria. Ele também mostra a tensão da bateria no LCD conectado ao Arduino.
Material Necessário
- Arduino UNO
- Gráfico de barras de LED de 10 segmentos
- LCD (16 * 2)
- Potenciômetro-10k
- Resistor (100ohm-10; 330ohm)
- Bateria (a ser testada)
- Fios de conexão
- Adaptador 12v para Arduino
Diagrama de circuito
Gráfico de Barras LED
O gráfico de barras LED vem em tamanho industrial padrão com baixo consumo de energia. A barra é categorizada por intensidade luminosa. O próprio produto permanece dentro da versão compatível com RoHS. Ele tem uma tensão direta de até 2,6 V. A dissipação de potência por segmento é de 65mW. A temperatura operacional do gráfico de barras LED é de -40 ℃ a 80 ℃. Existem muitas aplicações para o gráfico de barras de LED, como equipamentos de áudio, painéis de instrumentos e display de leitura digital.
Diagrama de Pin
Configuração de Pin
Programa Arduino para monitoramento da tensão da bateria:
O código Arduino completo e o vídeo de demonstração são fornecidos no final deste artigo. Aqui explicamos algumas partes importantes do código.
Aqui, estamos definindo a biblioteca LCD e especificando os pinos de LCD a serem usados com o Arduino. A entrada analógica é obtida do pino A4 para verificar a tensão da bateria. Definimos o valor como Float para obter a tensão até duas casas decimais.
#incluir
int ledPins = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11}; // uma matriz de números de pinos aos quais os LEDs são anexados int pinCount = 10; // o número de pinos (ou seja, o comprimento da matriz)
Configurando o LCD e os pinos analógicos (A0, A1, A2, A3) como pinos de SAÍDA.
void setup () {Serial.begin (9600); // abre a porta serial, define a taxa de dados para 9600 bps lcd.begin (16, 2); //// configura o número de colunas e linhas do LCD: pinMode (A0, OUTPUT); pinMode (A1, OUTPUT); pinMode (A2, OUTPUT); pinMode (A3, OUTPUT); pinMode (A4, INPUT); lcd.print ("Nível de tensão"); }
Aqui, criamos uma função para usar o gráfico de barras de LED de maneira simples, você pode até acender os LEDs programando-os um por um, mas o código fica demorado.
void LED_function (int stage) {for (int j = 2; j <= 11; j ++) {digitalWrite (j, LOW); } para (int i = 1, l = 2; i <= estágio; i ++, l ++) {digitalWrite (l, HIGH); // atraso (30); }} Nesta parte, lemos o valor da tensão usando o pino analógico. Então, estamos convertendo o valor analógico em um valor de tensão digital usando a fórmula de conversão analógica para digital e exibindo-o mais adiante no LCD.
// Fórmula de conversão para tensão analogValue = analogRead (A4); Serial.println (analogValue); atraso (1000); input_voltage = (analogValue * 5.0) / 1024.0; lcd.setCursor (0, 1); lcd.print ("Voltagem ="); lcd.print (input_voltage); Serial.println (input_voltage); atraso (100);
De acordo com o valor da tensão de entrada, fornecemos algumas condições para controlar os LEDs do gráfico de barras LED. A condição que você pode verificar abaixo no código:
if (tensão_entrada <0,50 && tensão_entrada> = 0,00) {digitalWrite (2, ALTO); atraso (30); digitalWrite (2, BAIXO); atraso (30); // quando a tensão é zero ou baixa, o primeiro LED irá indicar piscando} else 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_função (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_função (8);} else if (input_voltage <4,50 && input_voltage> = 4,00) {LED_função (9); } else if (input_voltage <5,00 && input_voltage> = 4,50) {LED_função (10); }}
Funcionamento do indicador de tensão da bateria
O indicador de tensão da bateria apenas lê o valor do pino analógico do Arduino e o converte em um valor digital usando a fórmula de conversão analógica para digital (ADC). O Arduino Uno ADC tem resolução de 10 bits (portanto, os valores inteiros de 0 - 2 ^ 10 = 1024 valores). Isso significa que ele mapeará tensões de entrada entre 0 e 5 volts em valores inteiros entre 0 e 1023. Portanto, se multiplicarmos anlogValue de entrada para (5/1024), obteremos o valor digital da tensão de entrada. Aprenda aqui como usar a entrada ADC no Arduino. Em seguida, o valor digital é usado para iluminar o gráfico de barras LED de acordo.
Além disso, verifique este monitor de nível de bateria simples sem nenhum microcontrolador