// Definição dos pinos
const int touchPin = 4; // GPIO4 (TOUCH0)
const int ledPin = 17; // Pode ser usado o LED interno da placa (GPIO2)
// Configurações do touch
int touchValue;
int touchThreshold = 25; // Valor limite para detectar toque
bool ledState = false; // Estado do LED
void setup() {
Serial.begin(115200);
pinMode(ledPin, OUTPUT);
Serial.println("\nTeste do Sensor Touch do ESP32");
Serial.println("Toque no pino GPIO4 para ligar/desligar o LED");
// Calibração inicial
calibrateTouch();
}
void loop() {
touchValue = touchRead(touchPin);
// Se detectar toque
if (touchValue < touchThreshold) {
ledState = !ledState; // Alterna o estado do LED
digitalWrite(ledPin, ledState); // Atualiza o LED
Serial.print("Toque detectado! Valor: ");
Serial.print(touchValue);
Serial.print(" | LED: ");
Serial.println(ledState ? "LIGADO" : "DESLIGADO");
delay(500); // Debounce - evita múltiplas leituras de um único toque
}
delay(10); // Pequena pausa entre leituras
}
// Função para calibrar o sensor touch
void calibrateTouch() {
Serial.println("\nCalibrando sensor touch...");
Serial.println("Não toque no pino durante a calibração");
delay(2000);
/*
Insira aqui o Código
*/
Serial.print("Valor base: ");
Serial.print(baseline);
Serial.print(" | Limiar: ");
Serial.println(touchThreshold);
Serial.println("Calibração concluída!\n");
}