Translate

Modifikasi Door Lock Mobil dengan Arduino

Modifikasi Door Lock Mobil dengan Arduino


      Pada kesempatan kali ini saya akan menjelaskan mengenai bagaimana cara membuat sebuat simulasi dengan tujuan untuk modifikasi pintu mobil atau door lock mobil dengan ketentuan yaitu seperti berikut. Door switch = Trigger (-12V) lampu nyala, timer 5 menit mati Apabila trigger (-12V) hilang, tetap hidup selama 10 detik, Unlock = Trigger pulse (+12V), lampu nyala selama 10 detik, Lock = Trigger pulse (+12V), diatas tidak berfungsi, Kontak ON = Trigger (+12V), timer batal semua.


1. Program Arduino

#include <DS3231.h>
DS3231  rtc(SDA, SCL);
Time  t;

int doorswitch = 2;
int unlock = 3;
int lock = 4;
int kontakon = 5;
int relaylampu = 6;

int doorswitchx;
int unlockx;
int lockx;
int kontakonx;
int tanda = 0;
int kunci;

void setup() {
 Serial.begin(9600); 
 rtc.begin();  
 rtc.setDOW(WEDNESDAY);     // Set Day-of-Week to SUNDAY
 rtc.setTime(0, 0, 0);     // Set the time to 12:00:00 (24hr format)
 rtc.setDate(1, 1, 2014);   // Set the date to January 1st, 2014

 pinMode(relaylampu,OUTPUT);
}

void loop() {
t = rtc.getTime();

doorswitchx = digitalRead(doorswitch);
unlockx = digitalRead(unlock);
lockx = digitalRead(lock);
kontakonx = digitalRead(kontakon);

if(kontakonx == 1){
kunci = 1;
rtc.setTime(0, 0, 0);
digitalWrite(relaylampu,HIGH); //lampu off
}

if(lockx == 1){
kunci = 1;
}

if(lockx == 0){
kunci = 0;
}

if((unlockx == 1)&&(lockx == 0)){
  digitalWrite(relaylampu,LOW); //lampu on
  delay(10000); //10 detik
  digitalWrite(relaylampu,HIGH); //lampu off
}


if((doorswitchx == 0)&&(tanda == 0)&&(lockx == 0)){
  digitalWrite(relaylampu,HIGH); //lampu off
  rtc.setTime(0, 0, 0);
}

if((doorswitchx == 0)&&(tanda == 1)&&(lockx == 0)){
  digitalWrite(relaylampu,LOW); //lampu on
  delay(10000); //10 detik
  digitalWrite(relaylampu,HIGH); //lampu off
  rtc.setTime(0, 0, 0);
  tanda = 0;
}

if((doorswitchx == 1)&&(tanda == 0)&&(t.min < 5)&&(lockx == 0)){
  digitalWrite(relaylampu,LOW); //lampu on
  t = rtc.getTime();
  tanda = 1;
}

if((doorswitchx == 1)&&(t.min >= 5)&&(lockx == 0)){
  digitalWrite(relaylampu,HIGH); //lampu off
  t = rtc.getTime();
  tanda = 1;
}

  Serial.print(t.hour, DEC);
  Serial.print("/");
  Serial.print(t.min, DEC);
  Serial.print("/");
  Serial.println(t.sec, DEC);  

}


2. VIDEO HASILNYA




No comments:

Post a Comment