Entrada analógica com MicroPython no ESP8266

Este post faz parte da série MicroPython com ESP8266. Leia também os outros posts da série:

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.

Outros artigos da série

<< Entradas e Saídas digitais no MicroPython com ESP8266
Este post faz da série MicroPython com ESP8266. Leia também os outros posts da série:
NEWSLETTER

Receba os melhores conteúdos sobre sistemas eletrônicos embarcados, dicas, tutoriais e promoções.

Obrigado! Sua inscrição foi um sucesso.

Ops, algo deu errado. Por favor tente novamente.

Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.

Fábio Souza
Engenheiro com experiência no desenvolvimento de projetos eletrônicos embarcados. Hoje é diretor de operações do portal Embarcados, onde trabalha para levar conteúdos de eletrônica, sistemas embarcados e IoT para o Brasil. Também atua no ensino eletrônica e programação pelo Brasil. É entusiastas do movimento maker, da cultura DIY e do compartilhamento de conhecimento, publica diversos artigos sobre eletrônica e projetos open hardware, como o projeto Franzininho Participou da residência hacker 2018 no Redbull Basement. Quando não está ministrando palestras, cursos ou workshops, dedica seu tempo “escovando bits” ou projetando placas eletrônicas.

Deixe um comentário

avatar
 
  Notificações  
Notificar