Brankas Mikrokontroller
Jadi ini project pertama di kelas, kami mengutip dari beberapa contoh project yang sudah dibuat dan memodifikasi ulang. Berikut kurang lebih point-point nya.
FUNGSI
ALAT
Alat yang kami
sebut Brankas
Mikrokontroller ini memiliki fungsi sebagai pengunci pintu brankas menggunakan
keypad (password) berbasis Arduino.
CARA
KERJA ALAT
Dengan alat yang kami sebut Brankas Mikrokontroller berbasis Arduino ini memiliki cara kerja sebagai berikut :
· Tampilan awal “-=Access Control=-“ dan “Digimon Startè” ketika daya dipasang akan muncul
· Tampilan “EnterPassword” muncul sebagai tanda password sudah bisa dimasukkan untuk membuka pintu brankas
· User memasukan password yang telah disetting sebelumnya di Arduino, yakni 13619
· Jika password benar maka Arduino akan menggerakan motor servo yang telah dihubungkan dengan slot (untuk mengunci/membuka pintu brankas) yang akan menggerakan slot pengunci pintu, kemudian Arduino juga sudah disetting terhubung ke LCD dengan output “Hello Bos!!” jika password benar.
· Jika password salah maka motor servo tidak akan bergerak tetapi LED hijau akan berfungsi dan LCD akan menampilkan output “Akses Ditolak”
PROGRAM DAN RANGKAIAN ALAT
#include "Arduino.h"
#include "LiquidCrystal.h"
#include "Keypad.h"
#include "Password.h"
#include "LED.h"
#include
"Servo.h"
byte currentLength = 0;
Password password = Password("13619");
LiquidCrystal lcd(A4, A3, 13, 12, 11, 10);
Servo myservo;
const byte ROWS= 4;
const byte COLS= 3;
const int green = 9;
char keys[ROWS][COLS] =
{
{'1', '2', '3'},
{'4', '5', '6'},
{'7', '8', '9'},
{'*', '0', '#'}
};
byte rowPins[ROWS]= {2,3,4,5};
byte colPins[COLS]= {6,7,8};
Keypad keypad = Keypad( makeKeymap(keys), rowPins,
colPins, ROWS, COLS );
void setup() {
Serial.begin(9600);
lcd.begin(16, 2);
lcd.setCursor(0,0);
lcd.print("=Access Control=");
delay(2000);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Digimon
Start-->");
delay(3000);
lcd.clear();
pinMode(green, OUTPUT);
myservo.attach(A5);
myservo.write(90);
keypad.addEventListener(keypadEvent);
}
|
void loop() {
lcd.setCursor(0, 0);
lcd.print("Enter Password");
lcd.setCursor(0,1);
lcd.print("==> ");
keypad.getKey();
}
void checkPassword(){
if(password.evaluate()){
myservo.attach(A5);
myservo.write(0);
lcd.clear();
lcd.print("Hello Bos!!");
delay(5000);//Lama waktu servo
myservo.write(90);
}
else {
digitalWrite(green, HIGH);
lcd.clear();
lcd.print("Akses Ditolak");
delay(5000);//lama led on
digitalWrite(green, 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,1);
lcd.print("Pass: ");
for
(byte i=0; i<currentLength; i++){
lcd.print('*');
}
}
}
}
|
Ini rangkaian yang dipakai, sebenernya itu ngga perlu transistor juga.
Komentar
Posting Komentar