Entradas e Saídas digitais no MicroPython com ESP8266

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

Agora que já temos nossa placa de desenvolvimento montada, vamos explorar os periféricos, aproveitando os recursos do MicroPython.

 

Como de costume, vamos iniciar pelos pinos de entrada e saída.

 

A seguir são apresentados as funções para escrita e leitura dos pinos de I/O do ESP8266 com o MicroPython.

 

 

Pinos de I/O da placa nodeMCU

 

Antes de iniciarmos a manipulação dos pinos através do MicroPython, é importante entender como os pinos estão mapeados na placa nodeMCU (ou na placa que você está usando).

 

A figura a seguir exibe o pinout da nodeMCU:

 

Os pinos são nomeados GPIOX, ou seja, GPIO0, GPIO1, GPIO2, …  e assim por diante.

 

No código MicroPython, vamos usar apenas o número: 0, 1, 2,..etc.

 

É importante também, caso você esteja usando a placa de desenvolvimento do artigo anterior, saber onde os pinos estão ligados através do esquemático da placa:

 

 

Pronto, agora que já sabemos como usar os pinos e onde os mesmos estão ligados, vamos para a programação.

 

 

Classe para manipulação de pinos de Entradas e Saídas digitais no MicroPython

 

Para manipulação dos pinos de I/O vamos usar a classe machine.Pin. Essa classe irá nos ajudar a ler os pinos de entrada e saídas digitais do ESP8266. Os pinos podem operar como entrada ou saída, conforme a sua configuração. Quando o pino está configurado como saída ele fornecerá uma tensão de saída, 0 ou 3,3 V no caso do ESP8266. A corrente máxima de saída no pino é de 12 mA e a corrente de entrada máxima é de 20 mA. Quando o pino é configurado como entrada, ele fica em alta impedância e a tensão presente no pino é lida pelo periférico de I/O.

 

A classe pino possui os métodos para configuração, escrita, leitura, etc, que facilitam a manipulação dos pinos. A seguir são apresentadas a funções:

 

 

 

Exemplos de manipulação de pinos de Entradas e Saídas digitais com scripts MicroPython

 

Para nosso primeiro exemplo, vamos piscar o LED do módulo ESP-12E em intervalos de 1 segundo, o famoso blink:

 

 

 

Podemos definir uma função para inverter o estado do pino passado como parâmetro:

 

 

Outra forma de alterar o estado do pino é usar os métodos on() e off():

 

 

Agora vamos criar uma função beep() que usaremos em nossas aplicações para emitir um beep quando alguma tecla for pressionada ou para alguma sinalização.

 

 

Infelizmente a nossa placa de testes não tem um dispositivo para entrada digital, para testarmos. As teclas estão ligadas ao expansor de I/O PcF8574 e serão lidas de outra forma, como veremos em um artigo futuro. De qualquer forma, deixo a seguir um exemplo para leitura de uma tecla, caso você precise dessa rotina em algum projeto.

 

Para leitura do estado de um pino usamos o método value(). O exemplo a seguir exibe a leitura de uma tecla e acionamento de um LED quando ela for pressionado:

 

 

 

Conclusão

 

Os exemplos apresentados exibem como fazer a manipulação de pinos de entrada e saídas usando o MicroPython. Altere os exemplos ou crie novos exemplos para a leitura e escrita de valores digitais em sua placa ou projeto.

 

Caso tenha ficado alguma dúvida ou sugestão, deixe seu comentário abaixo.

Outros artigos da série

<< Placa de testes para MicroPython com ESP8266Entrada analógica com MicroPython no 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.

1
Deixe um comentário

avatar
 
1 Comment threads
0 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
1 Comment authors
Fabio Roberto Vieira da Silva Recent comment authors
  Notificações  
recentes antigos mais votados
Notificar
Fabio Roberto Vieira da Silva
Visitante
Fabio Roberto Vieira da Silva

é possível criar um arquivo .py e executar no boot?