LAPORAN AKHIR 3 MODUL 1

 




1. Komponen [kembali] 

a. Keypad

Keypad Matriks adalah tombol-tombol yang disusun secara maktriks (baris x kolom) sehingga dapat mengurangi penggunaan pin input. Sebagai contoh, Keypad Matriks 4×4 cukup menggunakan 8 pin untuk 16 tombol. Hal tersebut dimungkinkan karena rangkaian tombol yang disusun secara horizontal membentuk baris dan secara vertikal membentuk kolom.

b. LCD Character

Arduino Uno adalah board mikrokontroler berbasis ATmega328 (datasheet). Memiliki 14 pin input dari output digital  dimana 6 pin input tersebut dapat digunakan sebagai output PWM dan 6 pin input analog, 16 MHz osilator kristal, koneksi USB, jack power, ICSP header, dan tombol reset. Untuk mendukung mikrokontroler agar dapat digunakan, cukup hanya menghubungkan Board Arduino Uno ke komputer dengan menggunakan kabel USB atau listrik dengan AC yang-ke adaptor-DC atau baterai untuk menjalankannya.

c. Arduino Uno
Arduino Uno adalah board mikrokontroler berbasis ATmega328 (datasheet). Memiliki 14 pin input dari output digital  dimana 6 pin input tersebut dapat digunakan sebagai output PWM dan 6 pin input analog, 16 MHz osilator kristal, koneksi USB, jack power, ICSP header, dan tombol reset. Untuk mendukung mikrokontroler agar dapat digunakan, cukup hanya menghubungkan Board Arduino Uno ke komputer dengan menggunakan kabel USB atau listrik dengan AC yang-ke adaptor-DC atau baterai untuk menjalankannya.

2. Rangkaian Simulasi [kembali]

 

3. Flowchart [kembali]


4. Listing Program [kembali]

#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
    }
}

5. Video [kembali] 


1. Pada rangkaian percobaan 3 kenapa digunakan pin data hanya dari D4 sampai D7 ?
Karena kita bisa menghemat pin microcontroller dengan menggunakan 4 bit saja yaitu dari bit D4 sampai ke bit D7 ditambah dengan 3x bit control. Pada rangkaian percobaan 3 menggunakan mode-4bit, penggunaan mode-4bit sedikit lebih rumit dari mode-8bit akan tetapi dengan mode-4bit kita akan menghemat 4 buah pin 10 untuk keperluan yang lain.

2. Pada percobaan tiga digunakan keypad 3 x 4. Apakah ada perbedaan dengan 4 x 4 pada
listing program yang digunakan sebelumnya, jelaskan
Perbedaan listing program keypad 3x3 dengan 4x4 yaitu
1. Pada keypad 3x3 listing programnya :
#include <LiquidCrystal.h> //Deklarasi library 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'}, //Inisialisasi keypad matriks 4x3
{'7','8','9'},
{'*','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
}
}
Pada keypad 4x4 listing programnya;
#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 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] = {
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.begin();
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);
}
}

 
 
HTML                 Klik Disini
Simulasi Proteus Klik Disini
Listing Program  Klik Disini
Video                   Klik Disini
 

Tidak ada komentar:

Posting Komentar