Vediamo in questo articolo l’utilizzo di un sensore di tipo capacitivo che utilizza il chip TTP223B, questo componente è ideale per l’aggiunta di controllo touch, con sostituzione degli interruttori meccanici nel proprio progetto. Il modulo proposto è in grado di rilevare quando un dito umano lo tocca.
Indice
Principio di funzionamento
Il sensore appartiene al tipo di sensore capacitivo che si basa sul principio della rilevazione della capacità elettrica di un condensatore: il loro lato sensibile ne costituisce un’armatura, l’eventuale presenza nelle immediate vicinanze di un oggetto conduttore, realizza l’altra armatura del condensatore.
Così la presenza di un oggetto crea una capacità che i circuiti interni rilevano, comandando la commutazione del segnale d’uscita.
Rispetto ai sensori di prossimità induttivi, sono limitati nella velocità di commutazione (10-50 Hz), ma presentano altri vantaggi:
-
portate nominali più elevate (fino a 20 mm);
-
possibilità di rilevare oggetti non ferromagnetici, purché almeno parzialmente conduttivi;
-
immunità a disturbi elettromagnetici.
Il modulo sensore capacitivo TTP223B
Quando si tocca il modulo questo porterà la sua uscita a livello alto, se non sarà più toccato nei seguenti 12 secondi il modulo entrerà in una modalità a basso consumo, comportando un tempo di risposta di 220 ms, ma riducendo notevolmente il consumo di energia. In modalità contatto modulo avrà un tempo di risposta veloci di 60 ms.
Il modulo può essere utilizzato con microcontrollori e schede come Arduino e il Raspberry Pi.
Una serie di fori di montaggio M2 ne permetterne un facile collegamento ad una moltitudine di superfici.
Chipset | TTP223B |
Alimentazione: | da 2 VDC a 5,5 VDC |
Consumo: | 4 mA @ VCC = 3 V |
Tempo di risposta: | 60-220 ms |
Interfaccia di uscita: | 3 pin (VCC-GND-SIG) |
Tensione di uscita: | - livello basso: 0,3 VDC |
- livello alto: 5 VDC (se alimentato a 5 volt) | |
Corrente di uscita: | 8 mA |
Dimensioni (mm): | 24x24x7,2 |
Piedinatura | Datasheet | Foto |
Altro modello di sensore
la stessa tipologia di sensore si può trovare in altre forme e dimensioni, a questo link maggiori informazioni su questo modello
Schema elettrico del sensore
Il progetto completo può essere scaricato dal mio account presso OSHWLab, utilizzando questo link
Lo schema e il relativo PCB sono stati realizzati con il programma EasyEDA: un servizio per il disegno di circuiti e la loro simulazione, progettazione e produzione di PCB. Provatelo è gratuito!
Dove trovare il materiale
Il materiale per realizzare il progetto realizzato può essere trovato presso il sito Futura Elettronica.
In particolare:
-
- Scheda Arduino UNO, codice 7300-ARDUINOUNOREV3
- Sensore, codice 8300-YB107 – Touch sensor breakout
- Modulo KY-019 Box 37 sensori per Arduino/Raspberry/Robotica codice 1606-SENSORKIT37
- Confezione 50 Jumper maschio-femmina vari colori codice 7300-50JUMPERMF
Schema del circuito di prova
Per testare il sensore si utilizzano i seguenti componenti, alcuni disponibili nella serie 37 in 1 Sensor kit – sensori, moduli di input e output
Arduino UNO | Capacitive touch sensor |
KY-019 5V relay module | Cavetti per Breadboard di vari colori |
Pin utilizzati
Pin Arduino | Capacitive touch sensor | KY-019 5V relay module |
2 | OUT | |
4 | GND | |
3 | VCC | |
10 | In | |
+5V | VCC | |
GND | GND |
Programma applicativo
Il programma applicativo per l’utilizzo del sensore capacitivo TTP223B è molto semplice, quando si tocca il sensore capacitivo collegato al pin digitale D2, il relè collegato al pin digitale D10 si eccita e lo rimane sino a quando non si toccherà nuovamente il sensore.
Una particolarità del programma è che i pin D3 e D4 sono utilizzati per alimentare il sensore, per questo motivo dopo averli impostati come OUTPUT, tramite il comando digitalWrite il pin D4 che è collegato a GND del sensore viene portato a livello LOW, mentre il pin D3 collegato a VCC del sensore viene portato a livello HIGH, in questo modo non è neanche necessario utilizzare dei cavi ma è sufficiente inserire il sensore sul connettore di Arduino.
NOTA: prestare attenzione, se utilizzate un modello diverso di sensore occorre verificare l’esatta disposizione dei pin, in quanto potrebbero essere diversi con il rischio di danneggiare sia il sensore che la scheda Arduino.
Programma | Schema circuito di prova |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | int gnd = 4; // Collegato a pin GND del sensore int TouchSensor = 2; // Collegato a pin SIG del sensore int vcc = 3; // Collegato a pin VCC del sensore int rele = 10; // Collegato a pin in del rele' int val = 0; // si userà val per conservare lo stato del pin di input int vecchio_val = 0; // si userà vecchio_val per conservare //lo stato del pin di input al passo precedente int stato = 0; // ricorda lo stato in cui si trova relè, // stato = 0 rele' disattivo, stato = 1 rele' attivo void setup() { pinMode(rele, OUTPUT); pinMode(gnd, OUTPUT); pinMode(vcc, OUTPUT); pinMode(TouchSensor, INPUT); digitalWrite(gnd, LOW); digitalWrite(vcc, HIGH); } void loop() { val = digitalRead(TouchSensor); // legge il valore dell'input e lo conserva // controlla se è accaduto qualcosa if ((val == HIGH) && (vecchio_val == LOW)) { stato = 1 - stato; delay(15); // attesa di 15 millisecondi } vecchio_val = val; // memorizza il valore precedente di val if (stato == 1) { digitalWrite(rele, HIGH); // attiva il rele' } else { digitalWrite(rele, LOW); //disattiva il rele' } } |