Sensore touch TTP223 con Arduino: accendere un LED con il tocco
Usa un sensore capacitivo TTP223 come pulsante touch per controllare un LED con Arduino e scoprire come funzionano gli ingressi digitali senza parti meccaniche.
🚀 Introduzione
In questo progetto utilizzeremo un sensore touch capacitivo TTP223 per controllare Arduino tramite il semplice tocco di un dito.
A differenza di un pulsante meccanico, il sensore non ha contatti che devono essere premuti fisicamente. Il modulo rileva invece una variazione di capacità elettrica quando il dito si avvicina alla superficie sensibile.
Quando viene rilevato il tocco, l’uscita digitale del modulo cambia stato e Arduino può reagire immediatamente.
🎯 Cosa realizzerai
- lettura di un sensore touch capacitivo;
- riconoscimento del tocco tramite ingresso digitale;
- accensione di un LED quando il sensore viene toccato;
- visualizzazione degli eventi nel Monitor Seriale;
- comprensione della differenza tra pulsante meccanico e touch capacitivo;
- base per creare un vero interruttore touch.
🧰 Materiale necessario
🛒 Non hai ancora i componenti?
Un kit Arduino per principianti contiene molti dei componenti utilizzati nei progetti del sito, come LED, resistenze, sensori e breadboard.
Kit Arduino consigliato → Link di affiliazione Amazon: in qualità di Affiliato Amazon ricevo un guadagno dagli acquisti idonei, senza alcun costo aggiuntivo per te.📘 Vuoi approfondire Arduino?
Nei miei libri trovi spiegazioni passo passo, schemi e progetti pratici dedicati ad Arduino.
Scopri i miei libri → Link di affiliazione Amazon: in qualità di Affiliato Amazon ricevo un guadagno dagli acquisti idonei, senza alcun costo aggiuntivo per te.🖐️ Come funziona il sensore TTP223
Il TTP223 è un circuito integrato progettato per rilevare variazioni di capacità elettrica su una superficie sensibile.
Quando un dito si avvicina alla zona touch, la capacità elettrica del sistema cambia. Il circuito rileva questa variazione e modifica lo stato dell’uscita digitale.
nessun tocco → uscita LOW
dito sul sensore → uscita HIGH
Questo comportamento può variare in alcune versioni o configurazioni del modulo, ma nei moduli TTP223 più comuni la modalità momentanea attiva HIGH è quella normalmente utilizzata.
🔌 Schema di collegamento
| Componente | Collegamento |
|---|---|
| TTP223 VCC | 5V Arduino |
| TTP223 GND | GND Arduino |
| TTP223 SIG / OUT | Pin digitale 2 |
| LED anodo (+) | Pin 8 tramite resistenza da 220 Ω |
| LED catodo (−) | GND |
💻 Codice Arduino completo
Il programma legge continuamente l’uscita del TTP223. Quando il sensore viene toccato, Arduino accende il LED.
// ============================================
// Progetto #39 - Sensore touch TTP223
// Il LED si accende quando il sensore
// viene toccato
// ============================================
// Pin collegato all'uscita del TTP223
const byte TOUCH_PIN = 2;
// Pin collegato al LED
const byte LED_PIN = 8;
// Memorizza lo stato precedente
bool touchPrecedente = false;
void setup() {
// Sensore touch come ingresso digitale
pinMode(TOUCH_PIN, INPUT);
// LED come uscita
pinMode(LED_PIN, OUTPUT);
// LED spento all'avvio
digitalWrite(LED_PIN, LOW);
// Avvia il Monitor Seriale
Serial.begin(9600);
}
void loop() {
// Legge lo stato del sensore
bool touchAttivo =
digitalRead(TOUCH_PIN) == HIGH;
// Il LED segue direttamente
// lo stato del sensore touch
digitalWrite(
LED_PIN,
touchAttivo ? HIGH : LOW
);
// Mostra il messaggio soltanto
// quando cambia lo stato
if (touchAttivo != touchPrecedente) {
touchPrecedente = touchAttivo;
if (touchAttivo) {
Serial.println("Tocco rilevato!");
} else {
Serial.println("Sensore rilasciato");
}
}
delay(20);
}
⚙️ Come funziona
Nel loop() Arduino legge continuamente il pin 2 tramite digitalRead().
Quando il TTP223 rileva il dito, l’uscita passa normalmente a HIGH. La variabile touchAttivo diventa quindi vera e Arduino porta il pin 8 a HIGH, accendendo il LED.
Quando il dito viene rimosso, l’uscita torna LOW e il LED si spegne.
👆 Touch momentaneo o interruttore?
Nel progetto attuale il LED rimane acceso soltanto finché il dito resta sul sensore.
Questo comportamento equivale a un normale pulsante momentaneo:
LED acceso.
LED spento.
Se vogliamo creare una vera lampada touch, possiamo invece modificare il programma in modo che ogni tocco alterni lo stato del LED: primo tocco acceso, secondo tocco spento.
🔄 Versione interruttore touch
Per trasformare il sensore in un interruttore ON/OFF dobbiamo reagire soltanto al momento in cui inizia un nuovo tocco.
const byte TOUCH_PIN = 2;
const byte LED_PIN = 8;
bool ledAcceso = false;
bool touchPrecedente = false;
void setup() {
pinMode(TOUCH_PIN, INPUT);
pinMode(LED_PIN, OUTPUT);
digitalWrite(LED_PIN, LOW);
}
void loop() {
bool touchAttivo =
digitalRead(TOUCH_PIN) == HIGH;
// Rileva soltanto il passaggio
// da non toccato a toccato
if (touchAttivo && !touchPrecedente) {
ledAcceso = !ledAcceso;
digitalWrite(
LED_PIN,
ledAcceso ? HIGH : LOW
);
}
touchPrecedente = touchAttivo;
delay(30);
}
⚡ Perché non serve una resistenza pull-up o pull-down?
Il TTP223 non è un semplice contatto meccanico. Il modulo contiene già l’elettronica necessaria per fornire ad Arduino un segnale digitale definito.
Per questo motivo il pin Arduino può essere configurato semplicemente come:
pinMode(TOUCH_PIN, INPUT);
Non serve quindi aggiungere la classica resistenza da 10 kΩ utilizzata con pulsanti o Reed switch.
🧠 TTP223 e modalità di funzionamento
Alcune schede basate sul TTP223 permettono di modificare il comportamento tramite piccoli ponticelli o pad di configurazione presenti sul PCB.
A seconda della versione del modulo, possono essere disponibili modalità come:
L’uscita rimane attiva soltanto durante il tocco.
Ogni tocco può alternare direttamente lo stato dell’uscita.
L’uscita diventa HIGH durante l’attivazione.
Su alcune configurazioni la logica può essere invertita.
⚠️ Problemi comuni
Controlla il collegamento del pin OUT e verifica che il modulo non sia configurato in modalità toggle.
Controlla VCC, GND e il collegamento tra uscita del TTP223 e pin 2.
La tua versione potrebbe utilizzare una configurazione diversa della logica di uscita.
Cavi lunghi, alimentazione disturbata o superfici vicine possono modificare la sensibilità capacitiva.
🔄 Varianti possibili
Ogni tocco accende o spegne una lampada tramite un’uscita di potenza adeguata.
Il sensore può attivare una segnalazione sonora al posto del LED.
Più TTP223 possono creare una piccola tastiera capacitiva.
Il tocco può inviare un comando a un sistema domotico.
Ogni tocco può cambiare colore o modalità luminosa.
Il comando touch può essere inviato tramite Wi-Fi a una dashboard o a un dispositivo remoto.
🧠 Cosa impari con questo progetto
- leggere un’uscita digitale tramite digitalRead();
- utilizzare un sensore capacitivo TTP223;
- rilevare un cambiamento di stato;
- controllare un LED senza un pulsante meccanico;
- distinguere modalità momentanea e toggle;
- creare la base di una lampada o di un pannello touch.
✅ Cosa devi ricordare
- il TTP223 rileva variazioni capacitive generate dal tocco;
- nei moduli più comuni il tocco porta l’uscita a HIGH;
- Arduino può leggere direttamente il segnale digitale del modulo;
- non serve una resistenza pull-up o pull-down esterna;
- il comportamento del modulo può cambiare in base alla configurazione del PCB;
- con poche righe di codice il sensore può diventare un vero interruttore touch ON/OFF.

