RoboJax Touch Counter V3 Verwendung des TM1637 4-stelligen LED-Displays
```html

RoboJax Touch Counter V3 Verwendung des TM1637 4-Stellen LED-Displays
Dieses Projekt demonstriert, wie man einen Touch-Zähler mit einem TTP223-Touch-Sensor und einem TM1637 4-stelligen LED-Display baut. Jeder Touch erhöht den Zähler, der auf der LED angezeigt wird. Ein Reset-Button ermöglicht das Zurücksetzen des Zählers auf null. Dieses einfache Projekt bietet eine Grundlage für verschiedene Anwendungen und ist eine großartige Einführung in die Schnittstelle von Sensoren und Displays mit Arduino.
Hier sind einige Projektideen mit diesem Touch-Zähler:
- Einfacher Zähler für Veranstaltungen oder Inventar.
- Rundenanzähler für Rennen oder Spiele.
- Besucherzähler für Ausstellungen oder Räume.
- Wiederholungszähler für Trainingsroutinen.
Hardware/Komponenten
- Arduino Uno (oder kompatible Platine)
- TTP223 oder TTP223B Touch-Sensormodul
- TM1637 4-stellige LED-Display-Modul
- Drucktaste (zum Zurücksetzen)
- Jumperdrähte
- Breadboard (optional)
Verkabelungsanleitung
Für den TTP223-Berührungssensor:
- VCC zu Arduino 5V
- GND zu Arduino GND
- SIG/IO/AUS an Arduino-Pin 2 (kann im Code geändert werden)
Für das TM1637-Display:
- VCC zu Arduino 5V
- GND zu Arduino GND
- CLK an Arduino-Pin 10
- DIO zu Arduino Pin 11
Für die Zurücksetzen-Taste:
- Ein Bein zu Arduino GND
- Anderes Bein zu Arduino-Pin 12 (kann im Code geändert werden)
Code-Erklärung
Dieser Entwurf verwendet dieTM1637Bibliothek. Installieren Sie sie über den Bibliotheksmanager der Arduino IDE.
Wichtig konfigurierbare Elemente im Code:
#define CLK 10 // clock pin
#define DIO 11 // data in-out pin
const int touchPin = 2; // touch sensor pin
const int resetPin = 12; // reset button pin
const int touchDelay = 500; // delay between touches (in ms) (in video at 04:15)
Passen Sie diese Pin-Definitionen an, wenn Sie andere Pins verwenden. DertouchDelayDie Variable (im Video bei 04:15) verhindert Mehrfachzählungen durch eine einzelne Berührung. Ein Spannungsteiler ist für den Tastsensor oder den Rücksetztaster nicht notwendig, da der interne Pull-up-Widerstand des Arduino für den Rücksetztaster verwendet wird und das Modul des Tastensors seine eigene Spannungsregelung übernimmt.
Die folgenden Zeilen initialisieren den seriellen Monitor und setzen den anfänglichen Anzeigezustand:
Serial.begin(9600);
display.setBrightness(0x0f); // Set brightness (0x00 to 0x0f) (in video at 05:24)
display.showNumberDec(0); // Initial display value
Die Hauptschleife liest die Zustände des Touchsensors und des Reset-Buttons. Wenn der Touchsensor aktiviert wird, erhöht sich der Zähler und wird angezeigt. Wenn der Reset-Button gedrückt wird, wird der Zähler auf null zurückgesetzt.
Live-Projekt/Demonstration
Die Demonstration zeigt, wie der Zähler bei jedem Berühren erhöht wird und beim Drücken der Taste zurückgesetzt wird. Der serielle Monitor zeigt ebenfalls die aktuelle Zählung an. Die anfängliche "8888" auf dem Display bestätigt, dass das Display korrekt funktioniert.
Kapitel
- [00:00] Einführung und Projektübersicht.
- [00:34] Komponenten und Erklärung.
- [02:41] Code-Erklärung.
- [07:54] Verdrahtungsanweisungen.
- [09:27] Projektvorführung.
```
/*
* This is Arduino touch counter V3 using TTP223/TTP223B and TM1637 seven-segment LED Display.
* This program will function as a counter. Every time the touch module is touched,
* the counter increments by 1. The count number is displayed on the TM1637 display.
* We have a reset button to restart the counting from zero.
*
* Watch video instructions for this video: https://youtu.be/VzH9iEqrm0E
*
* Written by Ahmad Shamshiri on Sunday, October 28th at 10:33 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/>.
*/
//***** beginning of TM1637 Display
#include <Arduino.h>
#include <TM1637Display.h>
// Module connection pins (Digital Pins)
#define CLK 10 // clock pin
#define DIO 11 // data in-out pin
// The amount of time (in milliseconds) between readings
#define TEST_DELAY 300
TM1637Display display(CLK, DIO);
uint8_t blank[] = { 0x0, 0x0, 0x0, 0x0 };// data to clear the screen
//***** end of TM1637 Display
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 = 500;//millisecond delay between each touch
int count=0;// variable holding the count number
void setup() {
// Robojax.com Touch counter 20181029
Serial.begin(9600);// initialize serial monitor with 9600 baud
Serial.println("Robojax Touch Counter V3");
pinMode(touchPin,INPUT);// define a pin for touch module
pinMode(resetPin,INPUT_PULLUP);// define a pin for reset button
// see video ( link in the video description) on using PULLUP
display.setBrightness(0x0f);// set brightness of display
uint8_t data8888[] = { 0xff, 0xff, 0xff, 0xff }; // all segments show
display.setSegments(data8888); // display 8888 on display for test
delay(3000);// give time to user to read the display at the beginning
display.setSegments(blank); // clear the screen from previous values
display.showNumberDec(0);// display zero at the belonging
// Robojax.com Touch counter 20181029
}
void loop() {
// Robojax.com Touch counter 20181029
int touchValue = digitalRead(touchPin);// read touchPin and store it in touchValue
// if touchValue is HIGH
if(touchValue == HIGH)
{
count++;// increment the count
display.setSegments(blank); // clear the screen from previous values
display.showNumberDec(count);// display 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
display.setSegments(blank); // clear the screen from previous values
display.showNumberDec(count);// display the count
}
// Robojax.com Touch counter 20181029
}
Dinge, die Sie vielleicht brauchen
-
Amazon
-
Amazon
-
eBay
-
AliExpressTM1637 4-digit 7-segment display on AliExpresss.click.aliexpress.com
Dateien📁
Arduino-Bibliotheken (zip)
-
TM1637 Arduino-Bibliothek
TM1637_library.zip1.36 MB
Fritzing-Datei
-
TM1637 Sieben-Segment-Modul
TM1637.fzpz0.01 MB -
TM1637 4-stelliges Sieben-Segment-Display
TM1637-1.fzpz0.01 MB
|||Benutzerhandbuch
-
TM1637 Display Handbuch
robojax-TM1637_display_manual.pdf0.31 MB