Thursday, April 14, 2016

Make Simple Password with LCD and Keypad Arduino

Posted by Unknown
huh .. setelah beberapa hari ga nge blog. baru kali ini ada waktu lagi. dikarenakan tugas kuliah yang semrawut. karena dikerjakan mendadak. ahahaha. langsung saja ya. tutorial kali ini membuat validasi password dengan mengetikkan dengan Keypad yang nanti akan muncul pada LCD . ketika kita tekan # pada keypad sebagai enter. maka lampu led akan berwarna ijo bila benar. dan merah bila salah . berikut perangkat keras yang digunakan

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