ARDUINO
Capacitive touch sensor TTP223B

ultimo aggiornamento 6 aprile 2019


JLCPCB - 2$ per prototipi di PCB, di qualsiasi colore. Produzione in 24 ore!
L'Azienda di prototipi PCB più popolare, con oltre 700.000 clienti in tutto il mondo!
Recati presso la JLCPCB, riceverai regali e coupon gratuiti
presso Maker Faire Rome il 18-20 ottobre


Indice

Descrizione

Questo componente è ideale per l'aggiunta di controllo touch, con sostituzione degli interruttori meccanici nel proprio progetto.
Questo modulo utilizza l'integrato tipo TTP223B in grado di rilevare quando un dito umano lo tocca.
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:

 

OurPCB, your most reliable PCB and PCBA supplier.

Focusing on PCB Prototype and PCB Assembly Turnkey Services.

One-Stop Wire Harness & Cable Assemblies Solution

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 220ms, ma riducendo notevolmente il consumo di energia.
In modalità contatto modulo avrà un tempo di risposta veloci di 60ms.
Il modulo può essere utilizzato con microcontrollori e schede come Arduino e il Raspberry Pi.
Il modulo ha una serie di fori di montaggio M2 per permetterne un facile collegamento ad una moltitudine di superfici.  I pin sono adatti alle prese standard con un passo di 2,54 millimetri.

 

Questo sensore è citato nel mio articolo pubblicato il 4 aprile sul Blog Elettronica open source

Oggi è diventato normale, sfiorando uno schermo con le dita, comporre un numero telefonico: questo è possibile grazie al touchscreen capacitivo. Negli impianti industriali i PLC controllano la posizione delle parti in movimento tramite vari tipi di sensori di prossimità. Questi sensori, emettono radiazioni elettromagnetiche, come un radar, o rilevano radiazioni magnetiche o luminose. I circuiti interni analizzano, per esempio, le onde riflesse ed emettono un segnale digitale (ON-OFF) o analogico. In questo articolo analizzeremo le varie tecnologie utilizzate e vedremo poi come poterle integrare nelle nostre applicazioni.

 

 

Un video pubblicato da Adriano Gandolfo (@adrirobot) in data:

Caratteristiche

Dimensioni (L * W * H)

24 x 15 x 5 mm

Campo di tensione

 2.5V ~ 5.5V

Tensione consigliata

 5V

fori di montaggio M2 (centri sono 12 millimetri a parte)
pin 3 (passo 2,54 mm pin)
chipset TTP223B
  Progettato per essere compatibile con 2.54mm prese standard

TTP223N-BA6 1 key touch pad detector
Piedinatura Datasheet Foto

Schema del sensore

Schema realizzato con EasyEDA: Un servizio per il disegno di circuiti e la loro simulazione, progettazione e produzione di PCB. Provalo è gratuito!

 

Schema del circuito di prova

Per testare il sensore si utilizzano i seguenti componenti

Arduino UNO Capacitive touch sensor
Cavetti per Breadboard di vari colori KY-019 5V relay module

I pin utilizzati sono i seguenti

Pin Arduino Capacitive touch sensor KY-019 5V relay module
2 GND  
3 OUT  
4 VCC  
10   In
+5V   VCC
GND   GND

Programma applicativo

Il programma applicativo del sensore è molto semplice, quando si tocca il sensore capacitivo collegato al pin digitale D3, il relè collegato al pin digitale D10 si eccita e lo rimasi sono a quando non si toccherà nuovamente il sensore.

Una particolarità del programma è che i pin D2 e D4 sono utilizzati per alimentare il sensore, per questo motivo dopo averli impostati come OUTPUT, tramite il comando digitalWrite il pin D2 che è collegato a GND del sensore viene portato a livello LOW, mentre il pin D4 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

 

/*
  test_capacitive_touch_sensor.ino
  Il programma attiva e disattiva un relè utilizzando
  un sensore di tocco di tipo capacitivo.
  Sono utilizzati i seguenti pin
  Pin +5V           -> Alimentazione relè
  Pin GND           -> GND relè
  Pin Digital 2     -> GND Sensore di tocco capacitivo
  Pin Digital 3     -> OUT Sensore di tocco capacitivo
  Pin Digital 4     -> VCC Sensore di tocco capacitivo
  Pin Digital 10    -> IN rele'

  Creato il 28/1/2017 da Adriano Gandolfo
  Sito web https://www.adrirobot.it
  Blog http://it.emcelettronica.com/author/adrirobot
  Pagina Facebook https://www.facebook.com/Adrirobot-318949048122955
  Istagram https://www.instagram.com/adrirobot/
  This example code is in the public domain.
*/

int gnd = 2;          // Collegato a pin GND del sensore
int TouchSensor = 3;  // Collegato a pin SIG del sensore
int vcc = 4;          // 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'
  }
}

 

Elenco revisioni

06/04/2018

Inserito citazione sensore all'interno dell'articolo Sensori di prossimità, cosa sono e come si usano pubblicato su Elettronica Open Source

17/02/2017

Corretto tabella e descrizione programma

28/01/2017

Emissione preliminare