0% found this document useful (0 votes)
15 views7 pages

New Text Document

Uploaded by

awaisjanio365
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
15 views7 pages

New Text Document

Uploaded by

awaisjanio365
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd

#include <DS3231.

h>//Memanggil RTC3231 Library


#include <Wire.h> // i2C Conection Library
#include <LiquidCrystal.h> //Libraries
#include <EEPROM.h>

LiquidCrystal lcd(2, 3, 4, 5, 6, 7); //Arduino pins to lcd

#define bt_clock A0
#define bt_up A1
#define bt_down A2
#define bt_timer A3

#define relay 8
#define buzzer 13

// Init DS3231
DS3231 rtc(SDA, SCL);

// Init a Time-data structure


Time t; //pencacah string time()

int hh = 0, mm = 0, ss = 0, dd = 0, bb = 0, set_day;
int yy = 0;
String Day = " ";

int StartHH = 0, StartMM = 0, FinishHH = 0, FinishMM = 0, setMode = 0, setAlarm


= 0, alarmMode=1;
int Start1HH, Start1MM, Finish1HH, Finish1MM;
int Start2HH, Start2MM, Finish2HH, Finish2MM;
int Start3HH, Start3MM, Finish3HH, Finish3MM;
int Start4HH, Start4MM, Finish4HH, Finish4MM;

int timer1, timer2, timer3, timer4;

int stop =0, mode=0, flag=0;

void setup(){
[Link](); // memulai koneksi i2c dengan RTC

pinMode(bt_clock, INPUT_PULLUP);
pinMode(bt_up, INPUT_PULLUP);
pinMode(bt_down, INPUT_PULLUP);
pinMode(bt_timer, INPUT_PULLUP);

pinMode(relay, OUTPUT);
digitalWrite(relay, HIGH);

pinMode(buzzer, OUTPUT);

[Link](16, 2); // Configura lcd numero columnas y filas


[Link](0,0); //Show "TIME" on the LCD

[Link] (0,0);
[Link](" Real Time Clock ");
[Link] (0,1);
[Link](" 4Timer 1Relay ");
delay (2000);
[Link]();
stop=[Link](50);
if(stop==0){
}else{
mode=1;WriteEeprom ();delay (20);
mode=2;WriteEeprom ();delay (20);
mode=3;WriteEeprom ();delay (20);
mode=4;WriteEeprom ();delay (20);
mode=0;
}
[Link](50,0);

ReadEeprom();
//Set RTC Untuk Pertama kali
//[Link](2); // Set Day-of-Week to SUNDAY
//[Link] (00, 9, 50);
//[Link](12, 11, 2017);
}

void loop(){
t = [Link]();
Day = [Link](1);

if (setMode == 0){
hh = [Link],DEC;
mm = [Link],DEC;
ss = [Link],DEC;
dd = [Link],DEC;
bb = [Link],DEC;
yy = [Link],DEC;
//if([Link]>12){hh=[Link]-12;}// for removing 24 houre
//else{hh=[Link];}
}

if(setAlarm==0){
[Link](0,0);
[Link]((hh/10)%10);
[Link](hh % 10);
[Link](":");
[Link]((mm/10)%10);
[Link](mm % 10);
[Link](":");
[Link]((ss/10)%10);
[Link](ss % 10);
[Link](" T:");
[Link]([Link](),0);
[Link](223);
[Link]("C");
[Link](" ");

[Link](1,1);
[Link](Day);
[Link](" ");
[Link]((dd/10)%10);
[Link](dd % 10);
[Link]("/");
[Link]((bb/10)%10);
[Link](bb % 10);
[Link]("/");
[Link]((yy/1000)%10);
[Link]((yy/100)%10);
[Link]((yy/10)%10);
[Link](yy % 10);
}

setupClock();
setTimer();
delay (100);
blinking();

//Timer1 ON
if (timer1==1 && alarmMode==1 && hh==Start1HH && mm==Start1MM)
{digitalWrite(relay, LOW);}
//Timer1 OFF
if (timer1==1 && alarmMode==1 && hh==Finish1HH && mm==Finish1MM)
{digitalWrite(relay, HIGH);}

//Timer2 ON
if (timer2==1 && alarmMode==1 && hh==Start2HH && mm==Start2MM)
{digitalWrite(relay, LOW);}
//Timer2 OFF
if (timer2==1 && alarmMode==1 && hh==Finish2HH && mm==Finish2MM)
{digitalWrite(relay, HIGH);}

//Timer3 ON
if (timer3==1 && alarmMode==1 && hh==Start3HH && mm==Start3MM)
{digitalWrite(relay, LOW);}
//Timer3 OFF
if (timer3==1 && alarmMode==1 && hh==Finish3HH && mm==Finish3MM)
{digitalWrite(relay, HIGH);}

//Timer4 ON
if (timer4==1 && alarmMode==1 && hh==Start4HH && mm==Start4MM)
{digitalWrite(relay, LOW);}
//Timer4 OFF
if (timer4==1 && alarmMode==1 && hh==Finish4HH && mm==Finish4MM)
{digitalWrite(relay, HIGH);}

delay (100);
digitalWrite(buzzer, LOW);
}

void blinking (){


//BLINKING SCREEN
//Set Clock
if (setAlarm <2 && setMode == 1){[Link](0,0); [Link](" ");}
if (setAlarm <2 && setMode == 2){[Link](3,0); [Link](" ");}
if (setAlarm <2 && setMode == 3){[Link](6,0); [Link](" ");}
if (setAlarm <2 && setMode == 4){[Link](1,1); [Link](" ");}
if (setAlarm <2 && setMode == 5){[Link](5,1); [Link](" ");}
if (setAlarm <2 && setMode == 6){[Link](8,1); [Link](" ");}
if (setAlarm <2 && setMode == 7){[Link](11,1); [Link](" "); }

//Set Timer
if (setMode == 0 && setAlarm == 1 && mode==0){[Link](2,1); [Link]("
"); }
if (setMode == 0 && setAlarm == 2 && mode==0){[Link](6,1); [Link]("
"); }
if (setMode == 0 && setAlarm == 3 && mode==0){[Link](10,1); [Link](" ");
}
if (setMode == 0 && setAlarm == 4 && mode==0){[Link](13,1); [Link](" ");
}

if (setMode == 0 && setAlarm == 1 && mode>0){[Link](11,0); [Link]("


"); }
if (setMode == 0 && setAlarm == 2 && mode>0){[Link](14,0); [Link]("
"); }
if (setMode == 0 && setAlarm == 3 && mode>0){[Link](11,1); [Link]("
"); }
if (setMode == 0 && setAlarm == 4 && mode>0){[Link](14,1); [Link]("
"); }
}

//Seting Jam ,Tanggal,Alarm/Timer


void setupClock (void) {

if (setMode == 8){
[Link] (0,0);
[Link] ("Set Time Finish ");
[Link] (0,1);
[Link] ("Set Date Finish ");
delay (1000);
[Link] (hh, mm, ss);
[Link] (dd, bb, yy);
[Link]();
setMode = 0;
}

if (setAlarm >0){alarmMode=0;}

if(digitalRead (bt_clock) == 0 && flag==0) {flag=1;


if(setAlarm>0){WriteEeprom(); setAlarm=1; mode =5;}
else{setMode = setMode+1;}
digitalWrite(buzzer, HIGH);
}

if(digitalRead (bt_timer) == 0 && flag==0){flag=1;


if(setMode>0){setMode=8;}
else{
setAlarm = setAlarm+1;
if(setAlarm>4){setAlarm=1;
WriteEeprom ();
mode=mode+1;
ReadEeprom();
}
}
[Link]();
digitalWrite(buzzer, HIGH);
}

if(setAlarm == 1 && mode==5){


[Link] (0,0);
[Link] ("Set Timer Finish");
[Link] (0,1);
[Link] ("-EEPROM Updated-");
delay (2000);
[Link]();
setAlarm=0;
mode =0;
alarmMode=1;
}

if(digitalRead (bt_clock) == 1 && digitalRead (bt_timer) == 1){flag=0;}

if(digitalRead (bt_up) == 0){


if (setAlarm<2 && setMode==1)hh=hh+1;
if (setAlarm<2 && setMode==2)mm=mm+1;
if (setAlarm<2 && setMode==3)ss=ss+1;
if (setAlarm<2 && setMode==4)set_day=set_day+1;
if (setAlarm<2 && setMode==5)dd=dd+1;
if (setAlarm<2 && setMode==6)bb=bb+1;
if (setAlarm<2 && setMode==7)yy=yy+1;
//Timer
if (mode==0 && setMode==0 && setAlarm==1)timer1=1;
if (mode==0 && setMode==0 && setAlarm==2)timer2=1;
if (mode==0 && setMode==0 && setAlarm==3)timer3=1;
if (mode==0 && setMode==0 && setAlarm==4)timer4=1;

if (mode>0 && setMode==0 && setAlarm==1)StartHH=StartHH+1;


if (mode>0 && setMode==0 && setAlarm==2)StartMM=StartMM+1;
if (mode>0 && setMode==0 && setAlarm==3)FinishHH=FinishHH+1;
if (mode>0 && setMode==0 && setAlarm==4)FinishMM=FinishMM+1;

if(hh>23)hh=0;
if(mm>59)mm=0;
if(ss>59)ss=0;
if(set_day>7)set_day=0;
if(dd>31)dd=0;
if(bb>12)bb=0;
if(yy>2030)yy=2000;
if(StartHH>23)StartHH=0;
if(StartMM>59)StartMM=0;
if(FinishHH>23)FinishHH=0;
if(FinishMM>59)FinishMM=0;
[Link](set_day);
digitalWrite(buzzer, HIGH);
}

if(digitalRead (bt_down) == 0){


if (setAlarm<2 && setMode==1)hh=hh-1;
if (setAlarm<2 && setMode==2)mm=mm-1;
if (setAlarm<2 && setMode==3)ss=ss-1;
if (setAlarm<2 && setMode==4)set_day=set_day-1;
if (setAlarm<2 && setMode==5)dd=dd-1;
if (setAlarm<2 && setMode==6)bb=bb-1;
if (setAlarm<2 && setMode==7)yy=yy-1;
//Timer
if (mode==0 && setMode==0 && setAlarm==1)timer1=0;
if (mode==0 && setMode==0 && setAlarm==2)timer2=0;
if (mode==0 && setMode==0 && setAlarm==3)timer3=0;
if (mode==0 && setMode==0 && setAlarm==4)timer4=0;

if (mode>0 && setMode==0 && setAlarm==1)StartHH=StartHH-1;


if (mode>0 && setMode==0 && setAlarm==2)StartMM=StartMM-1;
if (mode>0 && setMode==0 && setAlarm==3)FinishHH=FinishHH-1;
if (mode>0 && setMode==0 && setAlarm==4)FinishMM=FinishMM-1;
if(hh<0)hh=23;
if(mm<0)mm=59;
if(ss<0)ss=59;
if(set_day<0)set_day=7;
if(dd<0)dd=31;
if(bb<0)bb=12;
if(yy<0)yy=2030;
if(StartHH<0)StartHH=23;
if(StartMM<0)StartMM=59;
if(FinishHH<0)FinishHH=23;
if(FinishMM<0)FinishMM=59;
[Link](set_day);
digitalWrite(buzzer, HIGH);
}

void setTimer (){


//Timer
if (setMode == 0 && setAlarm >0 && mode>0){
[Link] (0,0);
[Link]("Timer");
[Link](mode);
[Link](" On :");
[Link] (11,0);
[Link]((StartHH/10)%10);
[Link](StartHH % 10);
[Link](":");
[Link]((StartMM/10)%10);
[Link](StartMM % 10);

[Link] (0,1);
[Link]("Timer");
[Link](mode);
[Link](" Off:");
[Link] (11,1);
[Link]((FinishHH/10)%10);
[Link](FinishHH % 10);
[Link](":");
[Link]((FinishMM/10)%10);
[Link](FinishMM % 10);
}

if (setMode == 0 && setAlarm >0 && mode==0){


[Link] (0,0);
[Link](" T1 T2 T3 T4 ");
[Link] (0,1);
if(timer1==1){[Link](" A");}
else{[Link](" D");}

if(timer2==1){[Link](" A");}
else{[Link](" D");}

if(timer3==1){[Link](" A");}
else{[Link](" D");}

if(timer4==1){[Link](" A");}
else{[Link](" D");}
}
}

void ReadEeprom() {
Start1HH=[Link](11);Start1MM=[Link](12);Finish1HH=[Link](13);Finish1
MM=[Link](14);
Start2HH=[Link](21);Start2MM=[Link](22);Finish2HH=[Link](23);Finish2
MM=[Link](24);
Start3HH=[Link](31);Start3MM=[Link](32);Finish3HH=[Link](33);Finish3
MM=[Link](34);
Start4HH=[Link](41);Start4MM=[Link](42);Finish4HH=[Link](43);Finish4
MM=[Link](44);

if(mode==1){StartHH=Start1HH, StartMM=Start1MM,
FinishHH=Finish1HH,FinishMM=Finish1MM;}
if(mode==2){StartHH=Start2HH, StartMM=Start2MM,
FinishHH=Finish2HH,FinishMM=Finish2MM;}
if(mode==3){StartHH=Start3HH, StartMM=Start3MM,
FinishHH=Finish3HH,FinishMM=Finish3MM;}
if(mode==4){StartHH=Start4HH, StartMM=Start4MM,
FinishHH=Finish4HH,FinishMM=Finish4MM;}

timer1=[Link](1);
timer2=[Link](2);
timer3=[Link](3);
timer4=[Link](4);
}

void WriteEeprom() {
if(mode==1)
{[Link](11,StartHH);[Link](12,StartMM);[Link](13,FinishHH);EEPROM
.write(14,FinishMM);}
if(mode==2)
{[Link](21,StartHH);[Link](22,StartMM);[Link](23,FinishHH);EEPROM
.write(24,FinishMM);}
if(mode==3)
{[Link](31,StartHH);[Link](32,StartMM);[Link](33,FinishHH);EEPROM
.write(34,FinishMM);}
if(mode==4)
{[Link](41,StartHH);[Link](42,StartMM);[Link](43,FinishHH);EEPROM
.write(44,FinishMM);}

[Link](1,timer1);
[Link](2,timer2);
[Link](3,timer3);
[Link](4,timer4);
}

You might also like