RoboJax Compteur Tactile V1 (Compteur de base)
Introduction
Ce guide montre comment construire un compteur tactile simple mais pratique en utilisant un Arduino et le module de capteur tactile capacitif TTP223B. Le projet, créé par Robojax, offre une introduction pratique à la lecture d'entrées numériques et à la gestion des états dans un programme de microcontrôleur. Au lieu d'un bouton poussoir physique, ce projet utilise un pavé tactile, ce qui est un excellent moyen d'apprendre la technologie de détection capacitive.




La fonctionnalité principale est simple : chaque fois que vous touchez le capteur, un compteur s'incrémente de un, et le compte actuel est affiché sur le moniteur série de l'Arduino. Un bouton-poussoir séparé est utilisé pour réinitialiser le compte à zéro. Ce projet simple peut être adapté pour une variété d'applications du monde réel, y compris :
- Créer un simple compteur de personnes pour une pièce ou un événement.
- Construire un compteur de tally pour l'inventaire ou le comptage d'objets.
- Développer un panneau de contrôle tactile pour d'autres projets.
- Enseigner les fondamentaux de la lecture d'entrées numériques et de la gestion des états.
Matériel requis
- Carte Arduino (Uno, Nano, etc.)
- Module de capteur tactile capacitif TTP223B
- Interrupteur à bouton-poussoir
- Plaque de prototypage et fils de connexion
Guide de câblage
Le câblage pour ce projet est très simple, nécessitant seulement quelques connexions. Le module TTP223B a trois broches : VCC, GND et OUT (ou SIG). Le bouton-poussoir a deux broches et est connecté en utilisant la résistance pull-up interne de l'Arduino, ce qui simplifie le circuit en éliminant le besoin d'une résistance externe.
Voici le schéma de connexion :
- TTP223B VCC: Connectez-vous à l'Arduino.5Vbroche.
- TTP223B GND: Connectez-vous à l'ArduinoGNDépingler.
- TTP223B SORTIEConnectez-vous à la broche numérique Arduino2.
- Bouton-poussoir Pin 1Connectez-vous à la broche numérique Arduino12.
- Bouton-poussoir Pin 2Connectez-vous à l'Arduino.GNDépinglera.
Comme expliqué dans la vidéo, le bouton-poussoir est câblé pour utiliser la résistance de tirage interne de l'Arduino. Cela signifie que la broche liraHIGHlorsque le bouton n'est pas pressé etLOWlorsqu'il est enfoncé, éliminant le besoin d'une résistance extérieure. (dans la vidéo à 03:48)
Explication du code
Le code Arduino pour ce projet est concis et se concentre sur quelques paramètres configurables clés. Vous pouvez facilement adapter ce projet pour utiliser des broches différentes ou ajuster le timing en modifiant les variables en haut du croquis.
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 touchtouchPinCette constante définit la broche numérique à laquelle la broche OUT du capteur tactile TTP223B est connectée. Vous pouvez changer le numéro.2à n'importe quelle autre broche numérique (par exemple, 3, 4, 5, etc.) si vous préférez une configuration de câblage différente.resetPinCette constante définit la broche numérique connectée au bouton de réinitialisation. La valeur par défaut est12, mais vous pouvez le changer en n'importe quelle autre broche numérique disponible.touchDelayCette variable définit un délai en millisecondes après qu'un toucher ait été détecté. Son but est de déparasiter le capteur et d'éviter les comptages multiples provenant d'un seul toucher rapide. Une valeur de10les millisecondes sont un bon point de départ, mais vous pouvez les augmenter (par exemple, à 100 ou 500) si vous constatez que le compteur s'incrémente trop rapidement. (dans la vidéo à 02:45)
Lecountla variable est un compteur interne que vous ne devez pas modifier. Lesetup()La fonction initialise le Moniteur Série à une vitesse de transmission de 9600, qui doit correspondre au réglage dans le Moniteur Série de votre IDE Arduino, et définit les modes de pin pour le capteur tactile et le bouton de réinitialisation.loop()la fonction lit en continu le capteur tactile ; lorsqu'elle détecte unHIGHsignal, il incrémente lecountvariable et imprime la nouvelle valeur sur le Moniteur Série. Il vérifie également le bouton de réinitialisation, et s'il litLOW, cela fixe lecountretour à zéro. (dans la vidéo à 04:04)
Démonstration de projet en direct
Une fois le code téléchargé sur votre Arduino, ouvrez le Moniteur Série (réglé sur 9600 bauds). Vous devriez voir le message "Robojax Touch Counter". Chaque fois que vous touchez la plaque métallique du module TTP223B, le compteur s'incrémente et affiche un message comme "Touché 1 fois". En appuyant sur le bouton de réinitialisation, le compteur sera réinitialisé et affichera "Compteur Réinitialisé". La vidéo démontre ce processus avec deux modules TTP223B différents, montrant que le code fonctionne avec les deux variantes communes. (dans la vidéo à 00:49)
Conclusion
Ce projet fournit une base solide pour comprendre comment interagir avec des capteurs tactiles et gérer des compteurs simples. Le code est propre et bien commenté, ce qui le rend facile à modifier pour d'autres usages. Le créateur mentionne également des variations futures, telles que l'ajout d'une limite au compte ou le déclenchement d'une alarme ou d'un relais après un nombre spécifique de touches, qui sont d'excellentes prochaines étapes pour élargir vos compétences. (dans la vidéo à 05:50)
Chapitres
- [00:00] Introduction au projet Touch Counter
- [00:49] Configuration du matériel et câblage
- [02:29] Explication du code
- [04:04] Comment fonctionne la fonction boucle
- [05:50] Conclusion et idées de projets futurs
++
/*
* 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
}
Fichiers📁
Fiche technique (pdf)
-
Fiche technique TTP223 par Taiwan Semiconductor (TONTEK)
TTP223_datasheet.pdf0.27 MB
Autres fichiers
-
Manuel utilisateur TTP223B
robojax-TTP223B_manual.pdf0.15 MB