#include <LiquidCrystal.h> //Deklarasi libary LCD
#include <Keypad.h> //Deklarasi library Keypad
const byte ROWS = 4; //Deklarasi jumlah baris
const byte COLS = 3; /Deklarasi jumlah kolom
char keys[ROWS][COLS] = {
{'1','2','3'},
{'4','5','6'},
{'7','8','9'}, //Inisialisasi keypad matriks 4x3
{'*','0','#'}
};
byte rowPins[ROWS] = {10, 9, 8, 7}; //Deklarasi pin yang digunakan untuk baris
byte colPins[COLS] = {13, 12, 11}; //Deklarasi pin yang digunakan untuk kolom
//Inisialisasi Library dengan pin yang digunakan
LiquidCrystal lcd(A0, A1, A2, A3, A4, A5);
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
void setup() { //Semua kode dalam fungsi ini akan dieksekusi sekali
//Set baris dan kolom LCD
lcd.begin(20, 4);
lcd.setCursor(1,2);
lcd.setCursor(4,3);
lcd.setCursor(0,0);
}
void loop() { //Semua kode dalam fungsi ini akan dieksekusi berulang
char key = keypad.getKey(); //Membaca keypad
if (key) { //Kondisi pilihan jika keypad ditekan
lcd.print(key); //Menampilkan input dari keypad pada LCD
}
}
1. 1. Kenapa kita hanya
menggunakan pin data D4-D7 kenapa tidak d0-d7?
Jawab:
Setiap karakter memiliki ASCII Code dengan
besar 8 bit. Dengan menggunakan pin data dari D4 sampai D7 berarti data yang
diinput adalah sebesar 4 bit dan dilakukan dengan 2 tahap setelah dua kali
clock. Data dikirim berupa nibble. Hanya digunakan 4 pin karena data yang akan
diinput tidak banyak .
2. 2. Saat menggunakan
keypad 4x4, apakah terjadi perbedaan pada program? Dimana perbedaannyaa?
Jawab :
Ada, pada
bagian const byte COLS = 3; diganti menjadi const byte COLS = 4; Selain itu
bagian array juga disesuaikan dengan array keypad 4x4. Pada bagian byte
colPins[COLS] = {13, 12, 11}; juga ditambah satu pin lagi yang terhubung dengan
arduino, menjadi 4 pin.
Tidak ada komentar:
Posting Komentar