#include<Wire.h>
#include<LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2); //0x27 is the I2C address of the LCD module.
int TimeHours10s = 0;
int TimeHours1s = 0;
int TimeMinutes10s = 0; //integer variables to store the time and alarm values
int TimeMinutes1s = 0;
int TimeSeconds10s = 0;
int TimeSeconds1s = 0;
int AlarmHours10s = 0;
int AlarmHours1s = 0;
int AlarmMinutes10s = 0;
int AlarmMinutes1s = 0;
int AlarmSeconds10s = 0;
int AlarmSeconds1s = 0;
int AlarmSet = 6; //integer variables that represent the Arduino digital pin numbers
int TimeSet = 7;
int Min = 8;
int Hour = 9;
int Buzzer =10;
void setup() //pinMode() function is used to set the mode of each digital pin
{
// initialize I/O pins.
//pinMode(Triger, OUTPUT);
pinMode(AlarmSet,INPUT_PULLUP); //Bit_6
pinMode(TimeSet, INPUT_PULLUP); //Bit_7
pinMode(Hour, INPUT_PULLUP); //Bit_8
pinMode(Min, INPUT_PULLUP); //Bit_9
pinMode(Buzzer, OUTPUT); //Bit_10
// set up the LCD's number of columns and rows:
lcd.init();
lcd.backlight(); //turns on the backlight of the LCD display
}
void loop()
{
CalculateTime();
ShowTime();
ShowAlarm();
delay(500);
CompareAlarmTime();
//-------------------------------------Adj Alarm Value--------------
if(digitalRead(AlarmSet)== LOW && digitalRead(Min)== LOW)
{
AlarmMinutes1s++;
delay(500);
CalculateAlarm();
}
if(digitalRead(AlarmSet)== LOW && digitalRead(Hour)== LOW)
{
AlarmHours1s++;
delay(500);
CalculateAlarm();
}
//----------------------------------------------------------------
//-------------------------------------Adj Time Value--------------
if(digitalRead(TimeSet)== LOW && digitalRead(Min)== LOW)
{
TimeMinutes1s++;
delay(500);
CalculateTime();
}
if(digitalRead(TimeSet)== LOW && digitalRead(Hour)== LOW)
{
TimeHours1s++;
delay(500);
CalculateTime();
}
delay(500);
}
void ShowTime()
{
//--------------------------------------------
// Turn on the display
lcd.display();
lcd.setCursor(0, 0); // top left
lcd.print("Time ");//
if(TimeHours10s == 0)
lcd.print(" ");//
else
lcd.print(TimeHours10s);//
lcd.print(TimeHours1s);//
lcd.print(":");//
lcd.print(TimeMinutes10s);//
lcd.print(TimeMinutes1s);//
lcd.print(":");//
lcd.print(TimeSeconds10s);//
lcd.print(TimeSeconds1s);//
lcd.setCursor(0, 0); // top left
}
void ShowAlarm()
{
//--------------------------------------------
// Turn on the display
//lcd.display();
lcd.setCursor(0, 1); // bottom left
lcd.print("Alarm ");//
if(AlarmHours10s == 0)
lcd.print(" ");//
else
lcd.print(AlarmHours10s);//
lcd.print(AlarmHours1s);//
lcd.print(":");//
lcd.print(AlarmMinutes10s);//
lcd.print(AlarmMinutes1s);//
lcd.print(":");//
lcd.print(AlarmSeconds10s);//
lcd.print(AlarmSeconds1s);//
lcd.setCursor(0, 1); // bottom left
}
void CalculateTime()
{
TimeSeconds1s++;
if(TimeSeconds1s == 10)
{
TimeSeconds1s = 0;
TimeSeconds10s++;
}
if(TimeSeconds10s == 6)
{
TimeSeconds10s = 0;
TimeSeconds1s = 0;
TimeMinutes1s++;
}
if(TimeMinutes1s == 10)
{
TimeMinutes1s = 0;
TimeSeconds10s = 0;
TimeSeconds1s = 0;
TimeMinutes10s++;
}
if(TimeMinutes10s == 6)
{
TimeMinutes10s = 0;
TimeMinutes1s = 0;
TimeSeconds10s = 0;
TimeSeconds1s = 0;
TimeHours1s++;
}
if(TimeHours1s == 10)
{
TimeHours1s=0;
TimeMinutes10s = 0;
TimeMinutes1s = 0;
TimeSeconds10s = 0;
TimeSeconds1s = 0;
TimeHours10s++;
}
if(TimeHours10s == 2 && TimeHours1s == 4)
{
TimeHours10s=0;
TimeHours1s=0;
TimeMinutes10s = 0;
TimeMinutes1s = 0;
TimeSeconds10s = 0;
TimeSeconds1s = 0;
}
}
void CalculateAlarm()
{
//AlarmSeconds1s++;
if(AlarmSeconds1s == 10)
{
AlarmSeconds1s = 0;
AlarmSeconds10s++;
}
if(AlarmSeconds10s == 6)
{
AlarmSeconds10s = 0;
AlarmSeconds1s = 0;
AlarmMinutes1s++;
}
if(AlarmMinutes1s == 10)
{
AlarmMinutes1s = 0;
AlarmSeconds10s = 0;
AlarmSeconds1s = 0;
AlarmMinutes10s++;
}
if(AlarmMinutes10s == 6)
{
AlarmMinutes10s = 0;
AlarmMinutes1s = 0;
AlarmSeconds10s = 0;
AlarmSeconds1s = 0;
AlarmHours1s++;
}
if(AlarmHours1s == 10)
{
AlarmHours1s=0;
AlarmMinutes10s = 0;
AlarmMinutes1s = 0;
AlarmSeconds10s = 0;
AlarmSeconds1s = 0;
AlarmHours10s++;
}
if(AlarmHours10s == 2 && AlarmHours1s == 4)
{
AlarmHours10s=0;
AlarmHours1s=0;
AlarmMinutes10s = 0;
AlarmMinutes1s = 0;
AlarmSeconds10s = 0;
AlarmSeconds1s = 0;
}
}
void CompareAlarmTime()
{
if(TimeHours10s == AlarmHours10s && TimeHours1s == AlarmHours1s && TimeMinutes10s == AlarmMinutes10s && TimeMinutes1s == AlarmMinutes1s )
{
digitalWrite(Buzzer, HIGH);
delay(100);
digitalWrite(Buzzer, LOW);
delay(100);
}
}