Penting nya keypad dalam dunia Kontrol seperti Arduino dan system Kontrol lain nya
Keypad Arduino sangat di butuhkan agar kita bisa mengembangkan sebuah system yang menggunakan keypad nanti nya. Contoh penggunaan keypad bisa kita temui di system antrian, POM Mini, Pertamini, bahkan keypad ini wajib ada di system pertamini, kebetulan saya ada buat CPU pom mini dengan ATmega32 yang menggunakan keypad.
Keypad ini juga biasa di gunakan untuk setting variable dalam sebuah system, misalnya password, nomor antrian, kalibrasi waktu dan apa saja seperti layaknya keypad yang ada di sebuah computer dan smartphone.
Karena tutorial keypad Arduino ini begitu penting, maka berikut kita paparkan bagaimana cara memprogram keypad dengan input decimal, bukan input karate seperti tutorial keypad pada umum nya.
PIN konfigurasi Keypad Arduino
Keypad ini memiliki system scanning, ada bertindak sebagai row, ada bertindak sebagai colom, bisa kamu lihat tutorial penjelasan lengkap tentang system keypad beserta rangkaian nya di sini gambar di bawah ini
misalkan kita tekan sw1, maka pada Col satu akan meneruskan arus dari Row 1, misal kita anggap dari Row satu kita beri tegangan 5v, dengan menekan sw1 makan pada Col 1 akan ada tegangan 5volt, begitu seterus nya. Pin keypad ini akan kita input kan ke Arduino.
Library Tutorial Keypad Arduino
Untuk lebih lengkap nya, mari download library keypad Arduino pada link berikut https://github.com/Chris–A/Keypad, setelah download add ke library dengan cara seperti biasa, atau sebagai refrensi bisa lihat di link berikut, cara add library ke Arduino kita, https://mikroavr.com/tutorial-tft-lcd-arduino/. Oke setelah kita add library nya mari kita program dengan program sample di bawah ini,
Karena disini kita akan menampilkan data decimal keypad di LCD 16×2 dan LCD nya kita yang kita gunakan adalah i2c LCD maka sebaiknya lihat dulu artikel di link berikut https://mikroavr.com/arduino-lcd-i2c/.
Nah sekarang kita coba buat program keypad Arduino dengan menampilkan decimal, program nya seperti berikut
#include <Wire.h> #include <LiquidCrystal_I2C.h> #include <Keypad.h> #define BINTANG 42 #define PAGAR 35 #define TOMBOL_A 65 #define TOMBOL_B 66 #define TOMBOL_C 67 #define TOMBOL_D 68 const byte ROWS = 4; //four rows const const byte COLS = 4; //three columns char keys[ROWS][COLS] = { {1, 2, 3, 'A'}, {4, 5, 6, 'B'}, {7, 8, 9, 'C'}, {'*', '0', '#', 'D'} }; byte rowPins[ROWS] = {7, 6, 5, 4}; //connect to the row pinouts of the keypad byte colPins[COLS] = {3, 2, 1, 0}; //connect to the column pinouts of the keypad Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS ); // Set the LCD address to 0x27 for a 16 chars and 2 line display LiquidCrystal_I2C lcd(0x27, 16, 2); long dtKey = 0; void setup() { //Serial.begin(9600); lcd.init(); lcd.backlight(); } void loop() { char key = keypad.getKey(); if (key) { if (key == BINTANG ) { // clear data = tekan *; lcd.clear(); dtKey = 0; key = 0; lcd.print(dtKey); } if ( key == 48 )key = 0; // conversi variable '0' ke 0 lcd.clear(); dtKey = dtKey * 10 + key; lcd.print(dtKey); } }
Penjelasan Program Tutorial Arduino Keypad
Yang paling penting pada list program di atas perlu di perhatikan di list berikut
LiquidCrystal_I2C lcd(0x27, 16, 2);
0x27 adalah address i2c yang di hasilkan dari scanning i2c address yang tertera di turorial di atas. Jika ini salah, maka LCD tidak akan bisa menampilkan data. Selanjut nya adalah 16,2. maksud nya adalah type dari LCD, jika kita menggunakan LCD 20×4 maka program nya akan berubah menjadi berikut,
const byte ROWS = 4; //four rows const const byte COLS = 4; //three columns char keys[ROWS][COLS] = { {1, 2, 3, 'A'}, {4, 5, 6, 'B'}, {7, 8, 9, 'C'}, {'*', '0', '#', 'D'} }; byte rowPins[ROWS] = {7, 6, 5, 4}; //connect to the row pinouts of the keypad byte colPins[COLS] = {3, 2, 1, 0}; //connect to the column pinouts of the keypad Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
Selanjut nya adalah perhatikan program di berikut,
byte rowPins[ROWS] = {7, 6, 5, 4}; //connect to the row pinouts of the keypad byte colPins[COLS] = {3, 2, 1, 0}; //connect to the column pinouts of the keypad Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
byte rowPins[ROWS] dan colPins[COLS]. ini adalah konfiguras pin keypad yang di hubungkan ke Arduino. Khusus saya saya buat konfigurasi nya seprti gambar berikut
Pada lingkar di biru di atas akan di jumper ke Keypad.
Perlu di lihat catatan di atas, bahawa, PIN TX dan RX jangan di gunakan sebagai pin keypad jika ingin menampilkan data ke Serial. Kemarin sempat saya bingung kenapa ya Arduino Keypad ini tidak berhasil di tampilkan di Serial? oh ternyata PIN nya saya gunakan sebagai keypad juga :). Pengalaman memang berharga.
Baca Artikel kami lain nya tentang Modul digital Pertamini di Bawah ini, cukup klik link nya