Menampilkan Input Keypad pada LCD
4. Listing Program [kembali]
#include <LiquidCrystal.h> //Deklarasi library LCD
#include <Keypad.h> //Deklarasi library keypad
const byte ROWS = 4; //Deklarasi jumlah baris
const byte COLS = 4; //Deklarasi jumlah kolom
char keys[ROWS][COLS] = {
{'1', '2', '3','a'},
{'4', '5', '6','b'}, //Inisialisasi keypad matriks 4x3
{'7', '8', '9','c'},
{'*', '0', '#','d'}
};
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 } }
#include <LiquidCrystal.h> //Deklarasi library LCD
#include <Keypad.h> //Deklarasi library keypad
const byte ROWS = 4; //Deklarasi jumlah baris
const byte COLS = 4; //Deklarasi jumlah kolom
char keys[ROWS][COLS] = {
{'1', '2', '3','a'},
{'4', '5', '6','b'}, //Inisialisasi keypad matriks 4x3
{'7', '8', '9','c'},
{'*', '0', '#','d'}
};
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 } }
5. Analisa [kembali]
Analisa prinsip kerja LCD !
LCD telah memiliki microcontroller di dalamnya, sehingga tanpa arduino pun LCD akan tetap bisa berjalan. LCD memiliki kaki-kaki yang memiliki fungsi masing-masing sebagai berikut
Pin 1 dan 2
LCD telah memiliki microcontroller di dalamnya, sehingga tanpa arduino pun LCD akan tetap bisa berjalan. LCD memiliki kaki-kaki yang memiliki fungsi masing-masing sebagai berikut
Pin 1 dan 2
Merupakan sambungan catu daya, Vss dan Vdd. Pin Vdd dihubungkan dengan tegangan positif catu daya, dan Vss pada 0V atau ground. Meskipun data menentukan catu 5 Vdc (hanya pada beberapa mA), menyediakan 6V dan 4.5V yang keduanya bekerja dengan baik, bahkan 3V cukup untuk beberapa modul.
Pin 3
Pin 3 merupakan pin kontrol Vee, yang digunakan untuk mengatur kontras display. Idealnya pin ini dihubungkan dengan tegangan yang bisa dirubah untuk memungkinkan pengaturan terhadap tingkatan kontras display sesuai dengan kebutuhan, pin ini dapat dihubungkan dengan variable resistor sebagai pengatur kontras.
Pin 4
Pin 4 merupakan Register Select (RS), masukan yang pertama dari tiga command control input. Dengan membuat RS menjadi high, data karakter dapat ditransfer dari dan menuju modulnya.
Pin 5
Read/Write (R/W), untuk memfungsikan sebagai perintah write maka R/W low atau menulis karakter ke modul. R/W high untuk membaca data karakter atau informasi status dari register-nya.
Pin 6
Enable (E), input ini digunakan untuk transfer aktual dari perintah-perintah atau karakter antara modul dengan hubungan data. Ketika menulis ke display, data ditransfer hanya pada perpindahan high atau low. Tetapi ketika membaca dari display, data akan menjadi lebih cepat tersedia setelah perpindahan dari low ke high dan tetap tersedia hingga sinyal low lagi.
Pin 7-14
Pin 7 sampai 14 adalah delapan jalur data/data bus (D0 sampai D7) dimana data dapat ditransfer ke dan dari display.
Pin 16
Pin 16 dihubungkan kedalam tegangan 5 Volt untuk memberi tegangan dan menghidupkan lampu latar/Back Light LCD.
Kaki analog dari arduino terhubung ke LCD, sedangkan kaki keypad terhubung ke pin i/o arduino. Pada percobaan ini digunakan keypad 4x3, dengan inputan angka 0,1,2,3,4,5,7,8,9 dan karakter *,#. Pada Keypad setiap pin baris dan pin kolom tidak terhubung satu sama lain.Saklar-saklar atau tombol tersebut jika ditekan akan menyebabkan pin baris dan pin kolom terhubung. Ketika S1 di tekan maka S1 akan menghubungkan baris 1 dengan kolom 1, ketika S3 ditekan maka S3 menghubungkan baris 1 dengan kolom 3, ketika S12 ditekan maka S12 menghubungkan baris 3 dengan kolom 4, dan sebagainya. Saat Saklar terhubung,arus mengalir dan menghasilkan logika 1,sehingga karakter tersebut ditampilkan di layar.Oleh sebab itu mikrokontroller harus mendeteksi terhubungnya pin baris dan pin kolom tersebut satupersatu agar tidak terjadi kesalahan pembacaan data.
Kaki analog dari arduino terhubung ke LCD, sedangkan kaki keypad terhubung ke pin i/o arduino. Pada percobaan ini digunakan keypad 4x3, dengan inputan angka 0,1,2,3,4,5,7,8,9 dan karakter *,#. Pada Keypad setiap pin baris dan pin kolom tidak terhubung satu sama lain.Saklar-saklar atau tombol tersebut jika ditekan akan menyebabkan pin baris dan pin kolom terhubung. Ketika S1 di tekan maka S1 akan menghubungkan baris 1 dengan kolom 1, ketika S3 ditekan maka S3 menghubungkan baris 1 dengan kolom 3, ketika S12 ditekan maka S12 menghubungkan baris 3 dengan kolom 4, dan sebagainya. Saat Saklar terhubung,arus mengalir dan menghasilkan logika 1,sehingga karakter tersebut ditampilkan di layar.Oleh sebab itu mikrokontroller harus mendeteksi terhubungnya pin baris dan pin kolom tersebut satupersatu agar tidak terjadi kesalahan pembacaan data.
No comments:
Post a Comment