/*This software is provided in an “AS IS” condition,NO WARRANTIES in any form apply to this software. picmicrolab.com 10.9.2017 *************************************************************************************************************** LCD Digital Alarm Clock Arduino AlarmSet - pin 6 TimeSet - pin 7 Hour - 8 Min - 9 Buzzer -10 */ // include the library code: #include // initialize the library by associating any needed LCD interface pin // with the arduino pin number it is connected to const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2; LiquidCrystal lcd(rs, en, d4, d5, d6, d7); //----Time Var---------- int TimeHours10s = 0; int TimeHours1s = 0; int TimeMinutes10s = 0; int TimeMinutes1s = 0; int TimeSeconds10s = 0; int TimeSeconds1s = 0; //---------------------- //----Alarm Var--------- int AlarmHours10s = 0; int AlarmHours1s = 0; int AlarmMinutes10s = 0; int AlarmMinutes1s = 0; int AlarmSeconds10s = 0; int AlarmSeconds1s = 0; //---------------------- //---Input Pins for setting Alarm and Time-- int AlarmSet = 6; int TimeSet = 7; int Min = 8; int Hour = 9; int Buzzer =10; void setup() { // 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.begin(16, 2); } 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); } }