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, especialista em sistemas 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. É entusiastas do movimento maker, da cultura DIY e do compartilhamento de conhecimento, publica diversos artigos sobre eletrônica e projetos open hardware. Com iniciativas como o projeto Franzininho e projetos na área de educação, leva a cultura maker para o Brasil capacitando e incentivando professores e alunos a usarem tecnologia em suas vidas. Participou da residência hacker 2018 no Red Bull Basement.

4
Deixe um comentário

avatar
 
2 Comment threads
2 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
3 Comment authors
Fábio SouzaNilson SantosFabio Roberto Vieira da Silva Recent comment authors
  Notificações  
recentes antigos mais votados
Notificar
Nilson Santos
Visitante
Nilson Santos

Há um erro na linha 10 do último script

Fabio Roberto Vieira da Silva
Visitante
Fabio Roberto Vieira da Silva

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

Nilson Santos
Visitante
Nilson Santos

Sim