com]
Kebutuhan Hardware :
Keypad 4x4
Modul LCD 2x16
Modul Relay 5Vdc
Solenoid
Buzzer
Modul Arduino UNO
Power supply +9Volt
INKUBATEK
Solenoid Buzzer
INKUBATEK
KEYPAD 4X4
Modul Relay
Diagram Blok:
LCD
Ar
du
Keypad in Relay 1 Solenoid
o
U Buzzer
N
Schematics
INKUBATEK
Koneksi ARDUINO:
Pin ARDUINO Koneksi
Pin 8 Relay
Pin 9 Buzzer
Source Code/Sketch :
/*************************************
* Program : Project 71. Kunci Elektrik dengan Password
* Input : Keypad 4x4
* Output : LCD 2x16, BUZZER, Relay, Solenoid
* 125 Proyek Arduino Inkubatek
* www.tokotronik.com
*
***********************************/
#include <Keypad.h>
#include
<LiquidCrystal.h>
#include <EEPROM.h>
void setup()
{
pinMode(8,OUTPUT)
;
pinMode(9,OUTPUT)
; digitalWrite(8,0);
digitalWrite(9,0);
lcd.begin(16, 2);
lcd.print(" Kunci
Elektrik");
lcd.setCursor(0,1);
lcd.print("Dengan
Password"); delay(2000);
// cek alamat
0 cek=EEPROM.read(0);
if(cek==0xFF){
cek=1;
EEPROM.write(0,'1')
;
pw1='1'; EEPROM.write(1,'1');
pw2='1'; EEPROM.write(2,'1');
pw3='1'; EEPROM.write(3,'1');
pw4='1'; EEPROM.write(4,'1');
pw5='1'; EEPROM.write(5,'1');
pw6='1'; EEPROM.write(6,'1');
}
else{
pw1=EEPROM.read(1)
;
pw2=EEPROM.read(2)
;
pw3=EEPROM.read(3)
;
pw4=EEPROM.read(4)
;
pw5=EEPROM.read(5)
;
pw6=EEPROM.read(6);
}
fkpd=0;
delay(200)
;
}
void loop()
{
// display time
digitalWrite(8,1);
lcd.clear();
lcd.print("Silakan
kunci...");
lcd.setCursor(0,1);
lcd.print("Tekan #");
fkpd=2;
goKeypad()
; lcd.clear();
lcd.print("Pintu
Terkunci"); delay(3000);
pass:
lcd.clear();
lcd.print("Masukan
Password"); lcd.setCursor(0,1);
fkpd=1;
menu=0;
goKeypad()
;
if(menu==4) goto pass;
}
// keypad
void goKeypad(){
do{
key=keypad.getKey()
; if(key != NO_KEY){
}
}
while(fkpd);
}
void cek_password()
{ pw_kpd[cnt]=key;
cnt++;
lcd.print('*');
// lcd.print(char(key));
if((cnt==6)&&(menu==0))
{ delay(500);
if((pw1==pw_kpd[0])&&(pw2==pw_kpd[1])&&(pw3==pw_kpd[2])&&(pw4==pw_kpd[3])&&(pw5==
p w_kpd[4])&&(pw6==pw_kpd[5])){
lcd.clear();
lcd.print("Password
Benar"); lcd.setCursor(0,1);
lcd.print("Silakan Masuk");
digitalWrite(8,1);
digitalWrite(9,1);
delay(200);
digitalWrite(9,0);
delay(200);
digitalWrite(9,1);
delay(200);
digitalWrite(9,0);
cnt=0;
fkpd=0
;
s=0;
for(t=0;t<6;t++)pw_kpd[t]='
'; delay(3000);
}
else {
lcd.clear();
lcd.print("Password
Salah"); s++;
if(s < 3){
digitalWrite(9,1)
; delay(2000);
digitalWrite(9,0)
; lcd.clear();
lcd.print("Masukan
Password"); lcd.setCursor(0,1);
cnt=0;
for(t=0;t<6;t+
+) pw_kpd[t]='
';
}
else if (s==3)
{ lcd.clear()
;
lcd.print("Anda 3x Salah");
lcd.setCursor(0,1);
lcd.print("Tunggu 5
Menit"); for(i=0;i<75;i++){
digitalWrite(9,1)
; delay(2000);
digitalWrite(9,0)
; delay(2000);
}
lcd.clear();
lcd.print("Masukan
Password"); lcd.setCursor(0,1);
cnt=0
; s=0;
for(t=0;t<6;t++)pw_kpd[t]=' ';
}
}
}
else if((cnt==6)&&(menu==1)){
if((pw1==pw_kpd[0])&&(pw2==pw_kpd[1])&&(pw3==pw_kpd[2])&&(pw4==pw_kpd[3])&&(pw5==
p w_kpd[4])&&(pw6==pw_kpd[5])){
lcd.clear();
lcd.print("Password
Benar");
lcd.setCursor(0,1);
delay(2000);
lcd.clear();
lcd.print("PW
baru:"); cnt=0;
menu=2
; s=0;
for(t=0;t<6;t++)pw_kpd[t]=' ';
}
else {
s+
+;
if(s < 3){
lcd.clear();
lcd.print("Password
Salah"); cnt=0;
delay(2000)
; lcd.clear();
lcd.print("Ganti Password");
lcd.setCursor(0,1);
lcd.print("PW lama=");
for(t=0;t<6;t++)pw_kpd[t]='
';
}
else if (s==3)
{ lcd.clear()
;
lcd.print("Anda 3x Salah");
lcd.setCursor(0,1);
lcd.print("Tunggu 5
Menit"); for(i=0;i<75;i++){
digitalWrite(9,1)
; delay(2000);
digitalWrite(9,0)
; delay(2000);
}
lcd.clear();
lcd.print("Ganti
Password");
lcd.setCursor(0,1);
lcd.print("PW lama=");
cnt=0;
s=0;
for(t=0;t<6;t++)pw_kpd[t]=' ';
}
}
}
}
10 Inkubatek [supported by : www.tokotronik.com]
void entri_password()
{ lcd.print(char(key))
; pw_kpd[cnt]=key;
cnt++;
if(cnt==6){
lcd.setCursor(0,1)
;
lcd.print("D=save,C=cancel")
; menu=3;
cnt=0;
}
}
Jalannya Alat :
1. Koneksikan antara Arduino UNO dengan peripheral lain (keypad dll) seperti pada
rangkaian (skematik).
2. Pasang power supply (adaptor 12 V) ke konektor yang terhubung dengan
solenoid kemudian hidupkan (colokkan ke sumber PLN 220V).
3. Pasang power supply 9 Vdc ke konektor DC Arduino dan kemudian hidupkan (colokkan
ke sumber PLN 220V).
4. POWER SUPPLY JANGAN SAMPAI TERTUKAR ANTARA 12V DAN 9V !!!
5. LAMA SELENOID ON (BUKA KUNCI) MAKSIMAL SELAMA 60 DETIK!!! JANGAN TERLALU
LAMA MENGHIDUPKAN SELENOID KARENA BISA MENYEBABKAN SELENOID PANAS
DAN MUDAH MATI!!! (TERGANTUNG JENIS SOLENOID)
6. Tampilan pertama pada LCD :
Kunci Elektrik Dengan Password
7. Setelah 2 detik berikutnya akan tampil perintah untuk mengunci (selenoid aktif) :
Silakan kunci..
Tekan #
8. Tekan tombol pagar ( # ) untuk menguncinya.
Pintu Terkunci
Masukan Password
10. Untuk nilai password awal, kode passwordnya adalah “111111” (angka 1 enam kali).
Tekan angka “1” sejumlah 6x, display di :
Masukan Password
******
11. Jika password benar maka akan tampil :
Password
Benar Silakan
Masuk
12. Buzzer juga akan berbunyi : “beep – beep” , kemudian relay aktif dan selenoid akan
terbuka.
13. Jika password salah :
Password Salah
14. Kesempatan memasukkan password adalah 3x. Jika sudah 3x salah terus maka harus
menunggu 5 menit untuk dapat entri password lagi :
Anda 3x Salah
Tunggu 5
Menit
15. Untuk mengganti password , pastikan alat dalam kondisi terkunci, kondisi ketika kita
akan entri password untuk membuka kunci, atau tampilan dalam kondisi seperti ini.
Masukan Password
16. Kalau akan membuka kunci kan kita tinggal entri passwordnya, lain halnya untuk
Ganti Password
PW
lama=******
18. Jika password benar maka akan tampil :
Password Benar
19. Sekitar 2 detik kemudian akan tampil permintaan mengisi password yang baru :
PW baru :
20. Masukkan password baru yang dikehendaki. Berupa kombinasi angka 6 digit.
Misalnya (contoh saja ya..) : “234567”
PW baru : 234567
21. Kemudian muncul pilihan untuk simpan password atau cancel. Tekan “ D” jika akan
menyimpan (mengganti password) atau “C” jika cancel.
Simpan PW Baru..
Masukan Password