Utilizando os Pinos touch do ESP32

, ,

Nesse projeto Vamos aprender a usar os pinos touch´s do ESP-32 de um modo dinâmico.

E para aproveitarmos melhor temos que entender o que diferencia os pinos Touch dos pinos convencionais do ESP32.

Os pinos touch do ESP-32 são uma tecnologia especial que permite detectar a presença de um toque humano. Eles são diferentes dos pinos digitais comuns, pois podem detectar pequenas variações capacitivas causadas pela presença de um objeto condutor, como um dedo humano.

Esses pinos funcionam medindo a capacitância, que é a habilidade de armazenar carga elétrica. Quando um dedo se aproxima do pino, a capacitância naquele ponto aumenta, e o ESP-32 detecta essa mudança como um toque.

Agora que já sabemos como funcionam os pinos touch vamos colocar as mãos na massa.

Acendendo um led por meio do pino Touch do ESP-32

Esse projeto tem o objetivo de ensinar a usar os pinos touch´s do ESP-32 de um modo dinâmico. E o circuito que foi preparado tem a função de acionar um led por meio do toque no pino touch do microcontrolador.

MATERIAIS UTILIZADOS:

Todos os itens vocês encontram na WJ Componentes.

Como iremos utilizar no nosso projeto o software Arduino.ide para programarmos o ESP, como esse programa atua principalmente para arduino, é necessário modificá-lo para que possamos também programar o ESP. 

            Para isso é necessário seguir os seguintes passos: no software do arduino, iremos colar o link a seguir na área de Arquivos > Preferências> URLs Adicionais.

https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json

Agora, em Ferramentas> Placas> Gerenciador de Placas deve-se procurar ESP-32  e instalar. Agora você pode escolher o seu ESP em Placas.

Para começarmos o projeto, é importante nos atentarmos aos pinos do ESP, pois iremos utilizar a plataforma do Arduino.ide para o programarmos, então para sabermos a pinagem correta é necessário procurar por ela.

Com as pinagens em mãos podemos agora visualizar os pinos que podem ser usados como digitais e touch no nosso projeto. Precisamos localizar 1 pino touch e 1 digital. – Pode ser que o Esp que você esteja utilizando a pinagem seja diferente, verifique.

MONTAGEM DO PROJETO

Agora, podemos colocar os componentes na placa protoboard.

Pinos utilizados:

→ D5 – GPIO5

→ D15 – Pino Touch

            O pino touch está conectado apenas a um jumper, para assim podermos tocá-lo.

Segue o código que utilizaremos para realizar o acionamento do Led com o ESP.

const byte led = 5; //GPIO5
int touch;
char flag = 0; //Realiza a contagem
void setup() 
{
          Serial.begin(9600);  	
          pinMode(led, OUTPUT);
}
void loop() 
{
 	 touch = touchRead (15); //Realiza a leitura do pino touch
 	 Serial.println (touch); //Mostra o valor serial do pino touch - Valor:15
  
  if(touch<=15 && flag==0)
  {
    	digitalWrite (led, HIGH); //aciona o led
    	flag=1;
        delay(500);
  }
  else
  {
   	 digitalWrite (led, LOW); //desliga o led
  	 flag=0; //zera a flag
  }
}

Olhando o código mais de perto:

  • Declarando constantes e variáveis:
const byte led = 5; //GPIO5
int touch;
char flag = 0; //Realiza a contagem

→ Declaramos o pino que indica o led e criamos a variável de touch para que possamos saber seu valor serial.

  • Funções setup:
              void setup()
{
Serial.begin(9600);
pinMode(led, OUTPUT);
}

→ Iniciamos a serial e declaramos o pino do led como saída.

  • Funções loop
            void loop()
{
             touch = touchRead (15); //Realiza a leitura do pino touch
             Serial.println (touch); //Mostra o valor serial do pino touch - Valor:15
  if(touch<=15 && flag==0)
  {
           digitalWrite (led, HIGH); //aciona o led
           flag=1;
           delay(500);
  }
  else
  {
             digitalWrite (led, LOW); //desliga o led
             flag=0; //zera a flag
  }
}

Este trecho de código está controlando o LED. A primeira ação realizada é a leitura do valor de capacitância do pino touch 15 através da função touchRead(15), e este valor é exibido no monitor serial. A função IF verifica se o valor lido é menor ou igual a 15, o que indicaria um toque, e se a variável flag está definida como 0, sinalizando que o LED está desligado.

Quando ambas as condições são atendidas, o código aciona o LED, alterando o estado da flag para 1, indicando que o LED está agora aceso. Se o pino touch não está sendo tocado, ou se o LED já foi acionado anteriormente, o bloco de código dentro da estrutura else é executado, desligando o LED e reinicializando a flag para 0.

Essa lógica garante que o LED acenda uma única vez a cada toque, evitando que ele fique piscando continuamente enquanto o pino touch estiver sendo tocado.

Com este projeto, demos os primeiros passos para dominar os pinos touch do ESP-32, abrindo um leque de possibilidades para projetos futuros. Espero que este guia tenha sido esclarecedor e inspirador, mostrando que com algumas linhas de código e um pouco de criatividade, você pode dar vida às suas ideias eletrônicas. Continue explorando e inovando!

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *