RoboJax Touch Counter V1 (Basiszähler)
Einleitung
Dieser Leitfaden zeigt, wie man einen einfachen, aber praktischen Touch-Zähler mit einem Arduino und dem TTP223B kapazitiven Touch-Sensormodul baut. Das von Robojax erstellte Projekt bietet eine praktische Einführung in das Lesen digitaler Eingaben und das Verwalten von Zuständen innerhalb eines Mikrocontroller-Programms. Anstelle eines physischen Druckknopfs verwendet dieses Projekt ein berührungsempfindliches Pad, was eine großartige Möglichkeit ist, die kapazitive Sensortechnologie kennenzulernen.




Die Kernfunktionalität ist einfach: Jedes Mal, wenn Sie den Sensor berühren, wird ein Zähler um eins erhöht, und der aktuelle Stand wird im Serial Monitor des Arduino angezeigt. Ein separater Druckknopf wird verwendet, um den Zähler wieder auf null zurückzusetzen. Dieses einfache Projekt kann für eine Vielzahl von Anwendungen in der realen Welt angepasst werden, einschließlich:
- Einen einfachen Personenanzähler für einen Raum oder eine Veranstaltung erstellen.
- Einen Zählwerk für Inventar oder das Zählen von Gegenständen bauen.
- Entwicklung eines touchscreenbasierten Bedienfelds für andere Projekte.
- Lehren der Grundlagen der digitalen Eingabeverarbeitung und Zustandsverwaltung.
Benötigte Hardware
- Arduino-Board (Uno, Nano usw.)
- TTP223B kapazitiver Berührungssensor-Modul
- Drucktaster
- Breadboard und Jumperdrähte
Verdrahtungsanleitung
Die Verdrahtung für dieses Projekt ist sehr einfach und erfordert nur einige Verbindungen. Das TTP223B-Modul hat drei Pins: VCC, GND und OUT (oder SIG). Der Druckknopf hat zwei Pins und wird mit dem internen Pull-up-Widerstand des Arduino verbunden, was den Schaltkreis vereinfacht, da ein externer Widerstand nicht erforderlich ist.
Hier ist das Verbindungsschema:
- TTP223B VCC: Verbinden Sie sich mit dem Arduino's5Vstift.
- TTP223B GNDVerbinden Sie sich mit dem Arduino'sGNDstift.
- TTP223B AUS: Verbinde mit dem digitalen Pin des Arduino2.
- Druckknopf-Pin 1: Verbinden Sie sich mit dem digitalen Pin des Arduino12.
- Tastendruck-Pin 2Verbinden Sie sich mit dem Arduino.GNDstift.
Wie im Video erklärt, ist der Taster so verkabelt, dass der interne Pull-Up-Widerstand des Arduino verwendet wird. Das bedeutet, dass der Pin lesen wirdHIGHwenn der Knopf nicht gedrückt ist undLOWwenn es gedrückt wird, wodurch der Bedarf an einem externen Widerstand entfällt. (im Video bei 03:48)
Code-Erklärung
Der Arduino-Code für dieses Projekt ist prägnant und konzentriert sich auf einige wichtige konfigurierbare Parameter. Sie können dieses Projekt problemlos anpassen, um andere Pins zu verwenden oder die Timings anzupassen, indem Sie die Variablen oben im Sketch ändern.
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 touchtouchPinDieser Konstanten definiert den digitalen Pin, mit dem der OUT-Pin des TTP223B-Touch-Sensors verbunden ist. Sie können die Nummer ändern.2an jeden anderen digitalen Pin (z.B. 3, 4, 5 usw.), wenn Sie eine andere Verkabelung bevorzugen.resetPinDieser Konstanten definiert den digitalen Pin, der mit dem Reset-Knopf verbunden ist. Der Standardwert ist12, aber Sie können es auf einen anderen verfügbaren digitalen Pin ändern.touchDelayDiese Variable legt eine Verzögerung in Millisekunden fest, nachdem ein Berührungsereignis erkannt wurde. Ihr Zweck ist es, den Sensor zu entprellen und mehrere Zählungen von einer einzigen, schnellen Berührung zu verhindern. Ein Wert von10Millisekunden sind ein guter Ausgangspunkt, aber Sie können ihn erhöhen (z. B. auf 100 oder 500), wenn Sie feststellen, dass der Zähler zu schnell hochgezählt wird. (im Video um 02:45)
Diecountvariable ist ein interner Zähler, den Sie nicht ändern sollten. Dersetup()Funktion initialisiert den seriellen Monitor mit einer Baudrate von 9600, die mit der Einstellung im seriellen Monitor deiner Arduino IDE übereinstimmen muss, und setzt die Pin-Modi für den Berührungssensor und die Reset-Taste. Derloop()Die Funktion liest kontinuierlich den Berührungssensor; wenn sie einen erkennt, einHIGHSignal, es erhöht diecountvariable und gibt den neuen Wert an den Serial Monitor aus. Es überprüft auch die Reset-Taste, und wenn es liestLOW, es legt diecountzurück auf null. (im Video bei 04:04)
Live-Projekt-Demonstration
Sobald der Code auf Ihrem Arduino hochgeladen ist, öffnen Sie den Seriellen Monitor (auf 9600 Baud eingestellt). Sie sollten die Nachricht "Robojax Touch Counter" sehen. Jedes Mal, wenn Sie das Metallpad des TTP223B-Moduls berühren, wird der Zähler erhöht und es erscheint eine Nachricht wie "1 Mal berührt." Das Drücken des Reset-Knopfs setzt den Zähler zurück und zeigt "Zähler zurückgesetzt." Das Video demonstriert diesen Prozess mit zwei verschiedenen TTP223B-Modulen und zeigt, dass der Code mit beiden gängigen Varianten funktioniert. (im Video bei 00:49)
Fazit
Dieses Projekt bietet eine solide Grundlage für das Verständnis, wie man mit Berührungssensoren interagiert und einfache Zähler verwaltet. Der Code ist sauber und gut kommentiert, was es einfach macht, ihn für andere Zwecke zu modifizieren. Der Ersteller erwähnt auch zukünftige Variationen, wie zum Beispiel das Hinzufügen einer Begrenzung für die Zählung oder das Auslösen eines Alarms oder Relais nach einer bestimmten Anzahl von Berührungen, was hervorragende nächste Schritte zur Erweiterung Ihrer Fähigkeiten sind. (im Video bei 05:50)
Kapitel
- Einführung in das Touch Counter Projekt
- Hardware-Setup und Verkabelung
- [02:29] Code-Erklärung
- Wie die Schleifenfunktion funktioniert
- [05:50] Fazit und zukünftige Projektideen
++
/*
* 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
}
Dateien📁
Datenblatt (pdf)
-
TTP223-Datenblatt von Taiwan Semiconductor (TONTEK)
TTP223_datasheet.pdf0.27 MB
Andere Dateien
-
TTP223B Benutzerhandbuch
robojax-TTP223B_manual.pdf0.15 MB