Interface do Módulo de Toque Capacitivo de 4 Canais TTP224 com Arduino
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.
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.
Conteudo
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.