Início›Módulos›Sensor de Toque
⬤ Iniciante · Grupo 5 — Toque, Inclinação e Pressão

👆 Sensor de Toque Capacitivo

⏱️ 25 min 🧩 Módulo toque capacitivo · Digital 📦 Módulo #14

Nesta página

🔬 Sobre o Sensor de Toque Capacitivo

O sensor de toque capacitivo deteta a presença do dedo humano pela variação de capacitância — sem pressão mecânica. Baseado num IC TTP223 (ou similar), tem saída digital HIGH ao toque e LOW sem toque. Funciona através de materiais finos (vidro, plástico, papel).

Tecnologia
Capacitiva
Sem pressão mecânica
Saída
Digital
HIGH = tocado, LOW = livre
IC
TTP223
Deteção de toque de 1 ponto
Tensão
3V–5V
VCC do Arduino
Pino
D2
Ou qualquer digital
Resposta
~50 ms
Tempo de reação
ℹ️
Diferente do botão mecânico (LOW quando premido, com pull-up), o sensor de toque capacitivo dá HIGH quando tocado e LOW quando livre — lógica não invertida.

🔌 Pinagem

VCCAlimentação → 3.3V ou 5V
GNDMassa → GND do Arduino
SIGSinal → D2 (HIGH = toque detectado)

💻 Toque Básico — Liga e Desliga LED

ex_toque_basico.ino
#define TOQUE_PIN 2
#define LED_PIN   13

void setup() {{
  pinMode(TOQUE_PIN, INPUT);   // Sem pull-up — HIGH = tocado
  pinMode(LED_PIN,   OUTPUT);
  Serial.begin(9600);
}}

void loop() {{
  bool tocado = (digitalRead(TOQUE_PIN) == HIGH);
  digitalWrite(LED_PIN, tocado);

  if (tocado) Serial.println("Toque detectado!");
  delay(50);
}}

🔁 Modo Latch — Manter Estado ao Toque

ex_toque_latch.ino
#define TOQUE_PIN  2
#define LED_PIN    13
#define BUZZER_PIN 8

bool ledState    = false;
bool ultimoToque = false;

void setup() {{
  pinMode(TOQUE_PIN, INPUT);
  pinMode(LED_PIN,   OUTPUT);
  pinMode(BUZZER_PIN,OUTPUT);
  Serial.begin(9600);
}}

void loop() {{
  bool tocado = (digitalRead(TOQUE_PIN) == HIGH);

  // Detetar flanco de subida (início do toque)
  if (tocado && !ultimoToque) {{
    ledState = !ledState;
    digitalWrite(LED_PIN, ledState);
    digitalWrite(BUZZER_PIN, HIGH); delay(60); digitalWrite(BUZZER_PIN, LOW);
    Serial.print("Toggle LED: ");
    Serial.println(ledState ? "ON" : "OFF");
  }}
  ultimoToque = tocado;
  delay(20);
}}

📊 Toque Capacitivo vs. Botão Mecânico

CaracterísticaSensor de Toque Capacitivo (#14)Botão de Pressão (#25)
MecanismoVariação de capacitância — sem pressãoContacto mecânico — requer pressão
Lógica de saídaHIGH quando tocadoLOW quando premido (com pull-up)
Debounce necessárioNão (IC interno gere)Sim — bounce mecânico
Desgaste mecânicoNenhum (sem partes móveis)Limitado (~100 000 ciclos)
Funciona através de superfícies✅ Vidro, plástico fino❌ Precisa de acesso direto
Sensível a humidade/EMI⚠️ Mais sensível❌ Menos sensível ao ambiente
Ideal paraInterfaces sem botões visíveis, superfícies decorativasAplicações robustas, industriais

🏆 Para ir mais longe

Kit B 37 · PR.FT6_15 · Arduino UNO · Raspberry Pi · Início · led.dge.medu.pt