TTP224 4-kanaals capacitieve aanraking Arduino basiscode
Deze tutorial leidt je door het gebruik van de TTP224 4-kanaals capacitieve touchsensor met een Arduino. De TTP224 stelt je in staat om een eenvoudige touchinterface te creëren die LED's kan laten oplichten op basis van welke knop wordt ingedrukt. Aan het einde van dit project heb je een werkend systeem waarbij het aanraken van elk van de vier knoppen een overeenkomstige LED inschakelt en berichten op de seriële monitor weergeeft.

In deze opstelling wordt, wanneer een knop wordt ingedrukt, de overeenkomstige uitgangspin op de Arduino geactiveerd, waardoor een LED gaat branden. Je ziet ook een bericht in de seriële monitor dat aangeeft welke knop is aangeraakt. Dit project is ideaal voor beginners die meer willen leren over capacitieve touchtechnologie en basisprogrammering met Arduino. Voor meer details, bekijk zeker de video op 2:30.
Hardware Uitgelegd
Het belangrijkste onderdeel van dit project is de TTP224 capacitieve touchsensor. Deze beschikt over vier touchgevoelige knoppen, waardoor eenvoudige interactie mogelijk is zonder mechanische schakelaars. Wanneer een knop wordt aangeraakt, geeft de sensor een hoog signaal af op de overeenkomstige uitgangspin. Dit maakt het eenvoudig om verbinding te maken met andere apparaten zoals LED's of relais.
Naast de TTP224 heb je een Arduino-bord nodig om de touchinput te verwerken en de LED's aan te sturen. De Arduino leest de uitgangspinnen van de sensor en activeert de LED's dienovereenkomstig. Deze opstelling kan ook worden uitgebreid voor complexere toepassingen, zoals het aansturen van een relais of het creëren van een beveiligingssysteem met slot.
Datasheet Details
| Fabrikant | TonTouch |
|---|---|
| Onderdeelnummer | TTP224 |
| Logica/IO-spanning | 2,5–5,5 V |
| Uitgangsstroom (per kanaal) | 10 mA max |
| Piekstroom (per kanaal) | 20 mA max |
| Reactietijd | 10 ms (typ.) |
| Behuizing | 8-DIP |
- Zorg ervoor dat de voeding stabiel is binnen het gespecificeerde bereik.
- Gebruik pull-down weerstanden indien nodig om zwevende toestanden te voorkomen.
- Houd de sensor uit de buurt van storingsbronnen zoals sterke elektromagnetische velden.
- Overweeg een debounce-vertraging te gebruiken om valse triggers te voorkomen.
- Test de touchgevoeligheid en pas de omgeving aan voor optimale prestaties.
Bedradingsinstructies

Om de TTP224 op de Arduino aan te sluiten, begin je met het verbinden van de voeding en aarde. Verbind de VCC-pin van de TTP224 met de 5V-pin op de Arduino, en de GND-pin met een aardingspin op de Arduino. Verbind vervolgens de uitgangspinnen van de TTP224 met de digitale pinnen van de Arduino. Specifiek: verbind uitgangspin 1 met pin 2, uitgangspin 2 met pin 3, uitgangspin 3 met pin 4 en uitgangspin 4 met pin 5 op de Arduino.
Voor de LED's verbind je de anodes (langere pinnen) van elke LED met respectievelijk Arduino-pinnen 10, 11, 12 en 13. Verbind de kathodes (kortere pinnen) van de LED's met aarde via een weerstand (typisch 220Ω) om de stroom te beperken. Deze opstelling stelt de Arduino in staat om elke LED aan te sturen op basis van touchinput van de TTP224.
Codevoorbeelden & Uitleg
De Arduino-code initialiseert de uitgangspinnen voor de LED's en de ingangspinnen voor de touchsensor. De code gebruikt eenvoudige conditionals om te controleren of een knop is ingedrukt en schakelt vervolgens de overeenkomstige LED in terwijl een bericht naar de seriële monitor wordt gestuurd.
int LD = 200; // Loopvertraging. Niet wijzigen.
void setup() {
Serial.begin(9600);
pinMode(10, OUTPUT);// LED voor knop 1
pinMode(11, OUTPUT);// LED voor knop 2
pinMode(12, OUTPUT);// LED voor knop 3
pinMode(13, OUTPUT);// LED voor knop 4
pinMode(2, INPUT);// Ingangspin knop 1 pin 2
pinMode(3, INPUT);// Ingangspin knop 2 pin 3
}
In dit fragment wordt de variabele LD gedefinieerd om de loopvertraging te regelen. De functie setup() initialiseert de seriële communicatie en stelt de juiste pinnen in als ingangen of uitgangen.
void loop() {
if(digitalRead(2)){
Serial.println("Knop 1 Aangeraakt ");
digitalWrite(10, HIGH); // Zet de LED AAN
delay(LD);
}else{
digitalWrite(10, LOW);// Zet de LED UIT
}
}
Dit codefragment laat zien hoe de Arduino de status van de ingangspin verbonden met knop 1 controleert. Als de knop wordt aangeraakt, wordt een bericht afgedrukt en de overeenkomstige LED ingeschakeld. Dezelfde logica wordt herhaald voor de andere knoppen in de volledige code.
Demonstratie / Wat te Verwachten
Wanneer je het programma uitvoert, zal het aanraken van elke knop op de TTP224 de overeenkomstige LED doen oplichten en een bericht op de seriële monitor weergeven. Zorg ervoor dat je bedrading correct is om problemen te voorkomen. Als je meerdere knoppen tegelijk aanraakt, kun je onverwacht gedrag zien, dus wees daar voorzichtig mee (in video op 5:15).
Videotijdstempels
- 00:00 - Introductie tot TTP224
- 02:30 - Bedradingsopstelling
- 04:15 - Code-uitleg
- 05:15 - Demonstratie van het project
/*
* This is the Arduino code for TTP224 4-Channel Capacitive Touch switch.
* The output pins 10, 11, 12, and 13 will be ON when keys 1 to 4 are pressed respectively.
* Pressing button 1 turns pin 10 ON.
* Pressing button 2 turns pin 11 ON.
* Pressing button 3 turns pin 12 ON.
* Pressing button 4 turns pin 13 ON.
*
* Written by Ahmad Shamshiri for Robojax Video
* Date: December 2, 2017, in Ajax, Ontario, Canada
* Permission granted to share this code given that this
* note is kept with the code.
* Disclaimer: This code is "AS IS" and for educational purposes only.
*
*/
int LD = 200; // Loop Delay. Do not change.
void setup() {
Serial.begin(9600);
// out pins
pinMode(10, OUTPUT);// LED for button 1
pinMode(11, OUTPUT);// LED for button 2
pinMode(12, OUTPUT);// LED for button 3
pinMode(13, OUTPUT);// LED for button 4
// input pins
pinMode(2, INPUT);// Button 1 input pin 2
pinMode(3, INPUT);// Button 2 input pin 3
pinMode(4, INPUT);// Button 3 input pin 4
pinMode(5, INPUT);// Button 4 input pin 5
Serial.println("Robojax Test");
}
void loop() {
// button 1 action
if(digitalRead(2)){
Serial.println("Button 1 Touched ");
digitalWrite(10, HIGH); // Turn the LED ON
delay(LD);
}else{
digitalWrite(10, LOW);// Turn OFF the LED
}
// button 2 action
if(digitalRead(3)){
Serial.println("Button 2 Touched ");
digitalWrite(11, HIGH); // Turn the LED ON
delay(LD);
}else{
digitalWrite(11, LOW);// Turn OFF the LED
}
// button 3 action
if(digitalRead(4)){
Serial.println("Button 3 Touched ");
digitalWrite(12, HIGH); // Turn the LED ON
delay(LD);
}else{
digitalWrite(12, LOW);// Turn OFF the LED
}
// button 4 action
if(digitalRead(5)){
Serial.println("Button 4 Touched ");
digitalWrite(13, HIGH); // Turn the LED ON
delay(LD);
}else{
digitalWrite(13, LOW);// Turn OFF the LED
}
}// loop
Hulpmiddelen en referenties
Nog geen middelen.
Bestanden📁
Datasheet (pdf)
-
TTP224 datasheet by Taiwan Semiconductor (TONTEK)
TTP224_datasheet.pdf0.29 MB
Andere bestanden
-
TTP224 Gebruikershandleiding
robojax-TTP224_manual.pdf0.17 MB -
TTP224 Fritzing Arduino-bestand
TTP224.fzz0.01 MB