Вы находитесь на странице: 1из 40

#include <Wire.

h>

#include <RealTimeClockDS1307.h>

#include <LiquidCrystal.h>

#include <EEPROM.h>

#include <Keypad.h>

LiquidCrystal lcd(11, 10, A0, A1, A2, A3);

const byte ROWS = 4; //four rows

const byte COLS = 3; //four columns

#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;

const int bellPin = 9;

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

//initialize an instance of class NewKeypad

Keypad customKeypad = Keypad( makeKeymap(numberKeys), rowPins, colPins, ROWS, COLS);

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() {

char customKey = customKeypad.getKey();

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);

lcd.print("A=1, P=2: ");

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();

lcd.print("Bell No: =");


lcd.print(bell);

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 No: =");

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 No: =");

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 No: =");

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 No: =");

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 No: =");

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 No: =");

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;

for(int i=0; i<day ;i++){

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]);

if(sun_ap[i] == 1)Serial.println(" PM ");

else Serial.println(" AM");

day = EEPROM.read(50);

Serial.println("MON");

j=51;

for(int i=0; i<day ;i++){

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]);

if(mon_ap[i] == 1)Serial.println(" PM ");

else Serial.println(" AM");

day = EEPROM.read(100);

Serial.println("TUE");
j=101;

for(int i=0; i<day ;i++){

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]);

if(tue_ap[i] == 1)Serial.println(" PM ");

else Serial.println(" AM");

day = EEPROM.read(150);

Serial.println("WEN");

j=151;

for(int i=0; i<day ;i++){

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]);

if(wen_ap[i] == 1)Serial.println(" PM ");

else Serial.println(" AM");

day = EEPROM.read(200);

Serial.println("THU");

j=201;

for(int i=0; i<day ;i++){

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]);

if(thu_ap[i] == 1)Serial.println(" PM ");


else Serial.println(" AM");

day = EEPROM.read(250);

Serial.println("FRI");

j=251;

for(int i=0; i<day ;i++){

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]);

if(fri_ap[i] == 1)Serial.println(" PM ");

else Serial.println(" AM");

day = EEPROM.read(300);

Serial.println("SAT");

j=301;

for(int i=0; i<day ;i++){

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]);

if(sat_ap[i] == 1)Serial.println(" PM ");

else Serial.println(" AM");

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);

Вам также может понравиться