Voltímetro digital com display LCD

Voltímetro digital com display LCD

Neste post vamos ver como fazer um voltímetro digital com display lcd e um Arduino Uno. No caso apresentado será feito uma leitura de 0 a 5 V, que é o valor máximo suportado pela entrada analógica do microcontrolador.

No vídeo abaixo é mostrado o passo a passo de como ligar o Arduino ao display e o código fonte para. Foi utilizado o Tinkercad para simulação e testes do circuito.

Código

Abaixo é apresentado o código utilizado para leitura do AD.

// include the library code:
#include <LiquidCrystal.h>
 float read = 0;
 float volt = 0;
// initialize the library by associating any needed LCD interface pin
// with the arduino pin number it is connected to
const int rs = 13, en = 11, d4 = 7, d5 = 6, d6 = 5, d7 = 4;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

void setup() {
  // set up the LCD's number of columns and rows:
  lcd.begin(16, 2);
  // Print a message to the LCD.
  lcd.print("Voltimetro");
}

void loop() {
  read = analogRead(A0);
  volt = read * 0.00488759;
  
  // set the cursor to column 0, line 1
  // (note: line 1 is the second row, since counting begins with 0):
  lcd.setCursor(0, 1);
  // print the number of seconds since reset:
  lcd.print(volt);
   lcd.setCursor(4, 1);
  // print the number of seconds since reset:
  lcd.print("V");
}

Leitura de outras faixa de tensão

Uma dúvida que pode surgir é como fazer a leitura de tensões maiores do que 5 Volts?

Para isso devemos usar circuitos divisores de tensão e limitar a tensão de saída em 5 Volts ou um pouco abaixo de 5 Volts, de forma a não danificar a entrada do conversor do microcontrolador.

Abaixo é apresentado um exemplo de circuito divisor de tensão para ler tensões de 0 a 24 Volts.

Circuito divisor de tensão

Neste circuito é importante utilizar resistores de precisão para não afetar a leitura do AD, e também será necessário recalcular o valor de saída que será mostrado no display LCD.

Abaixo é mostrado a linha de código com a alteração para leitura de tensão até 24 V.

void loop() {
  read = analogRead(A0);
  volt = read * 0.02387;
  
  // set the cursor to column 0, line 1
  // (note: line 1 is the second row, since counting begins with 0):
  lcd.setCursor(0, 1);
  // print the number of seconds since reset:
  lcd.print(volt);
   lcd.setCursor(5, 1);
  // print the number of seconds since reset:
  lcd.print("V");
}

Para encontrar o valor da variável volt, basta dividir a o valor da tensão de 24 Volts por 1023. Para ajustar o valor correto, use um multímetro digital e compare o valor da leitura do multímetro com o valor mostrado no display do Arduino.

Neste caso é importante notar que quando aumentamos a tensão máxima de leitura, o valor da tensão por bit também aumenta. Para melhorar isso é necessário utilizar um conversor com uma resolução maior.

Simulação

Abaixo é possível simular o circuito:

Conclusão

Neste post vimos como usar o conversor AD do Arduino para fazer leitura de tensão, e vimos como ler tensões maiores usando circuito divisores de tensão.

Não foram explorados outros tópicos importantes sobre conversores AD, como a taxa de amostragem, que pode ser algo crítico dependendo do projeto.

Abaixo segue link para documentação do display LCD do Arduino e para calculadora onde é possível projetar circuito divisores de tensão com mais facilidade.

https://docs.arduino.cc/learn/electronics/lcd-displays