Hardware Requirements
- Arduino UNO R3
- LCD 16x2 1x
- Keypad 4x4 1x
- Lampu Led Hijau 1x
- Lampu Led Merah 1x
- Resistor 220 ohm 2x
- Beberapa kabel jumper
- Breadboard
setelah itu kita rangkai seperti skema di bawah .. *hati - hati dalam pengkabelan, sering terjadi kesalahan dikarenakan tidak teliti yang nanti pada saat upload sketch nya juga hasil nya tidak akan sesuai dengan yang diharapkan.
LCD + Keypad Arduino | Created with Fritzing |
nah seperti biasa kita masuk ke langkah pengkodingan. hehehe. simple kok. ga susah susah amat. kalau sudah paham bisa kalian kembangkan untuk doorlock atau semacamnya. library yang dibutuhkan , sedangkan untuk library Password bisa didapatkan DISINI.
lalu setelah kita melakukan import library . kita inisialisasikan objek pada masing - masing library . seperti di bawah. berdasarkan gambar skema di atas.
Password password = Password("7520"); //inisialisasi password nya.
LiquidCrystal lcd(13, 12, 11, 10, 9, 8); //inisialisasi pada LCD.
//karena tutorial ini menggunakan 4x4 jelas jadi kolom 4 dan baris 4
const byte ROWS = 4;
const byte COLS = 4;
//inisialisasi lampu sebagai output bila password bila maka akan menyala warna biru,
//dan bila password salah akan menyala lampu merah
const int blue = 18;
const int red = 19;
//inisialisasi umum posisi untuk setiap angka dan huruf pada keypad
char keys[ROWS][COLS] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
//inisialisasi kolom pada keypad. urutan nya (4,3,2,1)
// jadi nomor pin pada keypad dengan 1 masuk ke pin arduino 15.
// 2 masuk ke pin arduino 14. begitu seterusnya.
byte colPins[COLS] = {3, 2, 14, 15};
//inisialisasi baris pada keypad. urutan nya (8,7,6,5)
// jadi nomor pin pada keypad dengan 5 masuk ke pin arduino 4.
// 6 masuk ke pin arduino 5. begitu seterusnya.
byte rowPins[ROWS] = {7, 6, 5, 4};
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
bila sudah paham dan mengerti kita langsung saja ketikkan code untuk cycle pada ardino , setup() dan loop() nya seperti di bawah ... dan bila ingin full code nya bisa kalian dapatkan DISINI !!!
void setup(){
Serial.begin(9600);
pinMode(red, OUTPUT);
pinMode(blue, OUTPUT);
//sumber diambil pada examples di library password.
keypad.addEventListener(keypadEvent);
lcd.begin(16,2);
delay(1000);
}
void loop(){
lcd.setCursor(0,0);
lcd.print("Pass:");
keypad.getKey();;
}
void checkPassword(){
if(password.evaluate()){
digitalWrite(blue, HIGH);
lcd.clear();
lcd.print("Success ...");
delay(1000);
digitalWrite(blue, LOW);
} else {
digitalWrite(red, HIGH);
lcd.clear();
lcd.print("Wrong ...");
delay(1000);
digitalWrite(red, LOW);
}
}
void keypadEvent(KeypadEvent eKey){
switch (keypad.getState()){
case PRESSED:
lcd.setCursor(0,1);
lcd.print(eKey);
switch (eKey){
case '*': checkPassword(); lcd.clear(); currentLength=0;break;
case '#': password.reset(); lcd.clear();currentLength=0; break;
default:// password.append(eKey);
password << eKey;
currentLength++;
//Print some feedback.
lcd.setCursor(0,0);
lcd.print("Pass: ");
for (byte i=0; i<currentLength; i++){
lcd.print('*');
}
}
}
}
NOTE: pada saat sudah melakukan input baik itu success.. atau wrong.. harap biasakan tekan # untuk reset. karena apabila tidak hasil nya bila pada saat awal kalian success dan tidak menekan # lalu kalian input password yang salah. maka output nya akan success. fungsi reset disini untuk menghilangkan value array. karena masih tersimpan di library nya. kalau masih kurang mengerti comment aja ya :)
sumber:
arduino.cc
0 comments:
Post a Comment