Cod de bază Arduino pentru atingere capacitivă pe 4 canale TTP224
Acest tutorial te va ghida prin utilizarea senzorului tactil capacitiv TTP224 cu 4 canale împreună cu un Arduino. TTP224 îți permite să creezi o interfață tactilă simplă care poate aprinde LED-uri în funcție de butonul apăsat. La finalul acestui proiect, vei avea un sistem funcțional în care atingerea fiecăruia dintre cele patru butoane va aprinde un LED corespunzător și va afișa mesaje pe monitorul serial.

În această configurație, atunci când un buton este apăsat, pinul de ieșire corespunzător de pe Arduino va fi activat, aprinzând un LED. Vei vedea, de asemenea, un mesaj în monitorul serial care indică ce buton a fost atins. Acest proiect este ideal pentru începătorii care doresc să învețe despre tehnologia tactilă capacitivă și programarea de bază Arduino. Pentru mai multe detalii, asigură-te că urmărești videoclipul la minutul 2:30.
Hardware Explicat
Componenta principală a acestui proiect este senzorul tactil capacitiv TTP224. Acesta dispune de patru butoane sensibile la atingere, permițând o interacțiune simplă fără comutatoare mecanice. Atunci când un buton este atins, senzorul emite un semnal ridicat pe pinul de ieșire corespunzător. Acest lucru face ușoară conectarea la alte dispozitive precum LED-uri sau relee.
Pe lângă TTP224, vei avea nevoie de o placă Arduino pentru a procesa intrarea tactilă și a controla LED-urile. Arduino citește pinii de ieșire ai senzorului și activează LED-urile în consecință. Această configurație poate fi extinsă și pentru aplicații mai complexe, cum ar fi controlul unui releu sau crearea unui sistem de securitate cu blocare.
Detalii din Fișa Tehnică
| Producător | TonTouch |
|---|---|
| Număr de piesă | TTP224 |
| Tensiune logică/IO | 2,5–5,5 V |
| Curent de ieșire (pe canal) | 10 mA max |
| Curent de vârf (pe canal) | 20 mA max |
| Timp de răspuns | 10 ms (tipic) |
| Pachet | 8-DIP |
- Asigură-te că sursa de alimentare este stabilă în intervalul specificat.
- Folosește rezistențe de pull-down dacă este necesar pentru a preveni stările flotante.
- Ține senzorul departe de surse de interferență precum câmpuri electromagnetice puternice.
- Ia în considerare utilizarea unei întârzieri de debounce pentru a preveni declanșările false.
- Testează sensibilitatea tactilă și ajustează mediul pentru performanță optimă.
Instrucțiuni de Cablare

Pentru a cabla TTP224 la Arduino, începe prin conectarea alimentării și a masei. Conectează pinul VCC al TTP224 la pinul de 5V de pe Arduino, iar pinul GND la un pin de masă de pe Arduino. Apoi, conectează pinii de ieșire ai TTP224 la pinii digitali ai Arduino. Mai exact, conectează pinul de ieșire 1 la pinul 2, pinul de ieșire 2 la pinul 3, pinul de ieșire 3 la pinul 4 și pinul de ieșire 4 la pinul 5 de pe Arduino.
Pentru LED-uri, conectează anozii (pinii mai lungi) ai fiecărui LED la pinii Arduino 10, 11, 12 și, respectiv, 13. Conectează catozii (pinii mai scurti) ai LED-urilor la masă printr-o rezistență (de obicei 220Ω) pentru a limita curentul. Această configurație va permite Arduino să controleze fiecare LED pe baza intrării tactile de la TTP224.
Exemple de Cod și Explicații
Codul Arduino inițializează pinii de ieșire pentru LED-uri și pinii de intrare pentru senzorul tactil. Codul folosește condiții simple pentru a verifica dacă un buton este apăsat și apoi aprinde LED-ul corespunzător, afișând în același timp un mesaj pe monitorul serial.
int LD = 200; // Întârziere buclă. Nu modifica.
void setup() {
Serial.begin(9600);
pinMode(10, OUTPUT);// LED pentru butonul 1
pinMode(11, OUTPUT);// LED pentru butonul 2
pinMode(12, OUTPUT);// LED pentru butonul 3
pinMode(13, OUTPUT);// LED pentru butonul 4
pinMode(2, INPUT);// Pin intrare buton 1 - pin 2
pinMode(3, INPUT);// Pin intrare buton 2 - pin 3
}
În acest fragment, variabila LD este definită pentru a controla întârzierea buclei. Funcția setup() inițializează comunicarea serială și setează pinii corespunzători ca intrări sau ieșiri.
void loop() {
if(digitalRead(2)){
Serial.println("Butonul 1 atins ");
digitalWrite(10, HIGH); // Aprinde LED-ul
delay(LD);
}else{
digitalWrite(10, LOW);// Stinge LED-ul
}
}
Acest fragment de cod demonstrează cum Arduino verifică starea pinului de intrare conectat la butonul 1. Dacă butonul este atins, afișează un mesaj și aprinde LED-ul corespunzător. Aceeași logică este repetată pentru celelalte butoane în codul complet.
Demonstrație / Ce să Te Aștepți
Când rulezi programul, atingerea fiecărui buton de pe TTP224 va aprinde LED-ul corespunzător și va afișa un mesaj în monitorul serial. Asigură-te că cablarea este corectă pentru a evita problemele. Dacă atingi mai multe butoane simultan, s-ar putea să observi un comportament neașteptat, așa că fii atent la acest aspect (în videoclip la minutul 5:15).
Marcaje Temporale din Video
- 00:00 - Introducere în TTP224
- 02:30 - Configurarea cablării
- 04:15 - Explicația codului
- 05:15 - Demonstrația proiectului
/*
* 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
Resurse și referințe
Încă nu sunt resurse.
Fișiere📁
Fișă tehnică (pdf)
-
TTP224 datasheet by Taiwan Semiconductor (TONTEK)
TTP224_datasheet.pdf0.29 MB
Alte fișiere
-
Manual de utilizare TTP224
robojax-TTP224_manual.pdf0.17 MB -
TTP224 Fișier Fritzing Arduino
TTP224.fzz0.01 MB