/
/
Voltímetro e Medidor Gráfico de Bateria com Arduino

Voltímetro e Medidor Gráfico de Bateria com Arduino

Sumário

Baixe agora a apostila Arduino Iniciante e comece seus projetos

Compartilhe seu conhecimento e receba em dinheiro ou produtos.

capa-blog-voltimetro_e_medidor

Introdução

No post de hoje, iremos fazer um Voltímetro com medidor de nível bateria! Para seu funcionamento, o projeto utiliza os conceitos de um divisor de tensão. Acompanhe a leitura:

O que é um Voltímetro?

Um voltímetro é um instrumento que mede a diferença de potencial (DDP) entre dois pontos distintos de um circuito elétrico. A DDP é o que nós chamamos comumente de Tensão.
Voltímetro analógico
Nesse momento você pode estar se perguntando "mas, e o multímetro? Também não mede tensão?" Sim! Mas com uma pequena diferença: o multímetro é um equipamento capaz de medir diversas grandezas, como corrente, resistência, e até mesmo capacitância (em alguns modelos), além, é claro, da tensão. Quando um equipamento mede apenas uma grandeza, como a tensão, por exemplo, damos o nome de voltímetro (para aqueles que medem apenas corrente ou resistência, damos o nome de amperímetro e ohmímetro, respectivamente).
Fonte: mundoeducacao.uol.com.br

O que é um Divisor de Tensão?

Em um circuito elétrico, um divisor de tensão é um circuito baseado em dois resistores em série, afim de obter um nível específico da tensão em que o circuito é alimentado (Tensão de entrada). Para isso, temos essa fórmula: Diagrama de um circuito divisor de tensão:
Fonte: khanacademy

Como fazer o cálculo dos resistores e da tensão máxima de entrada

Para fazer o cálculo dos resistores que iremos utilizar, basta utilizar a fórmula apresentada acima. *Lembre-se que Vsaída pode ser no máximo 5 volts, pois é o máximo de tensão que o Arduino pode receber como entrada, sem danificar a placa. Nesse caso, utilizamos um resistor de 1kOhms e um de 330Ohms. Ficando assim: Você também pode manipular os valores de resistores para utilizar faixas maiores de tensão, obedecendo sempre a tensão máxima de saída de 5 volts (qualquer valor acima disso poderá danificar o Arduino permanentemente).  

Diagrama do circuito e código

Diagrama esquemático:

Código utilizado:

Importante: como estamos utilizando um display OLED 128x64, será preciso incluir a biblioteca "Adafruit SSD1306". Você a encontra no gerenciador de bibliotecas da IDE.
//inclui a biblioteca necessária
#include <Adafruit_SSD1306.h>

//define o tamanho, o endereço e o tipo de display utilizado
#define SCREEN_WIDTH 128 
#define SCREEN_HEIGHT 64 
#define OLED_RESET -1 
#define SCREEN_ADDRESS 0x3C 
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);

// variáveis para o controle do projeto
#define vmax   20.0    // máximo de tensão que pode ser colocada no circuito
#define Vbat 9       //tensao que a bateria deve ter quando estiver totalmente carregada  
int x = 0;

float     tensao = 0.0;   //armazena a tensão lida
 
void setup()
{
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // declara o endereço do display
  display.clearDisplay(); //limpa o display
} 


void loop()
{
  
  tensao = (analogRead(A1)*vmax)/1023.0; //define o valor da variavel tensao
  
  //desenha no display todos os valores necessários
  display.clearDisplay();
  display.fillRect(0, 0, 128, 15, WHITE); 
  display.drawLine(64, 15, 64, 64, WHITE);
  display.drawLine(64, 0, 64, 15, BLACK);
  display.setTextSize(1);
  display.setTextColor(BLACK,WHITE); 
  display.setCursor(8,4); 
  display.print("Tensao");
  display.setTextSize(1);
  display.setTextColor(BLACK,WHITE); 
  display.setCursor(70,4); 
  display.print("Nivel");
  display.setTextSize(2); 
  display.setTextColor(1); 
  display.setCursor(2,30); 
  display.print(tensao); // escreve no display a tensão lida pelo arduino
  display.setTextSize(2); 
  display.setTextColor(1); 
  display.setCursor(51,30); 
  display.print("V");
  display.setTextSize(2); 
  display.setTextColor(1); 
  display.setCursor(70,30); 
  display.print(x);       // escreve no display a porcentagem da bateria de acordo com a tensão lida
  display.setTextSize(2); 
  display.setTextColor(1); 
  display.setCursor(100,30); 
  display.print("%");
  display.display();
  
  delay(800);

  x = 100*tensao/Vbat; // calcula a porcentagem da bateria de acordo com a tensão lida e com a tensão que a bateria deve ter quando carregada
  
}

Explicações do código

#define Vbat 9
Nessa linha, é muito importante que você altere o valor "9", pelo valor da bateria que você irá medir. Por exemplo, como foi utilizada uma bateria de 9 volts, os trechos do código onde "vbat" é usado, também recebem o valor 9. Se fosse utilizada uma pilha de 1,5 volts, seria necessário mudar o valor para 1.5 (sempre utilizando ponto ao invés de vírgula).
tensao = (analogRead(A1)*vmax)/1023.0;
Aqui, a variável "tensao" é dada pela leitura da porta analógica A1, e assim é multiplicada pelo valor da Tensão de entrada (informada acima). Esse valor deve ser dividido por 1023, que corresponde ao valor máximo mapeado pelo Arduino nas portas analógicas.
x = 100*tensao/batcar;
X é o valor em % do nível da bateria. Ele é calculado utilizando a seguinte regra de 3:  

Sobre o Autor


Arthur Almeida

Estudante do Ensino médio, aficionado por criar novos projetos eletrônicos e automações, principalmente com o Arduino. No meu tempo livre eu gosto de pesquisar sobre novas tecnologias e tento criar projetos com elas.

No post de hoje, iremos fazer um Voltímetro com medidor de nível de bateria! Venha conferir!

Precisa dos componentes para este projeto?

Encontre tudo na Loja Eletrogate com frete grátis para compras acima de R$ 200

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *