KY-004
Key switch module

ultimo aggiornamento 23 febbraio 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-004 Key switch module fa parte della serie "37 In 1 Sensor Module Board Set Kit For Arduino", Questo modulo è composto da un semplice pulsante a pressione, quando si preme l'interruttore il circuito si chiude e poi si riapre quando viene rilasciato. Oltre al pulsante è presente una resistenza dal valore tipico di 10kΩ.

Questo modulo può essere utile in molti progetti ArduinoRaspberry Pi e Esp8266.

 

OurPCB, your most reliable PCB and PCBA supplier.

Focusing on PCB Prototype and PCB Assembly Turnkey Services.

One-Stop Wire Harness & Cable Assemblies Solution

 

Pull-Up e Pull-Down

La resistenza di pull-up o di pull-down serve per tenere l'ingresso di Arduino ad uno stato logico ben preciso quando il pulsante si trova col contatto aperto.
Se non si portasse l'ingresso verso "ground" questo risulterebbe "flottante" e percepirebbe vari segnali che in alcuni casi scambierebbe come se venisse premuto il pulsante, quindi vedresti accendersi e spegnersi il led in maniera casuale.
Ovviamente non si può portare l'ingresso direttamente a massa, perché nel momento in cui si preme realmente il pulsante si avrebbe un bel corto-circuito, per questo motivo si interpone una resistenza, di solito da 10k
Ω

Per collegare ad Arduino un pulsante, ci sono due possibilità, con una resistenza di Pull-up o Pull-down:

 

Pull-Up: si inserisce un'opportuna resistenza (10-100K Ohm) tra il piedino e l'alimentazione (VCC)
Pull-Down: si inserisce un'opportuna resistenza (10-100K Ohm) tra il piedino e la massa (GND)

 

Nel primo caso l’ingresso (GPIO) è sempre a +Vcc (HIGH) e va a zero (LOW) solo quando il pulsante è premuto (metodo Pull-up).

Nel secondo caso invece l’ingresso è sempre a zero Volt (LOW) e passa a +Vcc (HIGH) solo quando il pulsante è premuto (metodo Pull-down).
Vedere anche https://it.wikipedia.org/wiki/Resistenza_pull-up

Caratteristiche del sensore

 

Valori di funzionamento

50mA 12VC

Temperatura ambiente

Da -25 ° C a 105 ° C

Resistenza di contatto

≤0.03Ω.

Resistenza di isolamento

≥100MΩ.

Durata

100.000 cicli

Forza operativa

180/230 (± 20GF)

Dimensioni

18.5 mm x 15 mm

Foto del modulo

 

Circuito elettrico del modulo

Il circuito elettrico è molto semplice in quanto è formato solamente dal pulsante pulsante tattile FZ1713 e la resistenza di pull-up SMD dal valore di 10 kΩ.

 

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

 

Test base del modulo

Test base per la prova di funzionamento del modulo che prevede l'utilizzo di un Arduino UNO collegato al KY-004 Key switch modul tramite cavi, come mostrato nello schema.

Materiale necessario

Arduino UNO
mini breadboard 170 punti KY-004 Key switch module Jumpers Dupont colorati

Pin Modulo Pin Arduino
- GND
+5V (pin centrale) +5V
S D3


sketch test_ky-004.ino

Sketch testato con versione IDE 1.8.5

/*
  test_ky-004.ino

  Sketck base per testare il modulo KY-004

  Per ulteriori informazioni vedere
  http://www.adrirobot.it/sensori/37_in_1/KY-004-Key-switch-module.htm

  Sito web http://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 led = 13; 	//Definisce il pin LED
int buttonpin = 3; //Define il pin a cui è collegato il pulsante
int val; 		//Definisce una variabile

void setup()
{
  pinMode(led, OUTPUT);
  pinMode(buttonpin, INPUT);
}

void loop()
{
  val = digitalRead(buttonpin); // controlla lo stato del pulsante
  if (val == LOW)
  {
   digitalWrite(led, HIGH); // se si preme il pulsante, accende il LED
  }
  else
  {
    digitalWrite(led, LOW); // oppure spegne il LED
  }
}

Test base del modulo con display OLED

Test base per la prova di funzionamento del KY-004 Key switch modul che prevede l'utilizzo di un display per visualizzare lo stato del pulsante.
Si è utilizzato un Arduino UNO collegando tramite cavi il display, in questo caso si tratta di un OLED da 0.95"risoluzione 96x64 pixel, 65536 Colori basato sul driver SSD1331 ed è dotato di interfaccia di comando SPI, che può essere alimentato con una tensione compresa tra i 3.3V - 5V.
Il tutto montato su su una piccola breadBoard.

Materiale necessario

Arduino UNO Display OLED a colori
mini breadboard 170 punti KY-004 Key switch module
 
Jumpers Dupont colorati  

 

Pin Modulo Pin Arduino
- GND
+5V (pin centrale) +5V
S D3

 

Pin display OLED Pin Arduino
GND GND
VCC +5V
SCL D13
SDA D11
RES D9
DC D8
CS D10


sketch test_ky-004_oled.ino.ino

Sketch testato con versione IDE 1.8.5

/*
  test_ky-004_oled.ino

  Sketck base per testare il modulo KY-004, stato del
  sensore visualizzato su display OLED

  Per ulteriori informazioni vedere
  http://www.adrirobot.it/sensori/37_in_1/KY-004-Key-switch-module.htm

  Sito web http://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 di collegamento
// display OLED Display 65k Colori
// 138x32 con interfaccia SPI

#define sclk 13
#define mosi 11
#define cs   10
#define rst  9
#define dc   8

// Definizione dei colori
#define BLACK           0x0000
#define BLUE            0x001F
#define RED             0xF800
#define GREEN           0x07E0
#define CYAN            0x07FF
#define MAGENTA         0xF81F
#define YELLOW          0xFFE0
#define WHITE           0xFFFF

#include <Adafruit_GFX.h>
#include <Adafruit_SSD1331.h>
#include <SPI.h>

Adafruit_SSD1331 display = Adafruit_SSD1331(cs, dc, rst);


int buttonpin = 3; //Definisce il pin a cui è collegato il pulsante
int val; 		//Definisce una variabile

void setup()
{
  pinMode(buttonpin, INPUT);

  display.begin();
  display.fillScreen(BLACK);
  display.setTextSize(2);
  display.setCursor(20, 0);
  display.setTextColor(WHITE);
  display.print("TEST");
  display.setCursor(0, 16);
  display.setTextColor(YELLOW);
  display.print(" KY-004");
  display.drawFastHLine(0, 45, display.width() - 1, RED);
  display.setCursor(0, 52);
  display.setTextColor(GREEN);
  display.setTextSize(1);
  display.print("WWW.ADRIROBOT.IT");
  delay(1500);

  display.fillScreen(BLACK);
  display.setTextSize(2);
  display.setCursor(0, 0);
  display.setTextColor(WHITE);
  display.print("Pulsante");
}

void loop()
{
  val = digitalRead(buttonpin); // controlla lo stato del pulsante
  display.fillRect(0, 25, 96, 15, red);
  if (val == LOW)
  {
    display.setCursor(0, 25);
    display.setTextColor(RED);
    display.print("PREMUTO");
  }
  else
  {
    display.setCursor(0, 25);
    display.setTextColor(YELLOW);
    display.print("--------");
  }
}

 

Elenco revisioni:

23/02/2019

Inserito schema elettrico

18/03/2018

Emissione preliminare