O ADC permite que o ESP32 leia sinais analógicos do mundo real. É com ele que você consegue medir potenciômetros, sensores de luz, sensores de gás, sensores de chuva, tensão de bateria e muitos outros sinais variáveis.
🎓 ArcadeMakerBR Academy
ESP32 Essentials • Aula 09
Nível: 🟢 Iniciante
Tempo de leitura: 18 a 25 minutos
Projeto sugerido: leitura de potenciômetro e sensor LDR
O que você vai aprender
- O que é ADC e por que ele é importante.
- Diferença entre sinal analógico e digital.
- Como o ESP32 converte tensão em número.
- O que são ADC1 e ADC2.
- Por que o ADC2 pode causar problemas quando o Wi-Fi está ativo.
- Como usar
analogRead(). - Como melhorar leituras com média e filtragem simples.
- Quais erros comuns evitar.
Índice
- Por que ADC é importante?
- Sinal analógico vs sinal digital
- O que é ADC?
- Resolução do ADC
- ADC1 e ADC2 no ESP32
- Atenuação
- Código: leitura analógica
- Sensores analógicos comuns
- Como melhorar leituras
- FAQ
Por que ADC é importante?
Até agora, quando falamos de GPIO, vimos sinais digitais: ligado ou desligado, HIGH ou LOW, 0 ou 1. Isso é ótimo para botões, relés, sensores digitais e LEDs.
Mas muitos sinais do mundo real não funcionam apenas como ligado e desligado. A luz de um ambiente pode variar aos poucos. A tensão de uma bateria pode diminuir gradualmente. Um potenciômetro pode estar em qualquer posição. Um sensor de gás pode produzir uma saída proporcional à concentração detectada.
Para ler esse tipo de informação, o ESP32 precisa transformar um valor analógico em um número digital. É exatamente isso que o ADC faz.
Dica do Maker: se GPIO é o alfabeto do ESP32, o ADC é uma das formas de o ESP32 “sentir” o mundo ao redor.
Sinal analógico vs sinal digital
Um sinal digital tem estados bem definidos. Por exemplo, LOW ou HIGH. Já um sinal analógico pode assumir vários valores dentro de uma faixa.
Um botão é digital: ou está pressionado ou está solto. Um potenciômetro é analógico: ele pode estar em 10%, 25%, 50%, 80% ou qualquer posição intermediária.
O que é ADC?
ADC significa Analog-to-Digital Converter, ou conversor analógico para digital.
Ele mede uma tensão em um pino e converte essa tensão em um número. Esse número pode ser usado no código para tomar decisões.
- Se a leitura do LDR estiver baixa, acender uma luz.
- Se a leitura da bateria estiver baixa, enviar alerta.
- Se o potenciômetro estiver acima de 80%, aumentar velocidade de um motor.
- Se o sensor de chuva detectar água, fechar uma janela automatizada.
No Arduino IDE, normalmente usamos analogRead() para fazer essa leitura.
Resolução do ADC
A resolução indica quantos níveis diferentes o ADC consegue representar.
Em muitos exemplos com ESP32, a leitura vai de 0 a 4095, o que corresponde a uma resolução de 12 bits.
- 0: tensão próxima de 0V.
- 4095: tensão próxima do limite configurado.
- Valores intermediários: tensões intermediárias.
Se você ligar um potenciômetro entre 3.3V e GND, com o pino central no ADC, ao girar o potenciômetro a leitura deve variar entre valores próximos de 0 e 4095.
Atenção: o ADC do ESP32 não deve receber tensão acima do permitido pelo pino. Na dúvida, mantenha os sinais entre 0V e 3.3V e use divisor de tensão quando necessário.
ADC1 e ADC2 no ESP32
O ESP32 possui grupos de canais ADC. De forma simplificada, é comum falar em ADC1 e ADC2.
Um detalhe importante: em muitas situações, o ADC2 pode ter conflito com o Wi-Fi. Isso significa que, se o Wi-Fi estiver ativo, leituras em canais ADC2 podem não funcionar como você espera.
Por isso, para projetos com Wi-Fi, MQTT, HTTP, Home Assistant ou web server, normalmente é mais seguro usar pinos associados ao ADC1.
| Grupo | Uso recomendado | Observação |
|---|---|---|
| ADC1 | Projetos com Wi-Fi ativo | Mais seguro para sensores em projetos IoT. |
| ADC2 | Projetos sem Wi-Fi ou casos específicos | Pode gerar conflito quando o Wi-Fi está em uso. |
O que é atenuação?
A atenuação altera a faixa de tensão que o ADC consegue medir. Em termos simples, ela ajusta a sensibilidade da entrada analógica.
No ESP32, é comum encontrar configurações de atenuação como 0 dB, 2.5 dB, 6 dB e 11 dB. Para iniciantes, o mais importante é entender que a escolha da atenuação influencia a faixa de tensão medida.
Em muitos projetos simples com Arduino IDE, você pode começar usando analogRead() sem mexer em configurações avançadas. Mas quando precisar de leituras mais consistentes, vale estudar a atenuação e a calibração.
Código exemplo: ler um potenciômetro
O exemplo abaixo lê um potenciômetro ligado a um pino analógico do ESP32 e mostra o valor no Serial Monitor.
// Exemplo: Leitura ADC com ESP32
// ArcadeMakerBR Academy
#define POT_PIN 34
void setup() {
Serial.begin(115200);
}
void loop() {
int leitura = analogRead(POT_PIN);
Serial.print("Leitura ADC: ");
Serial.println(leitura);
delay(300);
}
Ligação básica do potenciômetro
- Uma extremidade no 3.3V.
- Outra extremidade no GND.
- Pino central no GPIO analógico.
Ao girar o potenciômetro, o valor lido deve mudar gradualmente.
Convertendo leitura para tensão
Se estiver usando uma leitura de 0 a 4095 e uma referência aproximada de 3.3V, você pode estimar a tensão assim:
float tensao = leitura * (3.3 / 4095.0);
Esse cálculo dá uma noção útil, mas não deve ser tratado como medição de alta precisão. O ADC do ESP32 pode exigir calibração para resultados mais exatos.
Sensores analógicos comuns
O ADC abre caminho para vários sensores e módulos muito usados em projetos maker.
Potenciômetro
Ótimo para testes. Permite simular uma entrada variável de forma simples.
LDR
Sensor de luz. Normalmente usado com resistor formando divisor de tensão.
Sensor de chuva
Muitos módulos possuem saída analógica e digital. A saída analógica permite medir intensidade aproximada.
Sensor MQ-2
Sensor de gás/fumaça muito usado em projetos didáticos. A saída analógica varia conforme a leitura do sensor.
Leitura de bateria
Para medir tensão de bateria acima de 3.3V, é necessário usar divisor de tensão adequado para proteger o pino do ESP32.
Dica do Maker: nunca ligue uma bateria diretamente ao ADC se a tensão puder ultrapassar 3.3V. Use divisor de tensão.
Divisor de tensão
Um divisor de tensão usa dois resistores para reduzir uma tensão maior para uma faixa segura.
Isso é muito usado para medir baterias Li-Ion, fontes ou sinais que passam de 3.3V.
Como melhorar leituras do ADC
Leituras analógicas podem variar um pouco. Isso é normal. Ruído elétrico, fios longos, fonte instável, sensor barato ou protoboard podem causar pequenas oscilações.
Use média de leituras
Uma forma simples de suavizar o valor é tirar várias leituras e calcular a média.
// Média simples de leituras ADC
#define ADC_PIN 34
int lerMediaADC(int pino, int amostras) {
long soma = 0;
for (int i = 0; i < amostras; i++) {
soma += analogRead(pino);
delay(5);
}
return soma / amostras;
}
void setup() {
Serial.begin(115200);
}
void loop() {
int valor = lerMediaADC(ADC_PIN, 20);
Serial.print("Media ADC: ");
Serial.println(valor);
delay(500);
}
Boas práticas
- Use GND comum entre sensores e ESP32.
- Evite fios muito longos para sinais analógicos.
- Use capacitores pequenos quando necessário para suavizar ruído.
- Faça calibração se precisar de precisão.
- Prefira ADC1 em projetos com Wi-Fi.
ADC é preciso?
O ADC do ESP32 é muito útil, mas não deve ser tratado como instrumento de medição profissional sem calibração.
Para muitos projetos maker, ele é suficiente. Para medições mais críticas, pode ser necessário usar calibração, circuito adequado ou até um ADC externo de maior precisão.
Projeto Maker: medidor de luminosidade
Um projeto simples para praticar ADC é criar um medidor de luminosidade com LDR.
- Ligar um LDR com resistor formando divisor de tensão.
- Ler o valor usando
analogRead(). - Mostrar no Serial Monitor.
- Acender um LED quando o ambiente estiver escuro.
- Depois evoluir para enviar o valor via MQTT.
Erros comuns com ADC no ESP32
1. Aplicar tensão acima de 3.3V
Esse erro pode danificar o ESP32. Sempre proteja o pino quando medir tensões maiores.
2. Usar ADC2 com Wi-Fi ativo
Em muitos casos, ADC2 pode entrar em conflito com Wi-Fi. Para projetos IoT, prefira ADC1.
3. Esperar precisão perfeita
O ADC interno é útil, mas pode exigir calibração. Para medições críticas, considere ADC externo.
4. Não usar divisor de tensão
Ao medir bateria ou sinais maiores, o divisor de tensão é essencial.
5. Ler sensor analógico com fio longo
Fios longos podem captar ruído. Mantenha o circuito organizado e teste com calma.
FAQ sobre ADC no ESP32
O que significa ADC?
ADC significa Analog-to-Digital Converter, ou conversor analógico para digital.
Qual valor o analogRead retorna no ESP32?
Em muitos exemplos, retorna valores entre 0 e 4095, correspondendo à resolução de 12 bits.
Posso medir 5V diretamente no ADC?
Não. Use divisor de tensão ou circuito adequado para reduzir a tensão para uma faixa segura.
Posso usar ADC com Wi-Fi?
Sim, mas prefira canais ADC1. O ADC2 pode ter conflito com Wi-Fi em várias situações.
O ADC do ESP32 é preciso?
É útil para muitos projetos maker, mas pode não ser ideal para medições de alta precisão sem calibração.
Resumo final
O ADC é o recurso que permite ao ESP32 ler sinais variáveis do mundo real. Com ele, você consegue medir luz, posição, tensão, sensores de gás, sensores de chuva e muito mais.
Para iniciantes, o melhor caminho é começar com um potenciômetro, depois testar LDR, sensor de chuva e leitura de bateria com divisor de tensão. Com o tempo, você pode evoluir para filtragem, calibração e sensores mais precisos.
Dominar ADC abre portas para projetos de monitoramento, automação, robótica, IoT e sistemas alimentados por bateria.
📚 Continue aprendendo
- Tudo sobre ESP32
- Tudo sobre GPIO no ESP32
- Tudo sobre PWM no ESP32
- Tudo sobre DAC no ESP32
- Tudo sobre Wi-Fi no ESP32
Kit de publicação
Título SEO: Tudo sobre ADC no ESP32 – Guia Completo para Iniciantes
Slug: tudo-sobre-adc-esp32
Meta Description: Aprenda tudo sobre ADC no ESP32: leitura analógica, resolução, ADC1, ADC2, atenuação, sensores, potenciômetro, LDR e exemplos práticos.
Tags: ESP32, ADC, ESP32 ADC, Arduino, Arduino IDE, Leitura Analógica, Sensores Analógicos, Potenciômetro, LDR, MQ2, Sensor de Chuva, Eletrônica, IoT, Maker, Microcontroladores, Automação
Categoria: ESP32 Academy
ALT da capa: Tudo sobre ADC no ESP32 - Guia Completo ArcadeMakerBR Academy
