Monitorar Diagnosticar e Projetar
Melhorar a precisão da entrada analógica para o arduino e ESP8266 é um tema tratado com certa frequência na Internet.
Neste artigo, abordaremos alguns pontos importantes que farão a diferença em seu projeto.
Será que apenas 10 bits são suficientes ?
Para responder melhor, primeiro é necessário entender o objetivo de nosso projeto.
O que desejamos construir com nosso arduino e / ou ESP8266?
Responder claramente a esta pergunta tem relação direta com o custo e a complexidade do projeto.
Na maioria dos casos, buscamos monitorar algo e não estamos preocupados em desenvolver um sistema de medição de alta precisão.
Monitorar é entender o comportamento de um sistema através de suas métricas básicas “baseline”.
A precisão é mais importante para diagnosticar e projetar.
Todos sabemos que bons instrumentos de medição são caros.
Estes instrumentos compartilham algumas das características listadas abaixo :
- Fonte de alimentação de qualidade – precisa e estável
- Componentes discretos com boa qualidade e precisão : capacitores, resitores e indutores
- Circuitos para compensão da temperatura
- Planejamento da disposição dos componentes e contorno das trilhas da placa de circuito impresso.
- Filtros de faixa, conforme a frequência a ser medida
- Conectores de baixa resistência
- Cabos e pontas de prova com resistência, capacitância e indutância adequadas para medição a ser feita.
- Chaves comutadoras de qualidade
- Isolação quanto a ruídos externos que possam afetar a medição
Como pode ser visto, não é só o ADC ( Analog to Digital Converter – Conversor Analógico Digital ), que torna nosso sistema preciso.
Como melhorar a precisão analógica?
Pouco adianta utilizamos um ADC de 16 bits, se nossa fonte de alimentação tem ruído, ou não entrega uma tensão estável para nosso circuito.
Existe ainda o condicionamento do sinal a ser medido e não podemos esquecer da relação Sinal Ruído, que pode comprometer nossa medição.
O condicionamento é quando conseguimos que o sinal em medição tenha uma amplitude equivalente a entrada analógica e o mais livre possível de ruídos.
Outra forma de condicionar o sinal, é quando utilizamos apenas a faixa de nosso interesse, desprezando a amplititude total possível para a entrada analógica.
Este caso de condionamento por faixa é conhecido como Modo Diferencial.
Vejamos alguns tipos mais comuns de módulos :
Módulo | Faixa da Tensão analógica |
arduino – UNO ( 5V ) | 0 – 5V |
arduino – Pró Mini ( 5V ) | 0 – 5V |
arduino – Pró Mini ( 3V3 ) | 0 – 3.3V |
ESP8266 | 0 – 1V |
NodeMCU | 0 – 3.3V |
De fato, para um ADC de 10 bits, a entrada analógica mostra valores inteiros entre 0 e 1023.
Duas observações são fundamentais para entrada analógica :
- Não suporta valores negativos, podendo danificar o controlador
- Só pode ser usada para medir tensão
Exemplo : para medir corrente, é necessário transformar os níveis de corrente em níveis de tensão.
Atenção : alguns MCU utilizam a tensão de alimentação como tensão de referência analógica, enquanto outros podem ter tensão de referẽncia externa.
A família arduino baseada em ATmega328 pode utilizar tensão de referência externa, que pode ser diferente da tensão de alimentação, mas nunca maior.
O ESP8266 sempre utiliza a tensão de alimentação para referência analógica.
Em qualquer dos caso, uma fonte de alimentação de qualidade é fundamental para precisão de medição analógica.
Observação : não será raro, percebermos que nosso projeto apresenta comportamento diferente quando alimentado pela USB de um computador e posteriormente por uma fonte externa.
Como a tensão de referência e o ADC interferem na precisão
Faixa analógica ( Volts ) | Fator de divisão para ADC de 10 bits | Precisão em mV |
0 – 5 | 1024 | 4,9 |
0 – 3V3 | 1024 | 3,2 |
0 – 1 | 1024 | 0,1 |
Através da tabela 2, podemos verificar que a tensão de referência tem influência direta na precisão medida pela entrada analógica.
Isto precisa ser levado em consideração em nosso sketch.
Utilizando a tablea 2, podemos verificar que um sistema que opere entre 0 a 5V na entrada analógica, terá 1024 passos de 4,9 mV cada e para 3V3, 1024 passos de 3,2 mV.
Enquanto a quantidade de passos é definida pelo precisão do ADC, o valor de cada passo, depende da tensão de referência usada.
Faixa analógica ( Volts ) | Fator de divisão para ADC de 12 bits | Precisão em mVolts |
0 – 5 | 4096 | 1,2 |
0 – 3V3 | 4096 | 0,8 |
0 – 1 | 4096 | 0,02 |
Supondo que desejamos medir uma tensão que vai de 0 a 100 V, teríamos :
Tensão de entrada | Valor na entrada analógica para ADC de 10 bits |
0 Volts | 0 |
10 Volts | 102 ~103 |
20 Volts | 204 ~ 205 |
25 Volts | 256 |
50 | 512 |
75 | 768 |
100 | 1023 |
Tensão de entrada | Valor na entrada analógica para ADC de 12 bits |
0 Volts | 0 |
10 Volts | 409 ~410 |
20 Volts | 819 ~ 820 |
25 Volts | 1024 |
50 | 2048 |
75 | 3072 |
100 | 4096 |
Divisor Resistivo de Tensão
Quando medimos tensão utilizando a entrada analógica, precisamos ter cuidado para :
- A tensão não ultrapassar o nível máximo da entrada analógica
- A tensão não pode ser negativa
A tabela 1 mostra os níveis máximos para alguns controladores.
Para evitar que o sinal fique negativo, existem técnicas para posicionar a leitura em zero, no centro da faixa de tensão da entrada analógica.
Isto já foi abrodado em :
arduino – Monitor para energia solar e eólica – Parte 2
Quando a tensão a ser medida é maior do que a permitida pela entrada analógica. utilizamos um divisor resisitivo de tensão.


Existem sistemas para cálculo online dos resistores e das tensões.
Rapidamente você notará que os valores dos resistores nem sempre estão dentro dos valores encontrados no mercado, ou que você tenha para usar.
Uma opção são os resistores variáveis “trimpots”, de preferência multivoltas, para facilitar o ajuste.
Algumas dicas importantes :
- No divisor resistivo, sempre use uma combinação de valores que resulte em um Vout abaixo da tensão máxima da entrada analógica.
- Não utilize valores nem muito baixos nem muito altos para os resistores.
- Tente utilizar valores entre dezenas de Ohm e abaixo de milhões de Ohm.
- Utilize resistores de precisão, sempre que possível.
O divisor resistivo de tensão, também influencia na precisão das medidas.
Quando 10 bits não bastam
Caso seja necessário utilizar mais do que 10 bits, temos algums opções.
Módulo | Bits do DAC |
arduino Zero | 12 |
arduino DUE | 12 |
arduino MKR family | 12 |
Temos ainda o ESP32 que também conta com ADC de 12 bits.
Necessita de mais precisão ?
Uma opção é o módulo ADS1115 com ADC de 16 bits, visto abaixo

Este módulo possui 4 entradas analógicas, sendo acessado via protocolo I2C.
Utilizar I2C permite que até 4 módulos ADS1115 sejam instalados ou que o barramento I2C seja compartilhado com outros dispositivos, como um display LCD, OLED ou outros sensores.
É sempre bom lembrar que o protocolo I2C tem uma temporização própria para estabelecer o endereçamento, a leitura e a escrita no barramento.
Isto deve ser levado em consideração para calcular a máxima taxa de aquisição analógica de seu projeto.
Entrada analógica usando modo diferencial

Observação : Embora o ATTiny85 tenha um ADC de 10 bits, ele é bastante popular, tem bom custo benefício e seu modo diferencial pode ser uma excelente opção para vários usos.
Assim como o ATTiny85, o ADS1115 permite utilizar o modo diferencial.
Um ADC normalmente mede a tensão do sinal com referência ao terra do circuito.
Já no modo diferencial, uma das entradas é usada como referência e desta maneira temos o valor medido como a diferença entre as duas entradas.
Usando o modo diferencial, temos apenas metade das entradas analógicas disponíveis.

Mais detalhes sobre o modo diferencial podem ser vistos neste link da Microchip
O ADS115 e o ATTiny85 tem controle de ganho nas entradas analógicas
- ADS115 tem PGA com os seguintes valores : 2/3, 1, 2, 4, 8, 16
- ATTiny85 tem ganho de 1 ou 20, somente no modo diferencial
Artigos relacionados :
arduino – Monitor para energia solar e eólica – Parte 1
Sistemas Off-Grid – Monitorando resultados
Calculadora online para divisor de tensão resisitivo
Atenção : O material usado para referência e as fotos para ilustração, não representam associação com as marcas, patrocíonio, indicação e nem endosso para uso.
Sobre o Autor