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