Total Tayangan Halaman

Sabtu, 21 Maret 2015

Tutorial Arduino Menggunakan LCD dan Keypad


Alat dan Bahan


Keypad 3x4 - 1 buah
Arduino Uno R3 - 1 buah
Potensiometer - 1 buah
LCD ukuran 2x16 - 1 buah
Breadboard - 1 buah
- Kabel USB
Kabel jumper 
- resistor 330 Ohm

Cara Kerja


1. Pasangkan semua komponen seperti pada gambar berikut .


Nah, jadi secara umum kita memasangkan LCD (sepaket sama potensiometer) ke Arduino, lalu memasangkan keypad ke Arduino, lalu menghubungkan keduanya melalui program sehingga kita bisa memasukkan input dari keypad dan melihat output di LCD. Pastikan pin yang terhubung sudah benar dan kabel-kabel terhubung dengan baik. Kesalahan yang umum terjadi adalah salah penempatan kabel atau ada kabel yang terlalu dekat dan bersinggungan.

2. Jalankan Arduino IDE, masukkan source code di bawah

3. Pastikan pin yang terdefinisi di program sama dengan pin pada rangkaian. Jika sudah, lakukanverify dan upload.


Tambahan: Sebenarnya lebih keren lagi jika saat timer menunjukkan angka nol, akan muncul bunyi alarm. (Contoh yang ada di video ada sound effect biar meyakinkan saja). Tunggu sampai kami punya komponennya hehe.

Berikut adalah tampilannya


Source Code

// import dari library. Pastikan sudah ada keduanya.
#include <LiquidCrystal.h>
#include <Keypad.h>

//Pendefinisian konstanta untuk keypad
const int NRow = 2; //Jumlah baris LCD
const int NCol = 16; //Jumlah kolom LCD
const byte ROWS = 4; //empat baris keypad
const byte COLS = 3; //tiga kolom keypad
char keys[ROWS][COLS] = {
  {'1','2','3'},
  {'4','5','6'},
  {'7','8','9'},
  {'+','0','='}
};

// inisialisasi pin
LiquidCrystal lcd(0, 1, 5, 4, 3, 2); //pin untuk LCD
byte rowPins[ROWS] = {12, 11, 10, 9}; //pin untuk row keypad
byte colPins[COLS] = {8, 7, 6}; //pin untuk column keypad

Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );

//deklarasi variabel
boolean valOnePresent = false;
boolean next = false;
boolean final = false;
String num1, num2;
int timer;
char op;


void setup() {
  // setup untuk awalan tampilan di LCD
  lcd.begin(NCol, NRow);
  lcd.setCursor(1,0);
  lcd.print("Timer SegoGule");
  delay(2000);
  lcd.clear();
  lcd.setCursor(1,0);
  lcd.print("by Yogi, Farrell");
  lcd.setCursor(1,1);
  lcd.print("Prama, Adhela");
  delay(3000);
  lcd.clear();
}

void loop(){
  char key = keypad.getKey();
  //set durasi
  lcd.setCursor(1,0);
  lcd.print("Set Durasi: ");
  lcd.setCursor(1,1);
  if (key != NO_KEY && (key=='1'||key=='2'||key=='3'||key=='4'||key=='5'||key=='6'||key=='7'||key=='8'||key=='9'||key=='0')){
    if (valOnePresent != true){
      lcd.setCursor(1,1);
      num1 = num1 + key;
      int numLength = num1.length();
      lcd.setCursor(1, 1); 
      lcd.print(num1);
    }
    else {
      num2 = num2 + key;
      int numLength = num2.length();
      lcd.setCursor(15 - numLength, 1);
      lcd.print(num2);
      final = true;
    }
  }
  //set!
  if (key == '='){
    timer = num1.toInt();
    for(int i=0;i=timer;i++){  
      lcd.clear();
      lcd.setCursor(0,0);
      lcd.print("Sisa waktu: ");
      lcd.setCursor(0,1);
      lcd.print(timer--);
      delay(1000);
    }
    lcd.clear();
    lcd.setCursor(1,0);
    lcd.print("Waktu habis!");
    timer=0;
    num1=0;
    delay(3000);
  }
  //batal
  else if (key == '+'){
    lcd.clear();
    valOnePresent = false;
    final = false;
    num1 = "";
    num2 = "";
    timer = 0;
    op = ' ';
  }
}

2 komentar:

  1. kok ada yang error ya??

    num1=0;

    di void loop diatas statemen // batal

    BalasHapus

  2. sketch_jan14a_Keypad_LCD:3:20: error: Keypad.h: No such file or directory

    compilation terminated.

    exit status 1
    Keypad.h: No such file or directory

    Pesan ini kenapa? dan apakah maksudnya? bagaimana cara menanganinya?

    BalasHapus