top of page

Explorando o Sensor Touch Capacitivo TTP223B na Robótica Educacional

Neste exercício, vamos explorar como o Sensor Touch Capacitivo TTP223B funciona e como ele pode ser integrado com microcontroladores como o Arduino para acender um LED. O objetivo é utilizar o sensor para detectar um toque e, com isso, ativar um LED, criando uma interação simples e eficaz entre o usuário e o sistema.

Mecânica por trás do Sensor Capacitivo TTP223B

O TTP223B é um sensor de toque capacitivo, o que significa que ele pode detectar variações na capacitância causadas pelo toque humano. A capacitância é a capacidade de um material de armazenar carga elétrica. Quando você toca a superfície do sensor, seu corpo (que é condutor de eletricidade) altera a capacitância na região do sensor. O TTP223B detecta essa alteração e gera um sinal de saída para indicar que houve um toque.

Funcionamento básico: O sensor possui um eletrodo que detecta a capacitância do ambiente. Ao tocar a superfície do sensor, seu corpo se torna parte do circuito elétrico, mudando a capacitância e, assim, acionando a saída do sensor.

Como ele detecta o toque?

O TTP223B detecta o toque por meio da variação da capacitância entre a superfície do sensor e o corpo do usuário. A mudança de capacitância é registrada pelo circuito interno do sensor, que aciona a saída digital (HIGH ou LOW).

  • Touch = HIGH: Quando o sensor detecta um toque (ou alteração de capacitância), ele gera um sinal de saída HIGH (nível lógico 1).

  • Touch = LOW: Quando não há toque, o sensor permanece com a saída LOW (nível lógico 0).

 

O comportamento de saída do sensor pode ser usado para ativar ou desativar um componente, como um LED.

Como programá-lo para ativar o LED?

Quando o sensor detecta um toque, ele envia um sinal para o microcontrolador (como o Arduino). Usando um código simples, você pode programar o Arduino para acender um LED quando o sinal do sensor for HIGH (toque detectado). Quando o sinal for LOW (sem toque), o LED será apagado

Componentes

  • Arduino UNO

  • Protoboard

  • Jumpers

  • Led Verde

  • Resistor 220

  • Sensor Touch Capacitivo

Conexões

Sensor Touch TTP223B:

  • VCC (pino de alimentação) -> Conectar ao pino 5V do Arduino.

  • GND (pino de terra) -> Conectar ao pino GND do Arduino.

  • IO (pino de sinal) -> Conectar ao pino 2 do Arduino (este é o pino que vai ler o sinal do sensor).

LED Verde:

  • O ânodo (perna longa) do LED vai para o pino 8 do Arduino, que é o pino de saída no seu código.

  • O cátodo (perna curta) do LED deve ser conectado ao GND do Arduino através de um resistor de 220Ω para limitar a corrente que passa pelo LED e protegê-lo.

Sobre o Código:

pinMode(TOUCH, INPUT_PULLUP); : O pino 2 do Arduino está configurado para entrar como um INPUT_PULLUP. Isso significa que o Arduino utiliza um resistor pull-up interno para garantir que o sinal seja HIGH quando não houver toque (sem interferência externa). O resistor pull-up puxa o sinal para HIGH quando o sensor não está sendo tocado.

Se o sensor for tocado, ele altera o estado do LED:

  • ligado = !ligado; : Essa linha inverte o estado do LED. Se estava desligado, agora ele será ligado, e vice-versa.

  • digitalWrite(LED_VERDE, ligado ? LOW : HIGH); : O LED será ligado (HIGH) ou desligado (LOW) dependendo do valor da variável ligado.

 

while (digitalRead(TOUCH) == LOW); : O código aguarda até que o sensor de toque seja solto (retorne para HIGH), para evitar um acionamento repetido do LED se o toque for mantido por muito tempo.

delay(50); : Um pequeno delay é usado para "debounce", ou seja, para garantir que o toque não seja lido mais de uma vez em um curto espaço de tempo devido a ruídos ou instabilidades no sinal do sensor.

Diagrama

Arduino touch png

Programa

#define TOUCH 2

#define LED_VERDE 8

 

bool ligado = false; // LED inicia apagado

 

void setup() {

  pinMode(TOUCH, INPUT_PULLUP); // Usa resistor pull-up interno

  pinMode(LED_VERDE, OUTPUT);

  digitalWrite(LED_VERDE, LOW);

}

 

void loop() {

  if (digitalRead(TOUCH) == LOW) { // Se pressionado

    ligado = !ligado; // Alterna o estado

    digitalWrite(LED_VERDE, ligado ? LOW : HIGH); // Atualiza o LED

 

    // Aguarda o botão ser solto para evitar acionamento duplo

    while (digitalRead(TOUCH) == LOW);

    delay(50); // Debounce

  }

}

bottom of page