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

Postingan populer dari blog ini

Cx-Programmer "Pengemansan Botol Minuman"

PLC Counting system bottle filling machine using Cx-programmer and Cx-designer

PLC Car Park Program Ladder