KY-036
Metal touch sensor module

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

Il modulo KY-036 Metal touch sensor module, fa parte della serie "37 In 1 Sensor Module Board Set Kit For Arduino", il sensore è costituito un transistor darlington NPN tipo KSP13 il cui segnale è gestito da un circuito di cui fa parte un integrato tipo  LM393 al cui interno sono presenti due comparatori.

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 filo nudo ripiegato sopra il transistor, che è rappresentato dalla base del transistor,  il segnale dei 50 Hz presente intorno a noi in una casa moderna o in ufficio viene iniettato in un amplificatore ad alto guadagno.
L'uscita di questo amplificatore è collegato ad un comparatore, il segnale sinusoidale AC viene quindi convertito in un'onda quadra.
La regolazione della sensibilità vene fatta regolando opportunamente il trimmer VR1.
Se si guarda con attenzione al LED si vedrà un leggero sfarfallio, ciò è dovuto all'uscita che è rappresentata da un'onda quadra di 50 Hz anziché un costante valore continuo.

Sensori di prossimità, cosa sono e come si usano

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.

 

Caratteristiche

Alimentazione:

 3.3V o 5.5V

Sensibilità:

 regolabile

Tipo sensore:

 uscita analogica e digitale

Imballaggio:

 sacchetto sigillato antistatico

Dimensioni del modulo

 34 x 16mm

Foto del modulo

Filmato illustrativo

 

Circuito elettrico del modulo

Analizzando il circuito, questo si basa sul primo comparatore di tensione presente nell'integrato LM393. All’ingresso analogico invertente giunge il segnale proveniente dal Transistor Darlington NPN tipo KSP13 la cui base viene usata come elemento sensibile al “disturbo” proveniente dal contatto del nostro corpo e amplificato dal transistor stesso.
Lo stesso segnale giunge all’uscita A0 del modulo. Sull’ingresso non invertente è collegato il partitore formato dalle due resistenze R2 e R6 (entrambe del valore di 10kΩ) che portano l'ingresso alla metà della tensione di alimentazione VCC.
Il funzionamento del comparatore è determinato dalle seguenti relazioni:
Se V+ > V-
Vo = H
Se V+ < V-
Vo = L
Si tratta quindi di un circuito che collega il mondo analogico (i due ingressi) a quello digitale (l'uscita) comportandosi come un ADC con risoluzione pari a 1 bit.
Quando la tensione proveniente dal ramo formato dal transistor è regolata dal trimmer VR1 da 10kΩ, è maggiore di quella presente sul pin 3 dell'integrato IC1.1, si avrà in uscita sul pin 1 di Ic1.1 un segnale HIGH mentre quando la tensione è inferiore si avrà un livello LOW.
Il secondo comparatore presente nell'integrato LM393 viene utilizzato per pilotare l'accensione del led L2, che segnala che si è "toccato" il sensore.
L'accensione del led L1 segnalerà la presenza della tensione di alimentazione, in quanto è collegato a VCC e GND tramite la resistenza R5 da 1kΩ. Come abbiamo visto il modulo dispone sia di un'uscita analogica che di un’uscita digitale.
Per ottenere un segnale digitale bisogna preventivamente agire sul trimmer in modo da ottenere il segnale HIGH, solo quando il segnale in arrivo supera la soglia che desideriamo monitorare.
La taratura è abbastanza semplice in quanto facilitata dalla presenza del led L2: si dovrà agire in senso orario sulla vite del trimmer fino a quando il led si spegne.
Si proverà quindi a toccare con il dito, il filo presente sopra il transistor e se il led si accenderà significa che il sensore è in grado di riconoscere il nostro tocco e produrrà un segnale HIGH in uscita. Se questo non accadesse si dovrà provare a regolare lentamente la vite sino a quando non si ottiene l’effetto desiderato. Il segnale analogico in uscita invece, varia al variare dell’intensità del segnale captato dal  transistor

 Transistor darlington NPN- KSP13/14
  

Piedinatura Datasheet Foto del transistor

LM393 Low-Power, Low-Offset Voltage, Dual Comparators

Piedinatura Datasheet Foto dell'integrato

 

.

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 KY-036 Metal touch sensor module
Cavetti per Breadboard di vari colori KY-016 3 color LED module
 
KY-006 Small passive buzzer module  

 

Pin Arduino Pin
KY-036 Metal touch sensor module
Pin
KY-016
3 color LED module
Pin
KY-006 Small passive buzzer module
8 D0    
9   R  
10   G  
12     S
A0 A0    
+5V +    
GND G GND GND

 

Programma applicativo

Il seguente sketch di Arduino legge il valore digitale del sensore KY-036, e comanda alternativamente l'accensione di un led di diverso colore (rosso e verde) contenuto in un led RGB.
Il valore analogico letto dal sensore viene mostrato all'interno della finestra del Plotter Seriale, funzione introdotta dalla versione 1.6.7 della IDE di Arduino e che è richiamabile con CTRL + MAIUSC + L.
Quando viene toccato il sensore, dal buzzer si può ascoltare il rapido commutare dello stato del pin Digitale, con la frequenza di 50 Hz.

Grafico normale rilevato, in uscita dal pin Analogico

Grafico normale rilevato, in uscita dal pin Analogico quando si tocca il sensore

 
Programma 
Schema circuito di prova

 
/*
  Test_KY-036.ino
  Il programma comanda alternativamente l'accensione di un led
  di diverso colore (rosso e verde) contenuto in un led RGB.
  Il valore rilevato analogico rilevato dal sensore viene
  mostrato sul plotter seriale.
  il segnale proveniente dal pin digitale può essere ascoltato
  tramite il buzzer.

  Sono utilizzati i seguenti pin
  Pin +5V           -> Alimentazione +5V
  Pin GND           -> GND
  Pin Digital 8     -> Out digitale modulo KY-036
  Pin Digital 9     -> Led Verde
  Pin Digital 10    -> led Rosso
  Pin Digital 11    -> buzzer
  Pin Analogico A0  -> Out analogico modulo KY-036

  Creato il 5/3/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.
*/


// Definizione dei pin del modulo KY-036
int pin_A0 = A0;
int touchPin = 8;
// Definizione dei pin del modulo KY-016
int led_G = 10;
int led_R = 9;
// Definizione dei pin del modulo KY-006
int buzzer = 12;

// Memorizza il tempo in cui l'ultimo evento accaduto
unsigned long lastEvent = 0;

// Memorizzare lo stato del LED
boolean led_G_ON = false;
boolean led_R_ON = false;

Memorizza il valore letto dal sensore
int valore_A0 = 0;

void setup() {
  // Impostazione porta seriale
  Serial.begin(9600);
  // setup pins
  pinMode(touchPin, INPUT);
  pinMode(led_G, OUTPUT);
  pinMode(led_R, OUTPUT);
  pinMode(buzzer, OUTPUT);
  // imposta lo stato iniziale dei led
  digitalWrite(led_G, HIGH);
  digitalWrite(led_R, LOW);
}

void loop() {
  //Lettura valore analogico e invio
  //a plotter seriale
  valore_A0 = analogRead(pin_A0);
  Serial.println(valore_A0);
  // Lettuara dello stato del sensore a sfioramento
  int touchState = digitalRead(touchPin);
  // Nel caso sia HIGH
  if (touchState == HIGH) {
    digitalWrite(buzzer, HIGH);
    digitalWrite(buzzer, LOW);
    // Se sono passati 50ms da l'ultimo impulso HIGH
    if (millis() - lastEvent > 50) {
      //commuta i led in uscita
      led_G_ON = !led_G_ON;
      digitalWrite(led_G, led_G_ON ? HIGH : LOW);
      digitalWrite(led_R, led_R_ON ? LOW : HIGH);
    }
    // Ricorda quando l'ultimo evento accaduto
    lastEvent = millis();
  }
}

 

Elenco revisioni:

06/04/2019

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

12/03/2017

Aggiornato pagina e inserito video

05/03/2017

Emissione preliminare