/* created by arduinobyme.blogspot.com support with click ads .. thank's :-) */ #include #include #include byte currentLength = 0; Password password = Password("1234"); //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 colom 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 colom 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 ); 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