Interface do Módulo de Toque Capacitivo de 4 Canais TTP224 com Arduino

Tempo de leitura: 4 minutes

Neste tutorial iremos fazer a interface do módulo de botões Capacitive Touch com a placa Arduino Uno, e como exemplo iremos controlar um LED RGB, controlar os valores de cores usando diferentes botões do módulo, claro que isso pode ser usado posteriormente para controlar o que você quiser.

Sensor de toque capacitivo de 4 canais

Este é o módulo que possui 4 pinos para as diferentes saídas, elas são digitais, e para a alimentação pode ser alimentado por 3,3V ou 5V do Arduino.

O módulo possui 4 LEDs embutidos, eles acendem sempre que o respectivo botão é tocado, e você pode tocar vários ao mesmo tempo.

Teste 1

O Teste 1 é uma interface direta com a placa Arduino Uno, e vamos verificar os estados dos botões no monitor serial.

Ligação

Qualquer pino digital pode ser usado com as saídas do módulo

 

Código

/* Este código funciona com módulo de botões de toque capacitivo de 4 canais ou 4 botões / interruptores
*  Mostra o estado atual dos botões no monitor serial
*/
  
#define Button1 2 //Buttons pins
#define Button2 3
#define Button3 4
#define Button4 5

bool Button1_State, Button2_State, Button3_State, Button4_State; //Buttons states

String Data; // Para reagrupar as estatísticas a serem exibidas no monitor serial

void setup() {
  
  Serial.begin(9600);     
  pinMode(Button1,INPUT); 
  pinMode(Button2,INPUT);
  pinMode(Button3,INPUT);
  pinMode(Button4,INPUT);
  
}

void loop() {
  
  Button1_State = digitalRead(Button1); // Lendo diferentes estados atuais e armazenando-os
  Button2_State = digitalRead(Button2);
  Button3_State = digitalRead(Button3);
  Button4_State = digitalRead(Button4);

  Data = String(Button1_State) + "\t" + String(Button2_State) + "\t" + String(Button3_State) + "\t" + String(Button4_State); // Reagrupar e converter em string

  Serial.println(Data); // Exibir no monitor serial
  
}

 

Resultado

Os estados dos botões são exibidos como 0/1 no monitor serial.

Teste 2

Neste teste, vamos adicionar um LED RGB, aqui estou usando um cátodo comum.

Ligação

Preste atenção ao LED RGB, ele deve ser conectado apenas com os pinos PWM (~) e o GND.

 

Código

/* Este código funciona com módulo de botões de toque capacitivo de 4 canais ou 4 botões / interruptores e um LED RGB
 * Ele controla os valores de cores de um LED RGB e exibe os valores atuais no monitor serial
 */

#define Button1 2 
#define Button2 3
#define Button3 4
#define Button4 5

#define LED_R 9   // Pinos RGB devem ser pwm
#define LED_G 10
#define LED_B 11

int Red=0, Blue=0, Green=0; // Valores de cor a serem afetados pelo RGB

bool Button1_State, Button2_State, Button3_State, Button4_State; // Armazena os estados dos botões

void setup() {
  
  Serial.begin(9600);       
  
  pinMode(Button1,INPUT);   
  pinMode(Button2,INPUT);
  pinMode(Button3,INPUT);
  pinMode(Button4,INPUT);

  pinMode(LED_R,OUTPUT);     
  pinMode(LED_G,OUTPUT);
  pinMode(LED_B,OUTPUT);
  
}

void loop() {

  Serial.print(Red);     // Exibe os valores das cores no monitor serial
  Serial.print("\t");
  Serial.print(Green);
  Serial.print("\t");
  Serial.println(Blue);
  
  
  Button1_State = digitalRead(Button1); // Leia os estados dos botões
  Button2_State = digitalRead(Button2);
  Button3_State = digitalRead(Button3);
  Button4_State = digitalRead(Button4);

  analogWrite(LED_R,Red);       // Escreva os valores no RGB
  analogWrite(LED_G,Green);
  analogWrite(LED_B,Blue);

  if(Button1_State == HIGH)   //Botão 1 controla o VERMELHO, 2 Verde e 3 Azul
     Red+= 20;                //Cada vez que você pressiona, o valor é incrementado em 20; você pode alterar como quiser
  if(Red >= 255)              //Se exceder o limite, será trazido de volta para 0
     Red=0;

   if(Button2_State == HIGH)
   Green+= 20;
  if(Green >= 255)
   Green=0;

   if(Button3_State == HIGH)
   Blue+= 20;
   if(Blue >= 255)
   Blue=0;

   if(Button4_State == HIGH){ //Button 4 resets the value to 0
      Red=0;
      Green=0;
      Blue=0;
   }
   delay(100); //Para evitar que um toque seja contado como 10 ou mais, embora 100 seja muito grande, você pode reduzi-lo e testar
}

Resultados

Os valores (brilho) continuam aumentando até atingir o máximo e zerar de 0.

E, claro, você pode misturar as cores

Portanto, se você continuar tocando no botão, isso contará como toques múltiplos.