Proyecto 22b – Teclado táctil capacitivo TPP224 – Parte 2

Esta es la segunda parte del proyecto con el módulo TTP224, el cual es un teclado táctil capacitivo tpp224 de 4 tecla, en el cual interactuaremos con un LED RGB de cátodo común.

Módulo de teclado capacitivo TTP224

Sensor táctil capacitivo TPP224

El módulo táctil capacitivo TTP224 es un sensor capacitivo táctil de 4 canales y está basado en el integrado TTP224 de Tonek Design Technology, consta de 4 sensores táctiles que al tocarlos encienden un LED y envían una señal digital a nuestro Arduino o al microcontrolador que estemos usando, también podría utilizare como pulsadores. Este CI de detección táctil está diseñado para ser usados en lugar de los pulsadores tradicionales. Es ideal para utilizar en cualquier lugar donde sea necesario el toque humano con poca o ninguna fuerza.

En un módulo bastante práctico y muy fácil para hacer interfaz con el Arduino, básicamente es alimentar el módulo y un pin del Arduino por cada pin de salida del teclado,hay que tener en cuenta esto según el proyecto, porque utilizaría 4 pines del Arduino y en modelos con más teclas, usaría más pines, ahí seria bueno utilizar mejor los modelos que tiene Adafruit o Sparkfun que tiene conexión por I2C o SPI.

Este módulo tiene 6 pines o terminales, también tiene un terminal VCC y un GND, para alimentar el módulo y posee otros 4 terminales para la salida de las 4 teclas, OUT1-OUT4. Utiliza el integrado TTP224 para controlarlo y 4 LED para monitorizar cuando se presiona cada tecla.

Especificaciones:

  • Voltaje de operación: 2.4 – 5V
  • Tiempo de respuesta: 100ms
  • Número de canales: 4
  • Temperatura de funcionamiento: -20 °C a 80 °C

Componentes

  • Arduino UNO o placa compatible
  • Protoboard o placa de pruebas
  • Módulo de teclado táctil capacitivo TTP224
  • Cables o Jumpers
  • 1 LED RGB
  • 3 resistencia de 220Ω
TTP 224 + LED RGB

El teclado táctil capacitivo TTP224 es de muy fácil conexión ya que tiene un pin por cada tecla y los dos conectores de alimentación . En el diagrama anterior se ve un esquema de conexiones bastante simple, mirando de derecha a izquierda el módulo veremos los pines de salida. El pin OUT1 se conectará al pin 4 del Arduino, de igual manera el OUT2 se conectará al pin 5 del Arduino, OUT3 se conectará al pin 6 del Arduino, OUT4 se conectará al pin 7 del Arduino. Luego vamos con las conexiones de energía del módulo, luego sigue el pin GND del módulo que irá a tierra del Arduino y por último el pin VCC que irá al pin de 5V del Arduino.

Por otro lado las conexiones del LED RGB serian las siguientes el primer pin el R se conectará al pin 9 del Arduino. El siguiente pin es el cátodo común que irá el GND del Arduino, el pin G del led se conectará al pin 10 del Arduino. Por último el pin B del LED se conectará al pin 11 del Arduino.

Pin módulo TTP224Pin Arduino
OUT14
OUT25
OUT36
OUT47
GNDGND
VCC5V
Pin LED RGBPin Arduino
R9
G10
B11
GND

Código

El código para este proyecto es en cierto modo es bastante simple.

//Pines de las teclas
#define pinTecla1 4 
#define pinTecla2 5
#define pinTecla3 6
#define pinTecla4 7

//Los pines RGB deben ser PWM
#define LED_R 9 
#define LED_G 10
#define LED_B 11

int Red = 0, Blue = 0, Green = 0; 
bool estadoBoton1, estadoBoton2, estadoBoton3, estadoBoton4; 


void setup()
{
  pinMode(pinTecla1, INPUT);
  pinMode(pinTecla2, INPUT);
  pinMode(pinTecla3, INPUT);
  pinMode(pinTecla4, INPUT);

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

void loop()
{
  estadoBoton1 = digitalRead(pinTecla1); 
  estadoBoton2 = digitalRead(pinTecla2);
  estadoBoton3 = digitalRead(pinTecla3);
  estadoBoton4 = digitalRead(pinTecla4);

  analogWrite(LED_R, Red); 
  analogWrite(LED_G, Green);
  analogWrite(LED_B, Blue);

  if (estadoBoton1 == HIGH)
    Red += 20;
  if (Red >= 255)
    Red = 0;

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

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

  if (estadoBoton4 == HIGH)
  { 
    Red = 0;
    Green = 0;
    Blue = 0;
  }
  delay(100); 
}

Explicación del código

Comenzaremos a revisar el código, primero vamos a ver las declaraciones de las variables.

//Pines de las teclas
#define pinTecla1 4 
#define pinTecla2 5
#define pinTecla3 6
#define pinTecla4 7

//Los pines RGB deben ser PWM
#define LED_R 9 
#define LED_G 10
#define LED_B 11

int Red = 0, Blue = 0, Green = 0; 
bool estadoBoton1, estadoBoton2, estadoBoton3, estadoBoton4; 

En proyectos anteriores hemos declarado variables y constantes para ser asignadas a los pines de Arduino en cambio aquí utilizaremos otro método de hacer estas declaraciones, donde utilizaremos la palabra reservada «#define», la cual sirve para declarar constantes y la vamos a utilizar en cambio de el «const», que veníamos utilizando .

Entonces vamos comenzar con las primeras declaraciones las 4 primeras líneas son las constantes que utilizaremos para los pines de las 4 teclas del teclado, #define pinTecla1 4 aquí definimos la constante pinTecla1 que utilizará el pin 4 del Arduino, luego #define pinTecla2 5 donde definimos la constante pinTecla2 que utilizará el pin 5 del Arduino, la siguiente definición #define pinTecla3 6 definimos la constante pinTecla3 que utilizará el pin 6 del Arduino y por ultimo #define pinTecla4 7 aquí definimos la constante pinTecla4 que utilizará el pin 7 del Arduino.

Ahora vienen las definiciones de las constantes de los pines del LED RGB, #define LED_R 9, definimos las constante LED_R a la que asignamos un 9, el cual será el pin del Arduino que utilizaremos para el color rojo, luego vemos #define LED_G 10, definimos las constante LED_G a la que asignamos un 10, el cual será el pin del Arduino que utilizaremos para el color verde y por último tenemos #define LED_B 11, definimos las constante LED_B a la que asignamos un 11, el cual será el pin del Arduino que utilizaremos para el color azul.

Al seguir revisando el código, vemos en la siguiente línea que declaramos las variables donde vamos a guardar el valor de la intensidad de los colores, int Red = 0, Blue = 0, Green = 0; las cuales las hemos inicializado en 0.

Para finalizar la función setup, nos queda la última línea de la declaración de variables, bool estadoBoton1, estadoBoton2, estadoBoton3, estadoBoton4; en la cual declaramos 4 variables de tipo booleano , es decir que solo almacenan o 1 o 0, las cuales utilizaremos mas adelante para guardar el estado el cada una de las teclas.

Función setup()

pinMode(pinTecla1, INPUT);
pinMode(pinTecla2, INPUT);
pinMode(pinTecla3, INPUT);
pinMode(pinTecla4, INPUT);

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

En el setup lo primero que vamos a ver es que establecemos los 4 pines donde están conectadas las teclas de nuestro módulo como pines de entrada pinMode(pinTecla1, INPUT), pinMode(pinTecla2, INPUT), pinMode(pinTecla3, INPUT) y por último pinMode(pinTecla2, INPUT). En la siguiente parte establecemos los 3 pines que van a los pines del LED RGB como pines de salida, pinMode(LED_R, OUTPUT), pinMode(LED_G, OUTPUT), pinMode(LED_B, OUTPUT).

Función loop()

estadoBoton1 = digitalRead(pinTecla1); 
estadoBoton2 = digitalRead(pinTecla2);
estadoBoton3 = digitalRead(pinTecla3);
estadoBoton4 = digitalRead(pinTecla4);

analogWrite(LED_R, Red); 
analogWrite(LED_G, Green);
analogWrite(LED_B, Blue);

if (estadoBoton1 == HIGH)
  Red += 20;
if (Red >= 255)
  Red = 0;

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

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

if (estadoBoton4 == HIGH)
{ 
  Red = 0;
  Green = 0;
  Blue = 0;
}
delay(100); 

Como bien sabemos en la función loop es el lugar donde esta el código que siempre va a repetirse mientras esté encendido nuestro Arduino. Esta parte es bastante simple, primero encontramos estadoBoton1 = digitalRead(pinTecla1) donde le asignamos a estadoBoton1 la lectura de si se presiona o no la tecla 1, igualmente pasa en la segunda línea estadoBoton2 = digitalRead(pinTecla2), donde le asignamos a estadoBoton2 la lectura de la tecla 2, de igual forma pasa en la tercera línea estadoBoton3 = digitalRead(pinTecla3), donde le asignamos a estadoBoton3 la lectura de la tecla 3, de igual modo pasa en la cuarta línea estadoBoton4 = digitalRead(pinTecla4), donde le asignamos a estadoBoton4 la lectura de la tecla 4.

En el siguiente bloque encontramos la línea analogWrite(LED_R, Red), la cual le asigna el valor de la variable red al LED_R, es decir al LED rojo. La siguiente línea es analogWrite(LED_G, Green) que asignará el valor que tiene la variable Green al LED_G. La línea analogWrite(LED_B, Blue) a igual que las anteriores asignará a la varaible LED_B el contendio de la variable Blue.

Para hacer un poco más fácil para entender vamos a dividir el código restante en 4 bloques, uno por cada una de las teclas.

// Tecla 1 que controla el color rojo
if (estadoBoton1 == HIGH)
  Red += 20;
if (Red >= 255)
  Red = 0;

Como vimos anteriormente la variable estadoBoton1 almacena el estado de la tecla 1. En este bloque lo primero que encontramos es la condicional if (estadoBoton1 == HIGH), donde si se cumple que el estadoboton1 es un 1 (HIGH), incrementa el valor de Red en 20 Red+=20, lo que haría que el brillo del color rojo sea más intenso.

Luego encontramos otra condicional, if (Red >= 255) donde evaluamos si la variable Red es mayor o igual a 255, al cumplirse esta condición la variable Red vuelve a ser 0, Red=0.

// Tecla 2 que controla el color verde
if (estadoBoton2 == HIGH)
  Green += 20;
if (Green >= 255)
  Green = 0;

De igual manera la variable estadoBoton2 almacena el estado de la tecla 2. En este bloque lo primero que encontramos es la condicional if (estadoBoton2 == HIGH), donde si se cumple que el estadoboton2 es un 1 (HIGH), incrementa el valor de Green en 20 Green+=20, lo que haría que el brillo del color verde sea más intenso.

Luego encontramos otra condicional, if (Green>= 255) donde evaluamos si la variable Green es mayor o igual a 255, al cumplirse esta condición la variable Green vuelve a ser 0, Green=0

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

Lo mismo sucede con la variable estadoBoton3, que almacena el estado de la tecla 3. En este bloque lo primero que encontramos es la condicional if (estadoBoton3 == HIGH), donde si se cumple que el estadoboton3 es un 1 (HIGH), incrementa el valor de Blue en 20 Blue+=20, lo que haría que el brillo del azul verde sea más intenso.

Luego encontramos otra condicional, if (Blue>= 255) donde evaluamos si la variable Bluees mayor o igual a 255, al cumplirse esta condición la variable Blue vuelve a ser 0, Green=0

if (estadoBoton4 == HIGH)
{ 
  Red = 0;
  Green = 0;
  Blue = 0;
}

En este último bloque de código revisamos si estadoboton4 es un 1 (HIGH) if (estadoBoton4 == HIGH), si se cumple la condición, entonces establece la variable Red en 0, la variable Green en 0 y la variable Blue en 0, para efectos prácticos apaga el LED RGB.

Para terminar vemos las última línea, en la que hacemos una pausa de 100 milisegundos. delay(100).

Resumen

En el proyecto utilizaremos el módulo de teclado táctil capacitivo TTP224 de 4 teclas para controlar el brillo de un LED RGB.

  • Tecla 1 controlamos el color rojo.
  • Tecla 2 controlamos el color verde.
  • Tecla 3 controlamos la tecla azul
  • Tecla 4 reiniciamos los valores del brillo de los 3 colores, de tal modo que el LED se apaga completamente.

En el caso de que no se posea un LED RGB de cátodo común se pueden utilizar 3 LED diferentes .


Deja un comentario

Este sitio está protegido por reCAPTCHA y se aplican la política de privacidad y los términos de servicio de Google.