RoboJax Contador Táctil V1 (Contador Básico)
Introducción
Esta guía demuestra cómo construir un contador táctil simple pero práctico utilizando un Arduino y el módulo de sensor táctil capacitivo TTP223B. El proyecto, creado por Robojax, proporciona una introducción práctica a la lectura de entradas digitales y la gestión del estado dentro de un programa de microcontrolador. En lugar de un botón físico, este proyecto utiliza una almohadilla sensible al tacto, que es una excelente manera de aprender sobre la tecnología de detección capacitiva.




La funcionalidad principal es sencilla: cada vez que tocas el sensor, un contador se incrementa en uno y el conteo actual se muestra en el Monitor Serial del Arduino. Se utiliza un botón separado para restablecer el contador a cero. Este proyecto simple se puede adaptar a una variedad de aplicaciones del mundo real, incluyendo:
- Creando un contador de personas sencillo para una habitación o evento.
- Construyendo un contador de puntuación para inventario o contar artículos.
- Desarrollando un panel de control basado en táctil para otros proyectos.
- Enseñando los fundamentos de la lectura de entrada digital y la gestión de estados.
Hardware requerido
- Placa Arduino (Uno, Nano, etc.)
- Módulo de sensor táctil capacitivo TTP223B
- Interruptor de botón
- Placa de pruebas y cables jumpers
Guía de cableado
El cableado para este proyecto es muy simple, requiriendo solo algunas conexiones. El módulo TTP223B tiene tres pines: VCC, GND y OUT (o SIG). El botón pulsador tiene dos pines, y se conecta utilizando la resistencia pull-up interna del Arduino, lo que simplifica el circuito al eliminar la necesidad de una resistencia externa.
Aquí está el diagrama de conexión:
- TTP223B VCCConéctate a los Arduino.5Vpina.
- TTP223B GNDConéctate al Arduino.GNDpiñón.
- TTP223B SALIDAConectar al pin digital de Arduino2.
- Botón pulsador Pin 1Conéctate al pin digital de Arduino12.
- Botón de presión Pin 2Conéctate al Arduino.GNDclave.
Como se explica en el video, el botón está conectado para usar la resistencia pull-up interna del Arduino. Esto significa que el pin leeráHIGHcuando el botón no está presionado yLOWcuando se presiona, eliminando la necesidad de una resistencia externa. (en el video a las 03:48)
Explicación del código
El código de Arduino para este proyecto es conciso y se centra en unos pocos parámetros configurables clave. Puedes adaptar fácilmente este proyecto para usar diferentes pines o ajustar el tiempo modificando las variables en la parte superior del boceto.
const int touchPin = 2;// the input pin where touch sensor is connected
const int resetPin = 12;// the input pin for reset button
const int touchDelay = 10;//millisecond delay between each touchtouchPinEsta constante define el pin digital al que está conectado el pin OUT del sensor táctil TTP223B. Puedes cambiar el número.2a cualquier otro pin digital (por ejemplo, 3, 4, 5, etc.) si prefieres una configuración de cableado diferente.resetPinEsta constante define el pin digital conectado al botón de reinicio. El valor predeterminado es12, pero puedes cambiarlo a cualquier otro pin digital disponible.touchDelayEsta variable establece un retraso en milisegundos después de que se detecta un toque. Su propósito es debounciar el sensor y evitar múltiples conteos de un solo toque rápido. Un valor de10milisegundos es un buen punto de partida, pero puedes aumentarlo (por ejemplo, a 100 o 500) si encuentras que el contador se incrementa demasiado rápido. (en el video a las 02:45)
Elcountla variable es un contador interno que no deberías modificar. Elsetup()La función inicializa el Monitor Serial a una velocidad de transmisión de 9600, que debe coincidir con la configuración en el Monitor Serial de tu IDE de Arduino, y establece los modos de pin para el sensor táctil y el botón de reinicio. Elloop()la función lee continuamente el sensor táctil; cuando detecta unHIGHseñal, incrementa elcountvariable e imprime el nuevo valor en el Monitor Serial. También comprueba el botón de reinicio, y si leeLOW, establece elcountde vuelta a cero. (en el video a las 04:04)
Demostración de Proyecto en Vivo
Una vez que el código se haya cargado en tu Arduino, abre el Monitor Serial (configurado a 9600 baudios). Deberías ver el mensaje "Contador Táctil Robojax". Cada vez que toques la almohadilla de metal en el módulo TTP223B, el contador se incrementará y mostrará un mensaje como "Tocado 1 vez." Presionar el botón de reinicio borrará el conteo y mostrará "Contador Reiniciado." El video demuestra este proceso con dos módulos TTP223B diferentes, mostrando que el código funciona con ambas variantes comunes. (en el video a :49)
Conclusión
Este proyecto proporciona una base sólida para entender cómo interactuar con sensores táctiles y gestionar contadores simples. El código es limpio y está bien comentado, lo que facilita su modificación para otros propósitos. El creador también menciona futuras variaciones, como agregar un límite al conteo o activar una alarma o relé después de un número específico de toques, que son excelentes pasos para expandir tus habilidades. (en el video a las 05:50)
Capítulos
- [00:00] Introducción al Proyecto Touch Counter
- [00:49] Configuración de hardware y cableado
- [02:29] Explicación del código
- Cómo funciona la función Loop
- [05:50] Conclusión y Ideas para Proyectos Futuros
++
/*
* This is an Arduino Robojax Touch counter using TTP223/TTP223B.
* This program will function as a counter. Every time the touch module is touched,
* the counter increments by 1.
* We have a reset button to restart the counting from zero.
*
* Watch video instructions for this video: https://youtu.be/zJ-yd4vYn8s
*
* Written by Ahmad Shamshiri on Saturday, October 27th at 2:40 PM in Ajax, Ontario, Canada.
* Get this code from Robojax.com
*
* This code is "AS IS" without warranty or liability. Free to be used as long as you keep this note intact.
* This code has been downloaded from Robojax.com.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
const int touchPin = 2;// the input pin where touch sensor is connected
const int resetPin = 12;// the input pin for reset button
const int touchDelay = 10;//millisecond delay between each touch
int count=0;// variable holding the count number
void setup() {
// Robojax.com Touch counter 20181027
Serial.begin(9600);// initialize serial monitor with 9600 baud
Serial.println("Robojax Touch Counter");
pinMode(touchPin,INPUT);// define a pin for touch module
pinMode(resetPin,INPUT_PULLUP);// define a pin for reset button
// see video ( http://bit.ly/pushbutton-resistor) on using PULLUP
// Robojax.com Touch counter 20181027
}
void loop() {
// Robojax.com Touch counter 20181027
int touchValue = digitalRead(touchPin);// read touchPin and store it in touchValue
// if touchValue is HIGH
if(touchValue == HIGH)
{
count++;// increment the count
Serial.print("Touched ");//print the information
Serial.print(count);//print count
Serial.println(" times.");
delay(touchDelay);// touch delay time
}
// if reset switch is pushed
if(digitalRead(resetPin) == LOW)
{
count =0;// reset the counter;
Serial.println("Counter Resetted.");//print the information
}
// Robojax.com Touch counter 20181027
}
Archivos📁
Hoja de datos (pdf)
-
Hoja de datos TTP223 de Taiwan Semiconductor (TONTEK)
TTP223_datasheet.pdf0.27 MB
Otros archivos
-
Manual del usuario TTP223B
robojax-TTP223B_manual.pdf0.15 MB