Isi kandungan:

Menggunakan Papan Kekunci Numerik Dengan Arduino: 4 Langkah
Menggunakan Papan Kekunci Numerik Dengan Arduino: 4 Langkah

Video: Menggunakan Papan Kekunci Numerik Dengan Arduino: 4 Langkah

Video: Menggunakan Papan Kekunci Numerik Dengan Arduino: 4 Langkah
Video: Cara menggunakan keypad Arduino 4x4 unduh kodenya 2024, November
Anonim
Menggunakan Pad Kekunci Berangka Dengan Arduino
Menggunakan Pad Kekunci Berangka Dengan Arduino

Pad kekunci berangka boleh memberikan alternatif pengguna akhir yang mudah untuk pelbagai antara muka untuk projek anda. Atau jika anda memerlukan banyak butang, mereka dapat menjimatkan banyak masa berkaitan dengan pembinaan. Kami akan terus menghubungkannya, menggunakan perpustakaan Arduino dan kemudian menyelesaikannya dengan lakaran contoh yang berguna.

Langkah 1: Bermula

Bermula
Bermula

Tidak kira dari mana anda mendapatkan pad kekunci anda, pastikan anda dapat memperoleh lembaran data - kerana ini akan menjadikan kehidupan lebih mudah semasa memasangnya. Contohnya - gambar dalam langkah ini.

Lembar data adalah penting kerana ia akan memberitahu anda pin atau penyambung pada papan kekunci untuk baris dan lajur. Sekiranya anda tidak mempunyai lembaran data - anda perlu menentukan kenalan untuk baris dan lajur secara manual.

Ini dapat dilakukan dengan menggunakan fungsi kesinambungan multimeter (bel). Mulakan dengan meletakkan satu probe pada pin 1, probe yang lain pada pin 2, dan tekan kekunci satu persatu. Catat kapan butang melengkapkan litar, kemudian pindah ke pin seterusnya. Tidak lama lagi anda akan mengetahui yang mana. Contohnya, pada contoh papan kekunci pin 1 dan 5 adalah untuk butang "1", 2 dan 5 untuk "4", dan lain-lain …

Pada ketika ini sila muat turun dan pasang pustaka papan kekunci Arduino. Sekarang kita akan menunjukkan cara menggunakan kedua-dua papan kekunci dalam contoh mudah.

Langkah 2: Menggunakan Pad Kekunci 12 Digit

Kami akan menggunakan papan kekunci hitam kecil, serasi dengan Arduino Uno dan LCD dengan antara muka I2C untuk tujuan paparan. Sekiranya anda tidak mempunyai LCD, anda boleh menghantar teks ke monitor bersiri.

Kabelkan LCD anda kemudian sambungkan papan kekunci ke Arduino dengan cara berikut: Pad kekunci 1 hingga Arduino digital 5Keypad baris 2 hingga Arduino digital 4Keypad baris 3 hingga Arduino digital 3Keypad baris 4 ke Arduino digital 2Keypad column 1 to Arduino digital 8Keypad column 2 to Arduino digital 7Keypad lajur 3 hingga Arduino digital 6 Sekiranya pad kekunci anda berbeza dengan kami, perhatikan garis-garis dalam lakaran dari:

// definisi jenis pad kekunci

Oleh kerana anda perlu menukar nombor dalam array array PinPIN [ROWS] dan colPins [COLS]. Anda memasukkan nombor pin digital yang masing-masing dihubungkan ke baris dan lajur papan kekunci.

Selanjutnya, kekunci array menyimpan nilai yang ditunjukkan dalam LCD ketika butang tertentu ditekan. Anda dapat melihat kami telah memadankannya dengan papan kekunci fizikal yang digunakan, namun anda boleh mengubahnya menjadi apa sahaja yang anda perlukan. Tetapi buat masa ini, masukkan dan muat naik lakaran berikut setelah anda berpuas hati dengan peruntukan nombor baris / pin:

/ * Numeric keypad dan I2C LCD https://tronixstuff.com Menggunakan perpustakaan Keypad untuk Arduino https://www.arduino.cc/playground/Code/Keypad oleh Mark Stanley, Alexander Brevig * /

#terima "Keypad.h"

#include "Wire.h" // untuk I2C LCD #include "LiquidCrystal_I2C.h" // untuk modul LCD bas I2C // https://www.dfrobot.com/wiki/index.php/I2C/TWI_LCD1602_Module_(SKU: _DFR0063) LiquidCrystal_I2C lcd (0x27, 16, 2); // tetapkan alamat LCD ke 0x27 untuk paparan 16 bar dan 2 baris

// definisi jenis pad kekunci

const byte ROWS = 4; // empat baris const byte COLS = 3; // kekunci tiga lajur [ROWS] [COLS] = {{'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9'}, {'*', '0', '#'}};

byte rowPins [ROWS] = {

5, 4, 3, 2}; // sambungkan ke pinout baris dari colypins byte keypad [COLS] = {8, 7, 6}; // sambungkan ke pin lajur papan kekunci

kiraan int = 0;

Pad kekunci = Pad Kekunci (makeKeymap (kekunci), baris pin, colPins, ROWS, COLS);

persediaan tidak sah ()

{lcd.init (); // inisialisasi lcd lcd.backlight (); // hidupkan lampu latar LCD}

gelung kosong ()

{char key = keypad.getKey (); jika (kunci! = NO_KEY) {lcd.print (kunci); kira ++; jika (kiraan == 17) {lcd.clear (); kiraan = 0; }}}

Dan hasil lakaran ditunjukkan dalam video. Jadi sekarang anda dapat melihat bagaimana penekanan butang dapat diterjemahkan ke dalam data untuk digunakan dalam lakaran. Kami sekarang akan mengulangi demonstrasi ini dengan papan kekunci yang lebih besar.

Langkah 3: Menggunakan Pad Kekunci 16 Digit

Kami akan menggunakan papan kekunci 4 × 4 yang lebih besar, serasi dengan Arduino Uno dan untuk menukar LCD I2C dari Akafugu untuk tujuan paparan. Sekali lagi, jika anda tidak mempunyai LCD, anda boleh menghantar teks ke monitor bersiri. Kabelkan LCD dan kemudian sambungkan papan kekunci ke Arduino dengan cara berikut:

  • Pad kekunci 1 (pin lapan) hingga Arduino digital 5
  • Pad kekunci 2 (pin 1) hingga Arduino digital 4
  • Pad kekunci 3 (pin 2) hingga Arduino digital 3
  • Pad kekunci 4 (pin 4) hingga Arduino digital 2
  • Lajur papan kekunci 1 (pin 3) ke Arduino digital 9
  • Papan kekunci 2 (pin 5) ke Arduino digital 8
  • Papan kekunci 3 (pin 6) ke Arduino digital 7
  • Pad kekunci 4 (pin 7) hingga Arduino digital 6

Sekarang untuk lakaran - perhatikan bagaimana kami telah mengakomodasi keypad numerik yang lebih besar: lajur tambahan dalam kunci char array pin tambahan di colPins array dan byte COLS = 4.

/ * Numeric keypad dan I2C LCD https://tronixstuff.com Menggunakan perpustakaan Keypad untuk Arduino https://www.arduino.cc/playground/Code/Keypad oleh Mark Stanley, Alexander Brevig * /

#terima "Keypad.h"

#include "Wire.h" // untuk I2C LCD #include "TWILiquidCrystal.h" // https://store.akafugu.jp/products/26 LiquidCrystal lcd (12, 11, 5, 4, 3, 2);

const byte ROWS = 4; // empat baris

const byte COLS = 4; // kekunci char empat lajur [ROWS] [COLS] = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'}}; byte rowPins [ROWS] = {5, 4, 3, 2}; // sambungkan ke pinout baris dari colypins byte keypad [COLS] = {9, 8, 7, 6}; // sambungkan ke pinout lajur dari bilangan kekunci int = 0;

Pad kekunci = Pad Kekunci (makeKeymap (kekunci), baris pin, colPins, ROWS, COLS);

persediaan tidak sah ()

{Serial.begin (9600); lcd.begin (16, 2); lcd.print ("Ujian papan kekunci!"); kelewatan (1000); lcd.clear (); }

gelung kosong ()

{char key = keypad.getKey (); jika (kunci! = NO_KEY) {lcd.print (kunci); Cetakan bersiri (kunci); kira ++; jika (kiraan == 17) {lcd.clear (); kiraan = 0; }}}

Dan sekali lagi anda dapat melihat hasil lakaran di atas dalam video.

Sekarang untuk projek contoh, yang mungkin merupakan keypad numerik yang paling banyak diminta …

Langkah 4: Contoh Projek - Sistem Akses PIN

Penggunaan yang paling banyak diminta untuk keypad numerik adalah aplikasi gaya "PIN", di mana Arduino diperintahkan untuk melakukan sesuatu berdasarkan nombor yang betul yang dimasukkan ke dalam papan kekunci. Sketsa berikut menggunakan perkakasan yang dijelaskan untuk lakaran sebelumnya dan menerapkan sistem kemasukan PIN enam digit.

Tindakan yang akan dilakukan boleh disisipkan dalam fungsi correctPIN () dan correctPIN (). Dan PIN ditetapkan dalam PIN array array [6]. Dengan sedikit kerja tambahan anda dapat membuat fungsi menukar PIN anda sendiri juga.

// Tukar PIN dengan pad kekunci berangka 16 digit // https://tronixstuff.com #include "Keypad.h" #include #include LiquidCrystal lcd (12, 11, 5, 4, 3, 2);

const byte ROWS = 4; // empat baris

const byte COLS = 4; // kekunci char empat lajur [ROWS] [COLS] = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'}}; byte rowPins [ROWS] = {5, 4, 3, 2}; // sambungkan ke pinout baris dari colypins byte keypad [COLS] = {9, 8, 7, 6}; // sambungkan ke pin lajur papan kekunci

Pad kekunci = Pad Kekunci (makeKeymap (kekunci), baris pin, colPins, ROWS, COLS);

PIN char [6] = {

'1', '2', 'A', 'D', '5', '6'}; // rahsia kami (!) cubaan nombor [6] = {'0', '0', '0', '0', '0', '0'}; // digunakan untuk perbandingan int z = 0;

persediaan tidak sah ()

{Serial.begin (9600); lcd.begin (16, 2); lcd.print ("Kunci PIN"); kelewatan (1000); lcd.clear (); lcd.print ("Masukkan PIN …"); }

batal correctPIN () // lakukan ini jika PIN yang betul dimasukkan

{lcd.print ("* PIN yang betul *"); kelewatan (1000); lcd.clear (); lcd.print ("Masukkan PIN …"); }

batal tidak betulPIN () // lakukan ini jika PIN yang salah dimasukkan

{lcd.print ("* Cuba lagi *"); kelewatan (1000); lcd.clear (); lcd.print ("Masukkan PIN …"); }

batal checkPIN ()

{int betul = 0; int i; untuk (i = 0; i <6; i ++) {

jika (cubaan == PIN )

{betul ++; }} jika (betul == 6) {correctPIN (); } lain {salahPIN (); }

untuk (int zz = 0; zz <6; zz ++) {cubaan [zz] = '0'; }}

kekosongan baca Kekunci ()

{char key = keypad.getKey (); if (kunci! = NO_KEY) {cubaan [z] = kunci; z ++; tukar (kunci) {case '*': z = 0; rehat; kes '#': z = 0; kelewatan (100); // untuk lompatan tambahan lcd.clear (); semakPIN (); rehat; }}}

gelung kosong ()

{readKeypad (); }

Projek ini ditunjukkan dalam video.

Jadi sekarang anda mempunyai keupayaan untuk menggunakan pad kekunci dua belas dan enam belas dengan sistem Arduino anda. Saya pasti anda akan mendapat sesuatu yang berguna dan menarik menggunakan papan kekunci dalam masa terdekat.

Catatan ini disampaikan kepada anda oleh pmdway.com - semuanya untuk pembuat dan peminat elektronik, dengan penghantaran percuma ke seluruh dunia.

Disyorkan: