ESP32 - Sensor de Toque

Este tutorial ensina como usar o ESP32 com o sensor de toque (também conhecido como interruptor de toque ou botão de toque).

Sobre o Sensor de Toque

Pinagem do Sensor de Toque

O sensor de toque tem 3 pinos:

  • Pino GND: conecte este pino ao GND (0V)
  • Pino VCC: conecte este pino ao VCC (5V ou 3.3v)
  • Pino SIGNAL: é um pino de saída: LOW quando NÃO está sendo tocado, HIGH quando está sendo tocado. Este pino precisa ser conectado a um pino de entrada do ESP32.
Pinagem do Sensor de Toque

Como o Sensor de Toque Funciona

  • O estado do pino SIGNAL é LOW quando o sensor de toque NÃO está sendo tocado
  • O estado do pino SIGNAL é HIGH quando o sensor de toque está sendo tocado

ESP32 - Sensor de Toque

Podemos conectar o pino SIGNAL do sensor de toque a um pino de entrada do ESP32 e usar o código do ESP32 para ler o estado do sensor de toque.

Diagrama de Ligação entre o Sensor de Toque e o ESP32

  • Como conectar o ESP32 e o sensor de toque usando uma protoboard
Diagrama de Ligação do ESP32 com Sensor de Toque

This image is created using Fritzing. Click to enlarge image

Se você não sabe como alimentar o ESP32 e outros componentes, veja as instruções no tutorial a seguir: Como alimentar o ESP32.

Como conectar o ESP32 e o sensor de toque

Como Programar o Sensor de Toque

  • Inicialize o pino do ESP32 no modo de entrada digital usando a função pinMode(). Por exemplo, o pino GPIO18
pinMode(18, INPUT_PULLUP);
  • Leia o estado do pino do ESP32 usando a função digitalRead().
int inputState = digitalRead(18);

Sensor de Toque - Código ESP32

O código abaixo lê o estado do sensor de toque e o imprime no Serial Monitor.

/* * Este código de ESP32 foi desenvolvido por pt.newbiely.com * Este código de ESP32 é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/esp32/esp32-touch-sensor */ #define SENSOR_PIN 18 // ESP32 pin GPIO18 connected to the sensor's SIGNAL pin of touch sensor void setup() { // initialize serial communication at 9600 bits per second: Serial.begin(9600); // initialize the ESP32's pin as aninput pinMode(SENSOR_PIN, INPUT); } void loop() { // read the state of the the input pin: int state = digitalRead(SENSOR_PIN); // print state to Serial Monitor Serial.println(state); }

Passos Rápidos

  • Se esta é a primeira vez que você usa o ESP32, veja como configurar o ambiente para o ESP32 na Arduino IDE.
  • Copie o código acima e cole na Arduino IDE.
  • Compile e faça o upload do código para a placa ESP32 clicando no botão Upload na Arduino IDE
  • Toque o sensor com o dedo e solte.
  • Veja o resultado no Serial Monitor. Ele fica assim:
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32 Dev Module
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32 Dev Module' on 'COM15')
New Line
9600 baud
0 0 0 1 1 1 1 1 1 0 0
Ln 11, Col 1
ESP32 Dev Module on COM15
2

Como detectar a mudança de estado de LOW para HIGH

/* * Este código de ESP32 foi desenvolvido por pt.newbiely.com * Este código de ESP32 é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/esp32/esp32-touch-sensor */ #define SENSOR_PIN 18 // ESP32 pin GPIO18 connected to the sensor's SIGNAL pin of touch sensor // Variables will change: int lastState = LOW; // the previous state from the input pin int currentState; // the current reading from the input pin void setup() { // initialize serial communication at 9600 bits per second: Serial.begin(9600); // initialize the ESP32's pin as aninput pinMode(SENSOR_PIN, INPUT); } void loop() { // read the state of the the input pin: currentState = digitalRead(SENSOR_PIN); if (lastState == LOW && currentState == HIGH) Serial.println("The sensor is touched"); // save the the last state lastState = currentState; }

Vídeo

※ NOSSAS MENSAGENS

  • Fique à vontade para compartilhar o link deste tutorial. Porém, por favor, não use nosso conteúdo em outros sites. Investimos muito esforço e tempo para criar este conteúdo, por favor respeite nosso trabalho!