Arduino Nano ESP32 - Sensor de Toque
Este tutorial mostra como usar o Arduino Nano ESP32 com o sensor de toque (também conhecido como interruptor de toque ou botão de toque).
Hardware Necessário
Or you can buy the following kits:
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Divulgação: Alguns dos links desta seção são links de afiliado da Amazon. Podemos receber uma comissão pelas compras feitas por meio desses links, sem custo adicional para você. Agradecemos o seu apoio.
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 é tocado, HIGH quando é tocado. Este pino precisa ser conectado a um pino de entrada do ESP32.

Como o Sensor de Toque Funciona
- O estado do pino SIGNAL é LOW quando o sensor de toque NÃO é tocado
- O estado do pino SIGNAL é HIGH quando o sensor de toque é tocado
Arduino Nano 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 Arduino Nano ESP32 para ler o estado do sensor de toque.
Diagrama de Ligação entre o Sensor de Toque e o Arduino Nano ESP32

This image is created using Fritzing. Click to enlarge image
Como Programar o Sensor de Toque
- Inicializa o pino do Arduino Nano ESP32 no modo de entrada digital usando a função pinMode(). Por exemplo, o pino D2
pinMode(D2, INPUT);
- Lê o estado do pino do Arduino Nano ESP32 usando a função digitalRead().
int inputState = digitalRead(D2);
Sensor de Toque - Código para Arduino Nano ESP32
O código abaixo lê o estado do sensor de toque e o imprime no Serial Monitor.
/*
* Este código de Arduino Nano ESP32 foi desenvolvido por pt.newbiely.com
* Este código de Arduino Nano ESP32 é disponibilizado ao público sem nenhuma restrição.
* Para tutoriais completos e diagramas de ligação, visite:
* https://pt.newbiely.com/tutorials/arduino-nano-esp32/arduino-nano-esp32-touch-sensor
*/
#define SENSOR_PIN D2 // The Arduino Nano ESP32 pin connected to the sensor's SIGNAL pin of touch sensor
void setup() {
// Initialize the Serial to communicate with the Serial Monitor.
Serial.begin(9600);
// initialize the ESP32's pin as an input
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 Arduino Nano ESP32, veja como configurar o ambiente para o Arduino Nano ESP32 no Arduino IDE.
- Copie o código acima e cole no Arduino IDE.
- Compile e faça o upload do código para a placa Arduino Nano ESP32 clicando no botão Upload do Arduino IDE
- Toque o dedo no sensor e solte.
- Confira o resultado no Serial Monitor. Ele se parece com o abaixo:
8
Serial.println("Hello World!");
Message (Enter to send message to 'Arduino Nano ESP32' on 'COM15')
New Line
9600 baud
0
0
0
1
1
1
1
1
1
0
0
Como detectar a mudança de estado de LOW para HIGH
/*
* Este código de Arduino Nano ESP32 foi desenvolvido por pt.newbiely.com
* Este código de Arduino Nano ESP32 é disponibilizado ao público sem nenhuma restrição.
* Para tutoriais completos e diagramas de ligação, visite:
* https://pt.newbiely.com/tutorials/arduino-nano-esp32/arduino-nano-esp32-touch-sensor
*/
#define SENSOR_PIN D2 // The Arduino Nano ESP32 pin connected to the sensor's SIGNAL pin of touch sensor
int prev_state = LOW; // The previous state from the input pin
int touch_state; // The current reading from the input pin
void setup() {
// Initialize the Serial to communicate with the Serial Monitor.
Serial.begin(9600);
// initialize the ESP32's pin as an input
pinMode(SENSOR_PIN, INPUT);
}
void loop() {
// read the state of the the input pin:
touch_state = digitalRead(SENSOR_PIN);
if (prev_state == LOW && touch_state == HIGH)
Serial.println("The sensor is touched");
// save the the last state
prev_state = touch_state;
}