Escolar Documentos
Profissional Documentos
Cultura Documentos
Fechar Pub
f
j > Projetos > Voltímetro, amperímetro e ohmímetro c/ Arduino
Voltímetro, amperímetro e
ohmímetro c/ Arduino
Medir a tensão e a corrente são processos essenciais para se extrair informações de
sensores. Medir tensão pode ser trivial, mas medir a corrente e a resistência não é tão
óbvio assim. Portanto, neste post, vamos aprender uma forma de ler valores de
tensão, corrente e resistência utilizando o Arduino.
Voltímetro CC
Medir a tensão (corrente contínua), conforme disse no início do post, é bem tranquilo.
Tanto é que já vimos em vários posts do site. Entretanto, vou dar uma rápida explicada
no assunto.
Informações importantes
Referencial
Para medir a tensão em algum ponto do circuito basta ligá-lo a algum pino analógico.
Mas aqui cabem algumas ressalvas: a tensão é sempre medida entre dois pontos e,
1 of 15 04/04/2023, 10:50
Voltímetro, amperímetro e ohmímetro c/ Arduino - Mundo Projetado https://mundoprojetado.com.br/voltimetro-amperimetro-e-ohmimetro-c...
quando ligamos no pino A0 por exemplo, estamos ligando apenas um ponto. Neste
caso, estamos medindo a tensão em relação ao nosso terra (GND), que já está ligado
dentro do microcontrolador.
Então, caso o circuito que estamos querendo medir não tenha nenhuma ligação com o
Arduino, não será possível fazer a leitura da tensão. Suponha que o circuito externo
seja um LED ligado a uma bateria e o Arduino esteja sendo alimentado pela USB do
computador. Para medir alguma tensão deste circuito externo, o GND do Arduino,
deve estar ligado ao negativo da bateria.
Conversão
Em relação à conversão analógica-digital do Arduino, é importante saber que ele mede
de 0 a 5v, e que o conversor é de 10bits. Isso quer dizer que os valores medidos serão
representados entre 0 e 1023 (valor máximo com 10 bits) incluindo os dois limites. Ou
seja, 0 representará 0 volts e 1023 representará 5 volts.
Portanto, para encontrar o valor lido em volts, podemos aplicar uma simples regra de
3:
1023 – 5 volts
Logo:
analogReference(modo)
Dentre os modos possíveis para o Arduino UNO, de acordo com o site do Arduino,
2 of 15 04/04/2023, 10:50
Voltímetro, amperímetro e ohmímetro c/ Arduino - Mundo Projetado https://mundoprojetado.com.br/voltimetro-amperimetro-e-ohmimetro-c...
estão:
Acima de 5v
Para medir tensões acima de 5v, basta criar um divisor de tensão para que a tensão
em cima do Arduino seja reduzida. A imagem abaixo mostra um exemplo de divisor de
tensão.
O valor dos resistores do divisor de tensão vão depender do valor máximo de leitura.
Por exemplo, se o valor máximo for 10 volts, então um divisor de 2/1 será adequado.
Não mostrarei em detalhes esta parte, pois, com o post sobre divisor de tensão, você
deverá ser capaz de entender o necessário.
Circuito de exemplo
Para mostrar a parte da programação, considere o circuito e o esquemático abaixo:
3 of 15 04/04/2023, 10:50
Voltímetro, amperímetro e ohmímetro c/ Arduino - Mundo Projetado https://mundoprojetado.com.br/voltimetro-amperimetro-e-ohmimetro-c...
Programação
A programação é bem simples, pois basta utilizar o comando de leitura analógica do
Arduino, que já abordei em outro post. Leia os comentários para entender o código
por completo.
1 void setup() {
2 // O comando abaixo é desnecessário caso o modo seja o DEFAULT
3 analogReference(DEFAULT);
4
5 // Cria a comunicação serial para exibir os valores no monitor serial
6 Serial.begin(9600);
7 }
8
9 void loop() {
10 // Mede o valor de 0 a 1023 e converte para tensão
11 �oat tensao = analogRead(A0);
12 tensao = tensao*5/1023;
13
14 // Exibe o valor lido
15 Serial.println(tensao);
16
17 // Cria um pequeno atraso entre cada medição
18 delay(1000);
19 }
Resultados
4 of 15 04/04/2023, 10:50
Voltímetro, amperímetro e ohmímetro c/ Arduino - Mundo Projetado https://mundoprojetado.com.br/voltimetro-amperimetro-e-ohmimetro-c...
Quando rodei o programa, o valor lido �cou oscilando entre 2,58 e 2,62. Como o valor
lido é a queda de tensão em cima do resistor, basta considerar que a tensão em cima
do LED é 5 menos esse valor. Considerando o valor médio como 2,6:
5-2,60 = 2,4
Pronto, com a lógica mostrada neste tópico já podemos criar um voltímetro com
algumas limitações.
Ohmímetro
Lógica de funcionamento
Medir a resistência pode ser útil em situações onde as faixas de cores de um resistor
são confusas ou então quando você quer saber a resistência de um outro componente
(potenciômetro por exemplo). Em outro post, já cheguei medir a resistência de um
LDR com o Arduino.
Para este caso, nos também mediremos a tensão, mas em um esquema um pouco
diferente. Com a ajuda de um divisor de tensão com uma das resistências conhecidas,
é possível saber qual o valor da outra resistência a partir da tensão de saída. Para
exempli�car como, considere um divisor de tensão típico como o da imagem abaixo:
5 of 15 04/04/2023, 10:50
Voltímetro, amperímetro e ohmímetro c/ Arduino - Mundo Projetado https://mundoprojetado.com.br/voltimetro-amperimetro-e-ohmimetro-c...
Portanto, se sabemos quais são os valores de Vin, R2 e Vout, podemos determinar R1.
Manipulando a equação, chegamos ao seguinte resultado:
Circuito de exemplo
Para achar o valor da resistência desejada, vamos considerar Vin como 5v, já que
iremos alimentar o circuito utilizando o Arduino. O valor de R2 pode ser qualquer um,
portanto usarei um resistor de 220Ω. O circuito resultante está representado abaixo:
Dessa forma, a fórmula que terei que usar para encontrar V1 será:
Lembrando que Vlido é a tensão, então é necessário converter o valor lido do Arduino
para tensão, conforme visto no tópico do voltímetro.
Programação
Basta ler os comentários para entender o código, pois ele é bem simples.
1 void setup() {
2 // Cria a comunicação serial para exibir os valores no monitor serial
3 Serial.begin(9600);
6 of 15 04/04/2023, 10:50
Voltímetro, amperímetro e ohmímetro c/ Arduino - Mundo Projetado https://mundoprojetado.com.br/voltimetro-amperimetro-e-ohmimetro-c...
4 }
5
6 void loop() {
7 // Mede o valor de 0 a 1023 e converte para tensão
8 // o (�oat) faz um coerção, pois o comando analogRead retorna um numero inteiro e a
9 �oat tensao = (�oat)analogRead(A0)*5/1023;
10
11 // Converte a tensao para resistencia
12 �oat R1 = (220*5 - tensao*220)/tensao;
13
14 // Exibe o valor de R1
15 Serial.println(R1);
16
17 // Cria um pequeno atraso entre cada medição
18 delay(1000);
19 }
Resultados
Medindo R1 com um testador que tenho, o valor real do resistor é de 819,7Ω.
Entretanto, ao rodar o programa, o valor indicado foi um pouco diferente deste.
Obtive valores entre 846,64 e 862,02. Ou seja, dependendo da aplicação, este método
não é muito adequado.
Pronto, com a lógica mostrada neste tópico já podemos criar um ohmímetro com
algumas limitações.
Amperímetro
Lógica de funcionamento
Existem alguns tipos de sensores que transformam uma grandeza física em corrente
elétrica de 4 a 20mA normalmente. Portanto, pode ser bem útil medir valores de
corrente (além de outros casos).
7 of 15 04/04/2023, 10:50
Voltímetro, amperímetro e ohmímetro c/ Arduino - Mundo Projetado https://mundoprojetado.com.br/voltimetro-amperimetro-e-ohmimetro-c...
Além disso, ele precisa ter uma baixa resistência para que ele não faça in�uência
alguma no circuito o qual ele está sendo ligado. Pois, com um valor relativamente
grande de resistência, ele pode impedir signi�cativamente o �uxo de corrente do
circuito.
Dependendo da aplicação, este pequeno valor pode atrapalhar o circuito, então pode
não ser recomendável utilizar este método para medir corrente.
Circuito de exemplo
Para exempli�car, vamos considerar o mesmo circuito do voltímetro, com o acréscimo
do �o de 0,65Ω:
8 of 15 04/04/2023, 10:50
Voltímetro, amperímetro e ohmímetro c/ Arduino - Mundo Projetado https://mundoprojetado.com.br/voltimetro-amperimetro-e-ohmimetro-c...
Para evitar imprecisão, usei o �o de 0,65Ω para ligar o resistor de 220Ω direto para o
GND. Fiz isso para evitar usar outro �o, e assim evitar acréscimo de resistência. Então,
no circuito acima, considere o �o de 0,65Ω como sendo toda a ligação da parte de
baixo (R1 até GND).
Programação
Considerando um caso máximo, em que a corrente é de 1A, a tensão máxima no �o
será abaixo de 1v (V=1*0,65 = 0,65v). Portanto, posso alterar a tensão de referência do
conversor analógico-digital para 1.1v, utilizando o comando mostrado no tópico do
voltímetro (analogReference).
E basta usar a tensão acima para achar o valor da corrente. A programação é bem
tranquila, só com a leitura dos comentários já é possível entender como escrevi a
lógica abordada acima.
1 void setup() {
2 // Cria a comunicação serial para exibir os valores no monitor serial
3 Serial.begin(9600);
4
5 // Altera a tensão de referência para 1.1v
6 analogReference(INTERNAL);
7 }
8
9 void loop() {
10 // Mede o valor de 0 a 1023 e converte para tensão
11 // o (�oat) faz um coerção, pois o comando analogRead retorna um numero inteiro e a tensã
12 �oat tensao = (�oat)analogRead(A0)*1.1/1023;
13
14 // Encontra a corrente a partir da tensao
15 �oat I = tensao/0.65;
9 of 15 04/04/2023, 10:50
Voltímetro, amperímetro e ohmímetro c/ Arduino - Mundo Projetado https://mundoprojetado.com.br/voltimetro-amperimetro-e-ohmimetro-c...
16
17 // Exibe o valor da corrente em mA, por isso multiplico por 1000
Resultados
Medindo a corrente do circuito com um multímetro, o valor obtido foi de 10,7mA. E,
medindo pelo programa (ao mesmo tempo que o multímetro), o resultado foi de
aproximadamente 8,2mA. Ou seja, é um valor próximo, mas totalmente inadequado
para medir sensores que indicam as grandezas em faixas de 4 a 20mA. Pois, nestes
casos é necessário ter uma precisão maior para obter os dados dos sensores
corretamente.
Medindo a corrente do circuito do ohmímetro (um resistor de 820 e outro de 220) deu
um valor de 4,96mA que está com uma pequena diferença do valor calculado (4,8mA).
Portanto, os resultados são até bem impressionantes.
Pronto, com a lógica mostrada neste tópico já podemos criar um amperímetro com
algumas limitações.
Comentários do post
Faça um comentário:
10 of 15 04/04/2023, 10:50
Voltímetro, amperímetro e ohmímetro c/ Arduino - Mundo Projetado https://mundoprojetado.com.br/voltimetro-amperimetro-e-ohmimetro-c...
COMENTÁRIO *
NOME *
E-MAIL *
Publicar comentário
Renan Gutierrez
27 de fevereiro de 2019 às 13:26
Responder
Fábio
27 de fevereiro de 2019 às 16:16
Responder
11 of 15 04/04/2023, 10:50
Voltímetro, amperímetro e ohmímetro c/ Arduino - Mundo Projetado https://mundoprojetado.com.br/voltimetro-amperimetro-e-ohmimetro-c...
Mario
26 de outubro de 2019 às 10:31
Responder
Fábio
26 de outubro de 2019 às 13:24
Responder
12 of 15 04/04/2023, 10:50
Voltímetro, amperímetro e ohmímetro c/ Arduino - Mundo Projetado https://mundoprojetado.com.br/voltimetro-amperimetro-e-ohmimetro-c...
Responder
Fábio Guimarães
27 de fevereiro de 2021 às 13:50
Responder
Marinho
16 de janeiro de 2021 às 16:25
Responder
13 of 15 04/04/2023, 10:50
Voltímetro, amperímetro e ohmímetro c/ Arduino - Mundo Projetado https://mundoprojetado.com.br/voltimetro-amperimetro-e-ohmimetro-c...
Fábio Guimarães
16 de janeiro de 2021 às 16:38
Responder
Jonathan Leite
6 de maio de 2021 às 15:17
Excelente poster!!!
Não é possível apresentar uma tensão negativa,
certo?
Responder
Fábio Guimarães
Pesquisar …
12 de maio de 2021 às 13:12
Responder
Responder
14 of 15 04/04/2023, 10:50
Voltímetro, amperímetro e ohmímetro c/ Arduino - Mundo Projetado https://mundoprojetado.com.br/voltimetro-amperimetro-e-ohmimetro-c...
Fábio Guimarães
30 de julho de 2022 às 19:54
Responder
Acompanhe no Facebook
15 of 15 04/04/2023, 10:50