Franzininho WiFi – Entrada Digital (botão) no ESP-IDF

O objetivo deste artigo é apresentar um exemplo de projeto para configurar os pinos como entrada digital do ESP32 no ESP-IDF com a Franzininho WiFi.

No segundo artigo da série de projetos utilizando a placa Franzininho WiFi vamos dar continuidade aos trabalhos com o periférico de Entrada/Saída de Propósito Geral ou do inglês General Purpose Input/Output (GPIO) . O objetivo deste artigo é apresentar um exemplo de projeto para configurar os pinos como entrada digital.  Ao final do artigo estaremos preparados para manipular tanto as saídas digitais, vista no artigo anterior, quanto às entradas de digitais.

Recursos Necessários

Os materiais necessários para realizar esse exemplo são:

  • Placa Franzininho WiFi;
  • Protoboard;
  • Botão ou chave táctil;
  • LED;
  • Resistor de 220 ou 330 Ohm;
  • Cabos Jumpers;
  • Computador com ESP-IDF instalado e configurado.

Desenvolvimento

Nesse artigo vamos apresentar um exemplo de projeto utilizando as duas funções do periférico GPIO: entrada digital e saída digital. Na entrada digital vamos realizar a leitura do botão táctil e armazenar seu estado em uma variável que irá interagir com o monitor e um LED externo, atuando como uma saída digital que irá nos indicar o estado atual do botão. 

O programa desenvolvido possibilita utilizar  duas topologias de circuito : pull up  ou pull down, para mais informações sobre essas topologias acesse os links referente a cada circuito. Nesse exemplo de projeto iremos utilizar a topologia com o pull up interno do processador, desta forma deve-se observar os comentários ao longo do código a fim de habilitar ou desabilitar as topologias de circuito.

Na placa Franzininho WiFI temos 38 pinos programáveis com o periférico GPIO, encorajamos aos leitores que alterem o código da forma como achar necessário e praticar a codificação do programa a fim de consolidar o conhecimento adquirido.

Esquemático

Para darmos início ao projeto é importante realizar  a montagem do circuito em protoboard observando com cuidado  as conexões, iremos conectar um dos terminais do resistor no GPIO 2 e outro no LED externo por fim ligamos a GPIO 15 no botão táctil. Abaixo segue o esquemático proposto:

image5

Código

O programa desenvolvido possui uma estrutura bem simples e não é necessário acrescentar nenhuma biblioteca, apenas a manutenção dos arquivos de cabeçalho já presentes no projeto.  Ao criar um novo projeto no IDF automaticamente já temos arquivos configurados e prontos para programação do dispositivo, desta forma digite e comente as linhas do seguinte código no arquivo main.c :

Você encontra o projeto completo na documentação da Franzininho: Button

Caso ainda não tenha instalado e configurado o IDF no seu computador ou tenha dúvidas sobre as ferramentas, acesse o tutorial de instalação (Clique Aqui).

Compilação

Após a codificação vamos compilar o código, mas antes selecione o set-target para ESP 32-S2:

Ao final da compilação o resultado final deve ser semelhante à imagem mostrada abaixo, em caso de erros retorne os passos anteriores e revise seu código. 

image3 1

Após a etapa de compilação vamos enviar o código fonte para nossa placa, no editor pressione o ícone abaixo e aguarde alguns segundos para assim dar início ao programa “Button”(seta preta) e para vermos a saída de dados do nosso projeto clique no ícone no formato de monitor (seta vermelha):

image1

Resultados

Finalizando o exemplo de projeto o leitor deve ter observado que no programa Button, foram utilizadas as estruturas de condição IF / ELSE IF para interagir com o estado atual do botão, adicionou-se às uma nova label nativa para indicar as entradas digitais (GPIO_MODE_INPUT) e as funções para indicar topologia do circuito( gpio_pullup_en() /gpio pulldown_dis() ) utilizado e verificar a leitura digital no pino definido no cabeçalho do código.

Abaixo segue o resultado final dos dados de saída no monitor :

image2 1

Abaixo segue o nosso circuito do nosso projeto:

image6

Conclusão

Nesse projeto concluímos o estudo do periférico base para iniciar no mundo dos microcontroladores, pois a partir desse conhecimento adquirido podemos reciclar para as outras famílias do ESP32, como também em outros chips baseados na linguagem C para estruturar seu programa. Como mencionado na seção de Desenvolvimento, este segundo artigo deseja consolidar o conhecimento nesse periférico (GPIO), por tanto deixo o desafio de criar um contador de pulsos de 0 até 10 e reiniciado sempre quando forma maior que 10, ao final de cada contagem deve-se acionar um LED e mostrar quantas contagens já foram feitas. Desejo sorte àqueles que irão realizar o desafio e bons estudos, que a força esteja com todos nós. 

Outros artigos da série

<< Franzininho WiFi – Hello World no ESP-IDFFranzininho WiFi – Entrada Analógica ESP-IDF >>
Notificações
Notificar
guest
0 Comentários
Inline Feedbacks
View all comments

WEBINAR

Visão Computacional para a redução de erros em processos manuais

DATA: 23/09 ÀS 17:00 H