A leitura de sinais analógicos é feita com frequência em projetos com microcontroladores. Felizmente, muitos microcontroladores já trazem internamente um conversor AD que atende a maioria dos casos de aplicações. Em alguns casos específicos, talvez você precise de um conversor AD externo que possua maior resolução, maior taxa de amostragem ou outra características importante para seu projeto. Nesse artigo irei exibir como fazer a leitura de um sinal analógico através do MicroPython na placa nodeMCU.
Conversor AD do ESP8266
As placas com ESP8266 possuem, geralmente, um pino de entrada analógica (A0). Esse pino está conectado ao conversor AD do ESP8266, que é um conversor 10 bits, e aceita a tensão máxima de entrada de 1 Volt.
Para deixar as coisas um “pouco mais fácil” a placa nodeMCU vem com um divisor de tensão, permitindo a leitura de sinais até 3,3V:
Circuito para leitura de LDR
Na nossa placa de desenvolvimento foi incluído um sensor LDR, conforme exibido no esquemático a seguir:
Software em Micropython
Para a leitura de sinais analógicos através do conversor interno do nodeMCU vamos usar a class ADC – analog to digital conversion.
Para importar a classe usamos:
from machine import ADC
E criamos um objeto referente a entrada analógica:
adc = ADC(0)
O código a seguir exibe a leitura do ADC e impressão do valor da conversão a cada 0,5 s:
from machine import ADC
import time
adc0=ADC(0) #create ADC object on ADC pin
while True:
print("adc0=",adc0.read()) #read value, 0-1024
time.sleep(0.5)
Variando a luminosidade no LDR temos a variação nos valores de conversão AD:
Conclusão
O exemplo apresentado exibe como fazer a leitura de sinais analógicos. Apesar do conversor AD no ESP8266 apresentar limitações de canais, podemos usar a entrada analógica para leitura de diversos tipos de sensores, como por exemplo: potenciômetro, sensor de temperatura (LM35), etc. Só temos que tomar cuidado com a tensão de saída do sensor e verificar se o divisor resistivo presente na placa não irá influenciar na medida do sensor. Em muitos casos é interessante fazer um circuito para condicionamento de sinal.
Como visto nesse exemplo, o MicroPyhton facilita bastante a leitura de sinais analógicos no ESP8266.
Fique a vontade para testar outros sensores e caso tenha alguma dúvida, deixe seu comentário abaixo.








Olá Fábio, boa tarde! Gostaria de deixar aqui o registro da qualidade do conteúdo que venho acompanhando nos teus canais e lógicamente agradecer a ajuda que este conteúdo vem acrescentando no meu aprendizado!!! Parabéns!!!!!
Olá Vinícius. Muito obrigado pelo comentário. Isso me motiva a fazer mais. Conte comigo na sua jornada. Abraços
Fábio, considerando que o LDR não é linear, como seria esse script para mostrar um resultado em LUX?