- TUJUAN
1. Mengetahui dan memahami cara mengantarmukakan mikrokontroler dengan keypad.
2. Mengetahui dan memahami bagaimana memprogram mikrokontroler untuk membaca masukan dari keypad.
- DASAR TEORI
Keypad (papan tombol) merupakan salah satu bagian HMI atau Human Machine Interface dan memainkan peranan yang sangat penting pada sebuah sistem terpadu dimana input/masukan dari manusia diperlukan di dalam sistem, misal: pintu elektronik, elevator, kalkulator, microwave, dan masih banyak lagi.
Keypad merupakan tombol push button yang disusun sebagai baris dan kolom sehingga membentuk matriks.. Keypad Matrix memang sangat akrab digunakan dalam aplikasi-aplikasi mikrokontroler karena aritekturnya yang sederhana dan mudah untuk digabungkan dengan segala macam mikrokontroler. Gambar 5.1 memperlihatkan bentuk fisik keypad. Keypad ini memiliki 16 tombol yaitu 0,1,2,3,4,5,6,7,8,9,A,B,C,D,* dan #.
Gambar. 1 Keypad 4x4
- ALAT DAN BAHAN YANG DIGUNAKAN
1. 1 set Personal Computer/Laptop yang sudah berisi program Code Vision dan Khazama
2. 1 buah catu daya DC +5V
3. 1 buah multimeter
4. 1 buah ISP Downloader AVR
5. 1 buah sistem minimum AVR
6. 1 buah I/O
7. 1 buah kabel printer USB
8. 1 buah kabel pita hitam
- PROSEDUR
1. Rangkailah peralatan yang diperlukan seperti dalam Gambar 2. Hubungkan soket jumper PORTB pada minimum system dengan soket jumper KEYPAD dan soket jumper PORTC pada minimum system dengan soket jumper OUTPUT pada I/O.

GAMBAR 2. Rangkaian Antar Muka Mikrokontroller
2. Buka program Code Vision AVR
- Buatlah project baru dengan inisialisasi PORTB.0-PORTB.3 sebagai output dengan kondisi awal berlogika HIGH dan PORTB.4-PORTB.7 sebagai input dengan pull-up (DDRB = 0FH dan PORTB=FFH), serta PORTC sebagai output dan kondisi awal LOW (DDRC = FFH dan PORTC=00H), sehingga pada program bagian inisialisasi PORTB dan PORTC terlihat sebagai berikut:
PORTB=0xff;
DDRB=0x0f; //portb sebagai input dan output, 0b00001111
PORTC=0x00;
DDRC=0xff; // portc sebagai output
- KETENTUAN PRAKTIKUM
Program Kombinasi Keypad – Led
1. Hubungkan mikrokontroler ke keypad dan 8 buah LED sebagai output yang masing-masing mewakili :
Keypad | Piranti |
1 | Air Conditioner |
2 | Heater |
3 | Coffeepot |
4 | Radio |
5 | Lampu Ruang Makan |
6 | Lampu Ruang Tamu |
7 | Lampu Ruang Keluarga |
8 | Lampu Ruang Tidur |
a. Gambarlah rangkaiannya
b. Buatlah program yang dapat menyalakan/mematikan masing-masing piranti tersebut dengan tombol yang bersesuaian serta tetap membiarkan Radio menyala meskipun keypad ditekan kedua kalinya.
Catatan : Tombol sekali ditekan piranti menyala,tombol ditekan lagi, piranti mati
- HASIL PRAKTIKUM
a. Gambar Rangkaian Keypad – Led

b. Nyala LED ketika tombol 4 ditekan

- PEMBAHASAN
1. Dalam gambar rangakaian keypad- LED diatas, keypad sebagai input dan LED sebagai output. Keypad dihubungkan ke PORTB mikrokontroler dengan posisi baris (b1-b4) terhubung ke PORTB.0-PORTB.3 dan posisi kolom (c1-c4) terhubung ke PORTB.4-PORTB.7. Sedangkan untuk mengetahui tombol apa yang ditekan oleh user, 8 buah LED yang terdapat dalam MODUL I/O dihubungkan ke PORTC.
2. Script Program
while (1)
{
unsigned char A;
A=keypad();
if(sts==0)
{
// Place your code here
if (A==1) {
PORTC=1;
sts=1;
}
if (A==2) {
PORTC=2;
sts=1;
}
if (A==3) {
PORTC=4;
sts=1;
}
if (A==4) {
PORTC=8;
}
if (A==5) {
PORTC=16;
sts=1;
}
if (A==6) {
PORTC=32;
sts=1;
}
if (A==7) {
PORTC=64;
sts=1;
}
if (A==8) {
PORTC=128;
sts=1;
}
}
if(sts==1){
if (A==1) {
PORTC=0;
sts=0;
}
if (A==2) {
PORTC=0;
sts=0;
}
if (A==3) {
PORTC=0;
sts=0;
}
if (A==5) {
PORTC=0;
sts=0;
}
if (A==6) {
PORTC=0;
sts=0;
}
if (A==7) {
PORTC=0;
sts=0;
}
if (A==8) {
PORTC=0;
sts=0;
}
};
}
}
unsigned char keypad()
{
PORTB = 0b11111110; //aktifkan baris1 (memberi logika 0 ke baris1)
delay_ms(100);
if(PINB.7==0) return (10);
if(PINB.6==0) return (3);
if(PINB.5==0) return (2);
if(PINB.4==0) return (1);
//========================
PORTB = 0b11111101; //aktifkan baris2
delay_ms(100);
if(PINB.7==0) return (11);
if(PINB.6==0) return (6);
if(PINB.5==0) return (5);
if(PINB.4==0) return (4);
//========================
PORTB = 0b11111011; //aktifkan baris3
delay_ms(100);
if(PINB.7==0) return (12);
if(PINB.6==0) return (9);
if(PINB.5==0) return (8);
if(PINB.4==0) return (7);
//========================
PORTB = 0b11110111; //aktifkan baris4
delay_ms(100);
if(PINB.7==0) return (13);
if(PINB.6==0) return (15);
if(PINB.5==0) return (0);
if(PINB.4==0) return (14);
}


Penjelasan
1. Pada script program menggunakan variabel “sts”
2. Agar lampu LED dapat menyala dan mati maka pada script perlu di deklarasikan variabel LED terslebih dahulu.
3. Pendeklarasian variabel pada area global seperti “unsigned int sts=0”
4. Pada kondisi pertama LED harus mati maka nilai “sts=0”
5. Untuk mematikan dan menghidupkan LED mengunakan logika “if”, yaitu sebagai berikut :
if(sts==0)
{
// Place your code here
if (A==1) {
PORTC=1;
sts=1;
}
if(sts==1
{
if (A==1) {
PORTC=0;
sts=0;
}
6. Agar LED no.4 tidak mati saat di tekan untuk kedua kali pada keypad no.4, maka pada script tidak perlu di tulis variabel }”sts”nya, yaitu sebagai berikut :
if (A==4) {
PORTC=8;
}
7. Unsigned char keypad();
Berfungsi untuk mendeklarasikan fungsi keypad() dengan bilangan yang dikembalikan ke program utama sebagai bilangan integer.
8. Sintak delay_ms(100); artinya perintah untuk memberi jeda selama 100 ms. Sehingga ketika program dijalankan, tampilan tiap perubahan memiliki jeda selama 100 ms.
Keterangan :
- Lampu LED menyala jika keypad di tekan satu kali.
Misal : keypad nomor 1 di tekan maka LED nomor satu akan menyala
- Jika ditekan lagi (ditekan 2 kali ) pada tombol yang sama maka LED akan mati.
misal : Pada keadaan awal, lampu LED 1 mati lalu ditekan keypad no.1 maka LED akan menyala dan ketika keypad di tekan lagi lampu LED 1 akan mati.
- Kecuali LED no.4 jika di tekan 2 kali LED tetap menyala.
- KESIMPULAN
1. Keypad merupakan tombol push button yang disusun sebagai baris dan kolom sehingga membentuk matriks.
2. Keypad sebagai input dan LED sebagai output. Keypad dihubungkan ke PORTB mikrokontroler dengan posisi baris (b1-b4) terhubung ke PORTB.0-PORTB.3 dan posisi kolom (c1-c4) terhubung ke PORTB.4-PORTB.7. Sedangkan untuk mengetahui tombol apa yang ditekan oleh user, 8 buah LED yang terdapat dalam MODUL I/O dihubungkan ke PORTC.
3. Agar lampu LED dapat menyala dan mati maka pada script perlu di deklarasikan variabel LED terslebih dahulu.
4. Unsigned char keypad();
Berfungsi untuk mendeklarasikan fungsi keypad() dengan bilangan yang dikembalikan ke program utama sebagai bilangan integer.
5. Dalam memprogram mikrokontroler untuk menyalakan suatu LED adalah dengan memasukkan instruksi-instruksi dalam sebuah program sesuai dengan tampilan LED yang diinginkan.
- DAFTAR PUSTAKA
Modul 5.2010. Antarmuka Mikrokontroler Dengan Keypad.Malang:Universitas Negeri Malang, Jurusan Teknik Elektro:
http://www.ari-sty.cz.cc/2010/11/antarmuka-keypad-matrix-dengan.html (Online), diakses pada tanggal 2 Desember 2010
0 komentar:
Posting Komentar