Sensore tattile con Arduino: controllare un relè con il tocco
Usiamo un sensore tattile capacitivo per rilevare il contatto della mano e attivare un relè. È un progetto semplice, utile per capire ingressi digitali, sensibilità del sensore e controllo di un carico.
Cosa imparerai
- come funziona un sensore tattile capacitivo;
- come leggere un ingresso digitale con
digitalRead(); - come regolare la sensibilità del sensore;
- come pilotare un modulo relè con Arduino;
- come sostituire il relè con un LED o un buzzer;
- come migliorare il progetto con una logica ON/OFF a ogni tocco.
Come funziona il sensore tattile
Il modulo rileva variazioni del campo elettrico quando una persona tocca l’elettrodo o una superficie metallica collegata al sensore. Il contatto modifica la capacità rilevata dal circuito e l’uscita digitale cambia stato.
Il sensore può essere collegato direttamente a una piccola superficie metallica oppure a un elemento più grande, come una maniglia, una piastrina o un pannello. Il potenziometro presente sul modulo permette di regolare la sensibilità.
Modulo sensore tattile con regolazione della sensibilità.
Materiale necessario
🧰 Kit Arduino consigliato
Molti progetti utilizzano sensori, relè, breadboard, LED e cavetti. Un kit completo può essere comodo per avere già a disposizione i componenti più comuni.
👉 Guarda il kit Arduino consigliatoLink di affiliazione Amazon: in qualità di Affiliato Amazon ricevo un guadagno dagli acquisti idonei, senza alcun costo aggiuntivo per te.
📘 Vuoi imparare Arduino passo dopo passo?
Se vuoi approfondire e realizzare progetti più completi, puoi dare un’occhiata anche ai miei libri dedicati ad Arduino. Troverai spiegazioni semplici, schemi chiari e molti progetti pratici pensati per chi parte da zero.
👉 Scopri i miei libri su ArduinoLink di affiliazione Amazon: in qualità di Affiliato Amazon ricevo un guadagno dagli acquisti idonei, senza alcun costo aggiuntivo per te.
Schema del circuito
Schema di collegamento del sensore tattile con Arduino e modulo relè.
Collegamenti principali
| Elemento | Pin Arduino | Funzione |
|---|---|---|
| Uscita sensore tattile | D7 | Segnale digitale del tocco |
| Ingresso modulo relè | D12 | Attivazione/disattivazione del relè |
| Alimentazione sensore | 5 V / GND | Alimentazione del modulo |
| Alimentazione relè | 5 V / GND | Alimentazione del modulo relè |
Codice Arduino commentato
// ==========================================================
// SENSORE TATTILE CON ARDUINO
// Attiva un relè quando viene rilevato il tocco
// ==========================================================
// Pin collegato all'uscita digitale del sensore
const int sensorePin = 7;
// Pin collegato all'ingresso del modulo relè
const int relePin = 12;
// Variabile che memorizza lo stato del sensore
int statoSensore = LOW;
void setup() {
// Il sensore invia un segnale digitale ad Arduino
pinMode(sensorePin, INPUT);
// Il relè viene comandato da Arduino
pinMode(relePin, OUTPUT);
// Stato iniziale: relè spento
digitalWrite(relePin, LOW);
}
void loop() {
// Legge lo stato dell'uscita del sensore
statoSensore = digitalRead(sensorePin);
// Se il sensore rileva il tocco
if (statoSensore == HIGH) {
// Attiva il relè
digitalWrite(relePin, HIGH);
}
else {
// Nessun tocco: disattiva il relè
digitalWrite(relePin, LOW);
}
}
Come funziona il programma
1. Lettura del sensore
Arduino controlla continuamente il pin D7 con digitalRead(). Il risultato può essere HIGH oppure LOW.
2. Tocco rilevato
Quando l’uscita del sensore è HIGH, il pin D12 viene portato a HIGH e il modulo relè si attiva.
3. Nessun tocco
Quando l’uscita torna LOW, anche D12 viene portato a LOW e il relè viene disattivato.
Attenzione ai moduli relè active LOW
Molti moduli relè si attivano con un livello LOW invece che HIGH. Se il tuo relè lavora al contrario, verifica prima la serigrafia e il comportamento del modulo.
// Tocco rilevato
digitalWrite(relePin, LOW);
// Nessun tocco
digitalWrite(relePin, HIGH);
Variante: tocco per accendere, tocco successivo per spegnere
Una variante molto più pratica consiste nel trasformare il sensore in un vero interruttore touch: ogni nuovo tocco cambia lo stato del relè.
const int sensorePin = 7;
const int relePin = 12;
bool releAttivo = false;
bool statoPrecedente = LOW;
void setup() {
pinMode(sensorePin, INPUT);
pinMode(relePin, OUTPUT);
digitalWrite(relePin, LOW);
}
void loop() {
bool statoAttuale = digitalRead(sensorePin);
// Rileva soltanto il passaggio LOW -> HIGH
if (statoAttuale == HIGH && statoPrecedente == LOW) {
// Inverte lo stato del relè
releAttivo = !releAttivo;
digitalWrite(
relePin,
releAttivo ? HIGH : LOW
);
// Piccolo debounce
delay(80);
}
statoPrecedente = statoAttuale;
}
Usare una superficie metallica più grande
La parte sensibile può essere collegata a una superficie metallica per aumentare l’area di contatto. Una maniglia, una piastrina o un pomello possono quindi diventare un comando touch.
Più grande è la superficie e più lungo è il filo, maggiore può essere anche la sensibilità ai disturbi. Per questo conviene regolare il potenziometro dopo aver completato il montaggio definitivo.
Alternative al relè
Al posto del relè puoi collegare altri dispositivi a bassa potenza, per esempio:
- un LED;
- un buzzer;
- un ingresso logico di un altro circuito;
- un modulo MOSFET per piccoli carichi in corrente continua;
- un servo o un altro attuatore, con il relativo circuito di pilotaggio.
Debug rapido
- verifica che il sensore sia alimentato correttamente;
- controlla l’uscita digitale sul pin D7;
- regola lentamente il potenziometro di sensibilità;
- se il sensore si attiva da solo, riduci la sensibilità;
- se il relè lavora al contrario, verifica se è active LOW;
- controlla che Arduino e modulo relè condividano la massa quando richiesto dal modulo;
- prova prima il circuito senza collegare carichi esterni al relè.
Scarica lo sketch
⬇️ Scarica lo sketch ArduinoVarianti del progetto
- realizzare un interruttore touch ON/OFF;
- aggiungere un LED che mostra lo stato del relè;
- aggiungere un buzzer di conferma;
- comandare più relè con più sensori touch;
- usare un display OLED per mostrare lo stato;
- integrare il sensore in una maniglia o pannello metallico;
- aggiungere un timer di spegnimento automatico.
Cosa devi ricordare
- Il sensore tattile è collegato al pin D7.
- Il relè è comandato dal pin D12.
- L’uscita del sensore è digitale: HIGH o LOW.
- La sensibilità si regola tramite il potenziometro del modulo.
- Il relè può essere active HIGH oppure active LOW.
- Con una semplice modifica software puoi trasformare il sensore in un interruttore touch.
Domande frequenti
Perché il sensore si attiva senza toccarlo?
La sensibilità potrebbe essere troppo alta oppure la superficie collegata potrebbe captare disturbi. Riduci la sensibilità e prova con fili più corti.
Posso collegare una piastra metallica al sensore?
Sì. Una superficie metallica può aumentare l’area sensibile, ma può anche rendere il circuito più sensibile ai disturbi.
Perché il relè è acceso quando dovrebbe essere spento?
Il tuo modulo potrebbe essere active LOW. In quel caso la logica HIGH/LOW va invertita.
Posso usare il sensore come interruttore permanente?
Sì. Basta rilevare il fronte del tocco e invertire una variabile di stato, come nell’esempio ON/OFF.

