Академический Документы
Профессиональный Документы
Культура Документы
h>
#include <RealTimeClockDS1307.h>
#include <LiquidCrystal.h>
#include <EEPROM.h>
#include <Keypad.h>
#define Display_Clock_Every_N_Seconds 10
#define Display_ShortHelp_Every_N_Seconds 60
String tz;
int mode = 0;
int dayaddr = 0;
int inc = 0;
boolean load1state=0;
char numberKeys[ROWS][COLS] = {
{ 1,2,3 },
{ 4,5,6 },
{ 7,8,9 },
{ 10,11,12}
};
byte rowPins[ROWS] = {2, 3, 4, 5}; //connect to the row pinouts of the keypad
byte colPins[COLS] = {6, 7, 8}; //connect to the column pinouts of the keypad
int hours = 0;
int minutes = 0;
int seconds = 0;
int day = 0;
int dates = 0;
int months = 0;
int years = 0;
int ap = 0;
int bell = 0;
int address = 0;
byte value;
int j;
int temp1 = 1;
int digit = 0;
int stbel = 0;
int sun_hr[12];
int sun_min[12];
int sun_ap[12];
int mon_hr[12];
int mon_min[12];
int mon_ap[12];
int tue_hr[12];
int tue_min[12];
int tue_ap[12];
int wen_hr[12];
int wen_min[12];
int wen_ap[12];
int thu_hr[12];
int thu_min[12];
int thu_ap[12];
int fri_hr[12];
int fri_min[12];
int fri_ap[12];
int sat_hr[12];
int sat_min[12];
int sat_ap[12];
void setup() {
Serial.begin(9600);
lcd.begin(16,2);
pinMode(bellPin, OUTPUT);
serialDisplay();
digitalWrite(bellPin, HIGH);
delay(1000);
digitalWrite(bellPin, LOW);
void loop() {
if(mode==0){
lcd.print("Current Bell?");
lcd.setCursor(0, 1);
if(customKey == 1){
lcd.print(customKey+0);
inc=1;
bell=0;
delay(500);
if(customKey == 2){
lcd.print(customKey+0);
inc=1;
bell=1;
delay(500);
if(customKey == 3){
lcd.print(customKey+0);
inc=1;
bell=2;
delay(500);
if(customKey == 4){
lcd.print(customKey+0);
inc=1;
bell=3;
delay(500);
if(customKey == 5){
lcd.print(customKey+0);
inc=1;
bell=4;
delay(500);
if(customKey == 6){
lcd.print(customKey+0);
inc=1;
bell=5;
delay(500);
if(customKey == 7){
lcd.print(customKey+0);
inc=1;
bell=6;
delay(500);
if(customKey == 8){
lcd.print(customKey+0);
inc=1;
bell=7;
delay(500);
if(customKey == 9){
lcd.print(customKey+0);
inc=1;
bell=8;
delay(500);
if(customKey == 10){
lcd.print(customKey+0);
inc=1;
bell=9;
customKey = 0;
delay(500);
if(customKey == 11){
lcd.print(customKey+0);
inc=1;
bell=10;
delay(500);
if(customKey == 12){
lcd.print(customKey+0);
inc=1;
bell=11;
customKey = 0;
delay(500);
if(mode==1)timedisplay();
if(mode==2){
lcd.print("Select Day");
lcd.setCursor(0, 1);
if(customKey == 1){
lcd.print("Sunday");
inc=1;
dayaddr=0;
delay(500);
}
if(customKey == 2){
lcd.print("Monday");
inc=1;
dayaddr=50;
delay(500);
if(customKey == 3){
lcd.print("Tuesday");
inc=1;
dayaddr=100;
delay(500);
if(customKey == 4){
lcd.print("Wensday");
inc=1;
dayaddr=150;
delay(500);
if(customKey == 5){
lcd.print("Tharsday");
inc=1;
dayaddr=200;
delay(500);
}
if(customKey == 6){
lcd.print("Friday");
inc=1;
dayaddr=250;
delay(500);
if(customKey == 7){
lcd.print("Saturday");
inc=1;
dayaddr=300;
delay(500);
if(mode==3){
lcd.print("No. of Bells");
lcd.setCursor(0, 1);
if(customKey == 1){
lcd.print(customKey+0);
inc=1;
stbel=1;
EEPROM.write(dayaddr, customKey);
dayaddr++;
delay(500);
if(customKey == 2){
lcd.print(customKey+0);
inc=1;
stbel=2;
EEPROM.write(dayaddr, customKey);
dayaddr++;
delay(500);
if(customKey == 3){
lcd.print(customKey+0);
inc=1;
stbel=3;
EEPROM.write(dayaddr, customKey);
dayaddr++;
delay(500);
if(customKey == 4){
lcd.print(customKey+0);
inc=1;
stbel=4;
EEPROM.write(dayaddr, customKey);
dayaddr++;
delay(500);
if(customKey == 5){
lcd.print(customKey+0);
inc=1;
stbel=5;
EEPROM.write(dayaddr, customKey);
dayaddr++;
delay(500);
if(customKey == 6){
lcd.print(customKey+0);
inc=1;
stbel=6;
EEPROM.write(dayaddr, customKey);
dayaddr++;
delay(500);
if(customKey == 7){
lcd.print(customKey+0);
inc=1;
stbel=7;
EEPROM.write(dayaddr, customKey);
dayaddr++;
delay(500);
if(customKey == 8){
lcd.print(customKey+0);
inc=1;
stbel=8;
EEPROM.write(dayaddr, customKey);
dayaddr++;
delay(500);
if(customKey == 9){
lcd.print(customKey+0);
inc=1;
stbel=9;
EEPROM.write(dayaddr, customKey);
dayaddr++;
delay(500);
if(customKey == 10){
lcd.print(customKey+0);
inc=1;
stbel=10;
EEPROM.write(dayaddr, customKey);
dayaddr++;
customKey = 0;
delay(500);
if(customKey == 11){
lcd.print(customKey+0);
inc=1;
stbel=11;
EEPROM.write(dayaddr, customKey);
dayaddr++;
delay(500);
if(customKey == 12){
lcd.print(customKey+0);
inc=1;
stbel=12;
EEPROM.write(dayaddr, customKey);
dayaddr++;
customKey = 0;
delay(500);
if(mode==4){
lcd.print("Bell No.=");
lcd.setCursor(9, 0);
lcd.print(temp1);
lcd.setCursor(0, 1);
lcd.print("Hr: ");
lcd.setCursor(3, 1);
if(customKey == 1){
digit=10;
inc=1;
lcd.print(digit);
delay(500);
if(customKey == 11){
digit=0;
inc=1;
lcd.print(digit);
delay(500);
if(mode==5){
lcd.print("Bell No.=");
lcd.setCursor(9, 0);
lcd.print(temp1);
lcd.setCursor(0, 1);
lcd.print("Hr: ");
lcd.setCursor(3, 1);
lcd.print(digit);
if(customKey == 1){
digit=digit+1;
EEPROM.write(dayaddr, digit);
dayaddr++;
inc=1;
lcd.setCursor(3, 1);
lcd.print(digit);
delay(500);
digit=0;
if(customKey == 2){
digit=digit+2;
EEPROM.write(dayaddr, digit);
dayaddr++;
inc=1;
lcd.setCursor(3, 1);
lcd.print(digit);
delay(500);
digit=0;
if(customKey == 3){
digit=3;
EEPROM.write(dayaddr, digit);
dayaddr++;
inc=1;
lcd.setCursor(3, 1);
lcd.print(digit);
delay(500);
digit=0;
if(customKey == 4){
digit=4;
EEPROM.write(dayaddr, digit);
dayaddr++;
inc=1;
lcd.setCursor(3, 1);
lcd.print(digit);
delay(500);
digit=0;
if(customKey == 5){
digit=5;
EEPROM.write(dayaddr, digit);
dayaddr++;
inc=1;
lcd.setCursor(3, 1);
lcd.print(digit);
delay(500);
digit=0;
if(customKey == 6){
digit=6;
EEPROM.write(dayaddr, digit);
dayaddr++;
inc=1;
lcd.setCursor(3, 1);
lcd.print(digit);
delay(500);
digit=0;
if(customKey == 7){
digit=7;
EEPROM.write(dayaddr, digit);
dayaddr++;
inc=1;
lcd.setCursor(3, 1);
lcd.print(digit);
delay(500);
digit=0;
if(customKey == 8){
digit=8;
EEPROM.write(dayaddr, digit);
dayaddr++;
inc=1;
lcd.setCursor(3, 1);
lcd.print(digit);
delay(500);
digit=0;
if(customKey == 9){
digit=9;
EEPROM.write(dayaddr, digit);
dayaddr++;
inc=1;
lcd.setCursor(3, 1);
lcd.print(digit);
delay(500);
digit=0;
if(customKey == 11){
EEPROM.write(dayaddr, digit);
dayaddr++;
inc=1;
lcd.setCursor(3, 1);
lcd.print(digit);
delay(500);
digit=0;
if(mode==6){
lcd.print("Bell No.=");
lcd.setCursor(9, 0);
lcd.print(temp1);
lcd.setCursor(0, 1);
lcd.print("Min: ");
lcd.setCursor(4, 1);
if(customKey == 1){
digit=10;
inc=1;
lcd.print(digit);
delay(500);
if(customKey == 2){
digit=20;
inc=1;
lcd.print(digit);
delay(500);
if(customKey == 3){
digit=30;
inc=1;
lcd.print(digit);
delay(500);
if(customKey == 4){
digit=40;
inc=1;
lcd.print(digit);
delay(500);
if(customKey == 5){
digit=50;
inc=1;
lcd.print(digit);
delay(500);
if(customKey == 11){
digit=0;
inc=1;
lcd.print(digit);
delay(500);
if(mode==7){
lcd.print("Bell No.=");
lcd.setCursor(9, 0);
lcd.print(temp1);
lcd.setCursor(0, 1);
lcd.print("Min: ");
lcd.setCursor(4, 1);
lcd.print(digit);
if(customKey == 1){
digit=digit+1;
EEPROM.write(dayaddr, digit);
dayaddr++;
inc=1;
lcd.setCursor(4, 1);
lcd.print(digit);
delay(500);
if(customKey == 2){
digit=digit+2;
EEPROM.write(dayaddr, digit);
dayaddr++;
inc=1;
lcd.setCursor(4, 1);
lcd.print(digit);
delay(500);
if(customKey == 3){
digit=digit+3;
EEPROM.write(dayaddr, digit);
dayaddr++;
inc=1;
lcd.setCursor(4, 1);
lcd.print(digit);
delay(500);
if(customKey == 4){
digit=digit+4;
EEPROM.write(dayaddr, digit);
dayaddr++;
inc=1;
lcd.setCursor(4, 1);
lcd.print(digit);
delay(500);
if(customKey == 5){
digit=digit+5;
EEPROM.write(dayaddr, digit);
dayaddr++;
inc=1;
lcd.setCursor(4, 1);
lcd.print(digit);
delay(500);
if(customKey == 6){
digit=digit+6;
EEPROM.write(dayaddr, digit);
dayaddr++;
inc=1;
lcd.setCursor(4, 1);
lcd.print(digit);
delay(500);
if(customKey == 7){
digit=digit+7;
EEPROM.write(dayaddr, digit);
dayaddr++;
inc=1;
lcd.setCursor(4, 1);
lcd.print(digit);
delay(500);
if(customKey == 8){
digit=digit+8;
EEPROM.write(dayaddr, digit);
dayaddr++;
inc=1;
lcd.setCursor(4, 1);
lcd.print(digit);
delay(500);
if(customKey == 9){
digit=digit+9;
EEPROM.write(dayaddr, digit);
dayaddr++;
inc=1;
lcd.setCursor(4, 1);
lcd.print(digit);
delay(500);
}
if(customKey == 11){
EEPROM.write(dayaddr, digit);
dayaddr++;
inc=1;
lcd.setCursor(4, 1);
lcd.print(digit);
delay(500);
if(mode==8){
lcd.print("Bell No.=");
lcd.setCursor(9, 0);
lcd.print(temp1);
lcd.setCursor(0, 1);
if(customKey == 1){
digit=0;
lcd.print("AM");
EEPROM.write(dayaddr, digit);
dayaddr++;
temp1++;
mode=4;
delay(500);
}
if(customKey == 2){
digit=1;
lcd.print("PM");
EEPROM.write(dayaddr, digit);
dayaddr++;
temp1++;
mode=4;
delay(500);
digit=0;
if(temp1>stbel){
lcd.clear();
lcd.print("Please Reset");
while(1);
if (day == 1){
if(sun_hr[bell] == hours){
if(sun_min[bell] == minutes){
if(sun_ap[bell] == ap){
if(seconds == 0){
digitalWrite(bellPin, HIGH);
bell++;
lcd.clear();
delay(5000);
digitalWrite(bellPin, LOW);
lcd.clear();
if (day == 2){
if(mon_hr[bell] == hours){
if(mon_min[bell] == minutes){
if(mon_ap[bell] == ap){
if(seconds == 0){
digitalWrite(bellPin, HIGH);
bell++;
lcd.clear();
lcd.print(bell);
delay(5000);
digitalWrite(bellPin, LOW);
lcd.clear();
}
}
if (day == 3){
if(tue_hr[bell] == hours){
if(tue_min[bell] == minutes){
if(tue_ap[bell] == ap){
if(seconds == 0){
digitalWrite(bellPin, HIGH);
bell++;
lcd.clear();
lcd.print(bell);
delay(5000);
digitalWrite(bellPin, LOW);
lcd.clear();
if (day == 4){
if(wen_hr[bell] == hours){
if(wen_min[bell] == minutes){
if(wen_ap[bell] == ap){
if(seconds == 0){
digitalWrite(bellPin, HIGH);
bell++;
lcd.clear();
lcd.print(bell);
delay(5000);
digitalWrite(bellPin, LOW);
lcd.clear();
if (day == 5){
if(thu_hr[bell] == hours){
if(thu_min[bell] == minutes){
if(thu_ap[bell] == ap){
if(seconds == 0){
digitalWrite(bellPin, HIGH);
bell++;
lcd.clear();
lcd.print(bell);
delay(5000);
digitalWrite(bellPin, LOW);
lcd.clear();
if (day == 6){
if(fri_hr[bell] == hours){
if(fri_min[bell] == minutes){
if(fri_ap[bell] == ap){
if(seconds == 0){
digitalWrite(bellPin, HIGH);
bell++;
lcd.clear();
lcd.print(bell);
delay(5000);
digitalWrite(bellPin, LOW);
lcd.clear();
if (day == 7){
if(sat_hr[bell] == hours){
if(sat_min[bell] == minutes){
if(sat_ap[bell] == ap){
if(seconds == 0){
digitalWrite(bellPin, HIGH);
bell++;
lcd.clear();
lcd.print(bell);
delay(5000);
digitalWrite(bellPin, LOW);
lcd.clear();
if(hours == 12){
if(minutes == 0){
if(ap == 0){
if(seconds == 0){
bell=0;
}
}
if(customKey == 12)mode=2;
if(customKey == 10)mode=1;
if(inc==1){
mode++;
inc=0;
delay(500);
lcd.clear();
void serialDisplay(){
day = EEPROM.read(0);
Serial.println("SUN");
j=1;
sun_hr[i] = EEPROM.read(j);
j++;
sun_min[i] = EEPROM.read(j);
j++;
sun_ap[i] = EEPROM.read(j);
j++;
Serial.print("Lectire= ");
Serial.println(i);
Serial.print(sun_hr[i]);
Serial.print(" : ");
Serial.print(sun_min[i]);
day = EEPROM.read(50);
Serial.println("MON");
j=51;
mon_hr[i] = EEPROM.read(j);
j++;
mon_min[i] = EEPROM.read(j);
j++;
mon_ap[i] = EEPROM.read(j);
j++;
Serial.print("Lectire= ");
Serial.println(i);
Serial.print(mon_hr[i]);
Serial.print(" : ");
Serial.print(mon_min[i]);
day = EEPROM.read(100);
Serial.println("TUE");
j=101;
tue_hr[i] = EEPROM.read(j);
j++;
tue_min[i] = EEPROM.read(j);
j++;
tue_ap[i] = EEPROM.read(j);
j++;
Serial.print("Lectire= ");
Serial.println(i);
Serial.print(tue_hr[i]);
Serial.print(" : ");
Serial.print(tue_min[i]);
day = EEPROM.read(150);
Serial.println("WEN");
j=151;
wen_hr[i] = EEPROM.read(j);
j++;
wen_min[i] = EEPROM.read(j);
j++;
wen_ap[i] = EEPROM.read(j);
j++;
Serial.print("Lectire= ");
Serial.println(i);
Serial.print(wen_hr[i]);
Serial.print(" : ");
Serial.print(wen_min[i]);
day = EEPROM.read(200);
Serial.println("THU");
j=201;
thu_hr[i] = EEPROM.read(j);
j++;
thu_min[i] = EEPROM.read(j);
j++;
thu_ap[i] = EEPROM.read(j);
j++;
Serial.print("Lectire= ");
Serial.println(i);
Serial.print(thu_hr[i]);
Serial.print(" : ");
Serial.print(thu_min[i]);
day = EEPROM.read(250);
Serial.println("FRI");
j=251;
fri_hr[i] = EEPROM.read(j);
j++;
fri_min[i] = EEPROM.read(j);
j++;
fri_ap[i] = EEPROM.read(j);
j++;
Serial.print("Lectire= ");
Serial.println(i);
Serial.print(fri_hr[i]);
Serial.print(" : ");
Serial.print(fri_min[i]);
day = EEPROM.read(300);
Serial.println("SAT");
j=301;
sat_hr[i] = EEPROM.read(j);
j++;
sat_min[i] = EEPROM.read(j);
j++;
sat_ap[i] = EEPROM.read(j);
j++;
Serial.print("Lectire= ");
Serial.println(i);
Serial.print(sat_hr[i]);
Serial.print(" : ");
Serial.print(sat_min[i]);
void timedisplay(){
RTC.readClock();
if(ap == 1)
tz = "PM";
else
tz ="AM";
}
lcd.home();
hours = RTC.getHours();
minutes = RTC.getMinutes();
seconds = RTC.getSeconds();
ap = RTC.isPM();
day = RTC.getDayOfWeek();
dates = RTC.getDate();
months = RTC.getMonth();
years = RTC.getYear();
lcd.print(hours);
lcd.print(":");
lcd.print(minutes);
lcd.print(":");
lcd.print(seconds);
lcd.print(" ");
lcd.print(tz);
lcd.print(" ");
switch (day) {
case 1:
lcd.print("SUN");
break;
case 2:
lcd.print("MON");
break;
case 3:
lcd.print("TUE");
break;
case 4:
lcd.print("WED");
break;
case 5:
lcd.print("THU");
break;
case 6:
lcd.print("FRI");
break;
case 7:
lcd.print("SAT");
break;
lcd.setCursor(0, 1);
lcd.print(dates);
lcd.print("/");
lcd.print(months);
lcd.print("/20");
lcd.print(years);
lcd.print(" Bl ");
lcd.print(bell);
delay(500);
lcd.clear();
lcd.home();
lcd.print(hours);
lcd.print(" ");
lcd.print(minutes);
lcd.print(" ");
lcd.print(seconds);
lcd.print(" ");
lcd.print(tz);
lcd.print(" ");
switch (day) {
case 1:
lcd.print("SUN");
break;
case 2:
lcd.print("MON");
break;
case 3:
lcd.print("TUE");
break;
case 4:
lcd.print("WED");
break;
case 5:
lcd.print("THU");
break;
case 6:
lcd.print("FRI");
break;
case 7:
lcd.print("SAT");
break;
lcd.setCursor(0, 1);
lcd.print(dates);
lcd.print("/");
lcd.print(months);
lcd.print("/20");
lcd.print(years);
lcd.print(" Bl ");
lcd.print(bell);
delay(400);