Daftar Isi:

Menggunakan Keypad Numerik Dengan Arduino: 4 Langkah
Menggunakan Keypad Numerik Dengan Arduino: 4 Langkah

Video: Menggunakan Keypad Numerik Dengan Arduino: 4 Langkah

Video: Menggunakan Keypad Numerik Dengan Arduino: 4 Langkah
Video: Arduino uno - Belajar Menggunakan Keypad 4x4 [Bahasa indonesia] 2024, November
Anonim
Menggunakan Keypad Numerik Dengan Arduino
Menggunakan Keypad Numerik Dengan Arduino

Keypad numerik dapat memberikan alternatif pengguna akhir yang sederhana untuk berbagai antarmuka untuk proyek Anda. Atau jika Anda membutuhkan banyak tombol, mereka dapat menghemat banyak waktu terkait konstruksi. Kami akan menjalankan menghubungkan mereka, menggunakan perpustakaan Arduino dan kemudian menyelesaikan dengan sketsa contoh yang berguna.

Langkah 1: Memulai

Mulai
Mulai

Dari mana pun Anda mendapatkan papan tombol, pastikan Anda bisa mendapatkan lembar data – karena ini akan membuat hidup lebih mudah saat memasangnya. Misalnya - gambar di langkah ini.

Lembar data penting karena akan memberi tahu Anda pin atau konektor mana pada papan tombol untuk baris dan kolom. Jika Anda tidak memiliki lembar data – Anda harus menentukan secara manual kontak mana untuk baris dan kolom.

Ini dapat dilakukan dengan menggunakan fungsi kontinuitas multimeter (buzzer). Mulailah dengan menempatkan satu probe pada pin 1, probe lainnya pada pin 2, dan tekan tombol satu per satu. Catat kapan sebuah tombol menyelesaikan rangkaian, lalu pindah ke pin berikutnya. Segera Anda akan tahu yang mana. Misalnya pada contoh keypad pin 1 dan 5 untuk tombol “1, 2 dan 5 untuk “4″, dst…

Pada titik ini, silakan unduh dan instal perpustakaan Arduino keypad. Sekarang kami akan mendemonstrasikan cara menggunakan kedua keypad dalam contoh sederhana.

Langkah 2: Menggunakan Keypad 12 Digit

Kami akan menggunakan keypad hitam kecil, yang kompatibel dengan Arduino Uno dan LCD dengan antarmuka I2C untuk tujuan tampilan. Jika Anda tidak memiliki LCD, Anda selalu dapat mengirim teks ke monitor serial.

Pasang LCD Anda kemudian sambungkan keypad ke Arduino dengan cara berikut: Baris keypad 1 ke digital Arduino 5Keypad baris 2 ke Arduino digital 4Keypad baris 3 ke Arduino digital 3Keypad baris 4 ke digital Arduino 2Keypad kolom 1 ke Arduino digital 8Keypad kolom 2 ke Arduino digital 7Keypad kolom 3 ke Arduino digital 6 Jika keypad Anda berbeda dengan kami, perhatikan garis pada sketsa dari:

// definisi jenis keypad

Karena Anda perlu mengubah angka dalam array rowPins[ROWS] dan colPins[COLS]. Anda memasukkan nomor pin digital yang terhubung ke baris dan kolom keypad masing-masing.

Selanjutnya, tombol array menyimpan nilai yang ditampilkan di LCD saat tombol tertentu ditekan. Anda dapat melihat bahwa kami telah mencocokkannya dengan keypad fisik yang digunakan, namun Anda dapat mengubahnya sesuai kebutuhan. Tetapi untuk saat ini, masukkan dan unggah sketsa berikut setelah Anda puas dengan alokasi nomor baris/pin:

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

#sertakan "Keypad.h"

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

// definisi jenis keypad

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

byte rowPins[ROWS] = {

5, 4, 3, 2}; //menghubungkan ke pinout baris dari byte keypad colPins[COLS] = { 8, 7, 6}; // sambungkan ke pinout kolom keypad

int jumlah=0;

Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);

batalkan pengaturan()

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

lingkaran kosong()

{ char key = keypad.getKey(); if (kunci != NO_KEY) { lcd.print(kunci); menghitung++; if (hitung==17) { lcd.clear(); hitung=0; } } }

Dan hasil sketsanya diperlihatkan dalam video. Jadi sekarang Anda dapat melihat bagaimana penekanan tombol dapat diterjemahkan ke dalam data untuk digunakan dalam sketsa. Kami sekarang akan mengulangi demonstrasi ini dengan keypad yang lebih besar.

Langkah 3: Menggunakan Keypad 16 Digit

Kami akan menggunakan keypad 4x4 yang lebih besar, yang kompatibel dengan Arduino Uno dan untuk mengubah LCD I2C dari Akafugu untuk tujuan tampilan. Sekali lagi, jika Anda tidak memiliki LCD, Anda selalu dapat mengirim teks ke monitor serial. Pasang LCD dan kemudian sambungkan keypad ke Arduino dengan cara berikut:

  • Baris keypad 1 (pin delapan) ke Arduino digital 5
  • Keypad baris 2 (pin 1) ke Arduino digital 4
  • Baris keypad 3 (pin 2) ke Arduino digital 3
  • Baris keypad 4 (pin 4) ke Arduino digital 2
  • Kolom keypad 1 (pin 3) ke Arduino digital 9
  • Kolom keypad 2 (pin 5) ke Arduino digital 8
  • Kolom keypad 3 (pin 6) ke Arduino digital 7
  • Kolom keypad 4 (pin 7) ke Arduino digital 6

Sekarang untuk sketsa – perhatikan bagaimana kami telah mengakomodasi keypad numerik yang lebih besar: kolom ekstra di kunci array charpin tambahan di array colPinsdan byte COLS = 4.

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

#sertakan "Keypad.h"

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

const byte BARIS = 4; //empat baris

const byte COLS = 4; //kunci karakter empat kolom[ROWS][COLS] = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'}}; byte rowPins[ROWS] = { 5, 4, 3, 2}; //menghubungkan ke pinout baris dari byte keypad colPins[COLS] = { 9, 8, 7, 6}; //sambungkan ke pinout kolom keypad int count=0;

Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);

batalkan pengaturan()

{ Serial.begin(9600); lcd.begin(16, 2); lcd.print("Tes papan tombol!"); penundaan (1000); lcd.clear(); }

lingkaran kosong()

{ char key = keypad.getKey(); if (kunci != NO_KEY) { lcd.print(kunci); Serial.print(kunci); menghitung++; if (hitung==17) { lcd.clear(); hitung=0; } } }

Dan lagi anda bisa melihat hasil sketsa diatas pada video.

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

Langkah 4: Contoh Proyek – Sistem Akses PIN

Penggunaan yang paling banyak diminta untuk keypad numerik tampaknya adalah aplikasi gaya "PIN", di mana Arduino diperintahkan untuk melakukan sesuatu berdasarkan nomor yang benar yang dimasukkan ke dalam keypad. Sketsa berikut menggunakan perangkat keras yang dijelaskan untuk sketsa sebelumnya dan menerapkan sistem entri PIN enam digit.

Tindakan yang akan dilakukan dapat dimasukkan ke dalam fungsi correctPIN() dan correctPIN(). Dan PIN diatur dalam array char PIN[6]. Dengan sedikit kerja ekstra, Anda juga dapat membuat fungsi ganti PIN Anda sendiri.

// Sakelar PIN dengan keypad numerik 16 digit// https://tronixstuff.com #include "Keypad.h" #include #include LiquidCrystal lcd (12, 11, 5, 4, 3, 2);

const byte BARIS = 4; //empat baris

const byte COLS = 4; //kunci karakter empat kolom[ROWS][COLS] = { { '1', '2', '3', 'A' }, { '4', '5', '6', 'B' }, { '7', '8', '9', 'C' }, { '*', '0', '#', 'D' } }; byte rowPins[ROWS] = { 5, 4, 3, 2}; //menghubungkan ke pinout baris dari byte keypad colPins[COLS] = { 9, 8, 7, 6}; //sambungkan ke pinout kolom keypad

Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);

PIN karakter[6]={

'1', '2', 'A', 'D', '5', '6'}; // percobaan karakter nomor rahasia kami (!)[6]={ '0', '0', '0', '0', '0', '0'}; // digunakan untuk perbandingan int z=0;

batalkan pengaturan()

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

void correctPIN() // lakukan ini jika PIN yang dimasukkan benar

{ lcd.print("* PIN Benar *"); penundaan (1000); lcd.clear(); lcd.print("Masukkan PIN…"); }

batalkan PIN salah() // lakukan ini jika PIN yang dimasukkan salah

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

batal periksa PIN()

{ int benar=0; di aku; untuk (i = 0; i < 6; i++) {

jika (coba==PIN)

{ benar++; } } if (benar==6) { correctPIN(); } else { PIN salah(); }

for (int zz=0; zz<6; zz++) { upaya[zz]='0'; } }

batal bacaKeypad()

{ char key = keypad.getKey(); if (kunci != NO_KEY) { upaya[z]=kunci; z++; switch(kunci) { kasus '*': z=0; merusak; kasus '#': z=0; penundaan(100); // untuk debounce ekstra lcd.clear(); periksaPIN(); merusak; } } }

lingkaran kosong()

{ readKeypad(); }

Proyek ini ditunjukkan dalam video.

Jadi sekarang Anda memiliki kemampuan untuk menggunakan dua belas dan enam belas tombol keypad dengan sistem Arduino Anda. Saya yakin Anda akan menemukan sesuatu yang berguna dan menarik menggunakan keypad dalam waktu dekat.

Posting ini dipersembahkan oleh pmdway.com – semuanya untuk pembuat dan penggemar elektronik, dengan pengiriman gratis ke seluruh dunia.

Direkomendasikan: