RoboJax Touch Counter V1 (Contatore Base)
Introduzione
Questa guida mostra come costruire un contatore tattile semplice ma pratico utilizzando un Arduino e il modulo sensore tattile capacitivo TTP223B. Il progetto, creato da Robojax, offre un'introduzione pratica alla lettura degli ingressi digitali e alla gestione dello stato all'interno di un programma per microcontrollore. Invece di un pulsante fisico, questo progetto utilizza un pad sensibile al tocco, che è un ottimo modo per apprendere la tecnologia di rilevamento capacitivo.




La funzionalità principale è semplice: ogni volta che tocchi il sensore, un contatore incrementa di uno e il conteggio attuale viene visualizzato sul Monitor Seriale dell'Arduino. Un pulsante separato viene utilizzato per ripristinare il conteggio a zero. Questo semplice progetto può essere adattato per una varietà di applicazioni nel mondo reale, tra cui:
- Creare un semplice contatore di persone per una stanza o un evento.
- Costruire un contatore di tallies per l'inventario o per contare articoli.
- Sviluppare un pannello di controllo Touch per altri progetti.
- Insegnare i fondamenti della lettura degli input digitali e della gestione dello stato.
Hardware richiesto
- Scheda Arduino (Uno, Nano, ecc.)
- Modulo sensore tattile capacitivo TTP223B
- Interruttore a pulsante
- Breadboard e fili jumper
Guida all'impianto elettrico
Il cablaggio per questo progetto è molto semplice, richiedendo solo alcune connessioni. Il modulo TTP223B ha tre pin: VCC, GND e OUT (o SIG). Il pulsante ha due pin ed è collegato utilizzando la resistenza di pull-up interna dell'Arduino, il che semplifica il circuito eliminando la necessità di una resistenza esterna.
Ecco il diagramma di collegamento:
- TTP223B VCCCollegati all'Arduino's5Vspilla.
- TTP223B GNDCollegati all'Arduino.GNDpin.
- TTP223B USCITACollegati al pin digitale di Arduino2.
- Pulsante Pin 1Collegati al pin digitale di Arduino12.
- Pulsante Pin 2Collegati all'Arduino.GNDspilla.
Come spiegato nel video, il pulsante è cablato per utilizzare il resistore pull-up interno dell'Arduino. Questo significa che il pin leggeràHIGHquando il pulsante non è premuto eLOWquando viene premuto, eliminando la necessità di un resistore esterno. (nel video al 03:48)
Spiegazione del codice
Il codice Arduino per questo progetto è conciso e si concentra su alcuni parametri configurabili chiave. Puoi facilmente adattare questo progetto per utilizzare pin diversi o regolare il timing modificando le variabili nella parte superiore dello sketch.
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 touchtouchPinQuesto costante definisce il pin digitale a cui è collegato il pin OUT del sensore touch TTP223B. Puoi cambiare il numero.2su qualsiasi altro pin digitale (ad esempio, 3, 4, 5, ecc.) se preferisci una configurazione di cablaggio diversa.resetPinQuesto costante definisce il pin digitale collegato al pulsante di reset. Il valore predefinito è12, ma puoi cambiarlo con qualsiasi altro pin digitale disponibile.touchDelayQuesta variabile imposta un ritardo in millisecondi dopo che un tocco è stato rilevato. Il suo scopo è quello di attutire il sensore e prevenire conteggi multipli da un singolo tocco veloce. Un valore di10I millisecond sono un buon punto di partenza, ma puoi aumentarlo (ad es., a 100 o 500) se scopri che il contatore si sta incrementando troppo rapidamente. (nel video alle 02:45)
Ilcountla variabile è un contatore interno che non dovresti modificare. Ilsetup()funzione inizializza il Monitor Seriale a un baud rate di 9600, che deve corrispondere all'impostazione nel Monitor Seriale del tuo Arduino IDE, e imposta le modalità dei pin per il sensore tattile e il pulsante di reset. Illoop()La funzione legge continuamente il sensore di tocco; quando rileva unHIGHsegnale, incrementa ilcountvariabile e stampa il nuovo valore sul Monitor Seriale. Controlla anche il pulsante di reset e, se leggeLOW, imposta ilcounttorna a zero. (nel video alle 04:04)
Dimostrazione del Progetto dal Vivo
Una volta caricato il codice sulla tua Arduino, apri il Monitor Seriale (impostato a 9600 baud). Dovresti vedere il messaggio "Robojax Touch Counter". Ogni volta che tocchi il pad metallico sul modulo TTP223B, il contatore incrementerà e stamperà un messaggio come "Toccato 1 volta." Premendo il pulsante di reset si azzererà il conteggio e stamperà "Contatore resettato." Il video dimostra questo processo con due diversi moduli TTP223B, mostrando che il codice funziona con entrambe le varianti comuni. (nel video a :49)
Conclusione
Questo progetto fornisce una solida base per comprendere come interfacciarsi con i sensori tattili e gestire contatori semplici. Il codice è pulito e ben commentato, rendendo facile modificarlo per altri scopi. Il creatore menziona anche future variazioni, come l'aggiunta di un limite al conteggio o l'attivazione di un allarme o di un relè dopo un numero specifico di tocchi, che sono eccellenti passi successivi per espandere le proprie abilità. (nel video alle 05:50)
Capitoli
- Introduzione al Progetto Touch Counter
- [00:49] Configurazione hardware e cablaggio
- [02:29] Spiegazione del Codice
- Come funziona la funzione Loop
- [05:50] Conclusione e Idee per Progetti Futuri
++
/*
* 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
}
File📁
Scheda tecnica (pdf)
-
Datasheet TTP223 di Taiwan Semiconductor (TONTEK)
TTP223_datasheet.pdf0.27 MB
Altri file
-
Manuale utente TTP223B
robojax-TTP223B_manual.pdf0.15 MB