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
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 = ' ';
}
}
kok ada yang error ya??
BalasHapusnum1=0;
di void loop diatas statemen // batal
BalasHapussketch_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?