Indice
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 Arduino,
Raspberry Pi e
Esp8266.
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
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
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 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 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 |
Private Policy
Cookie Policy