Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /////////////////////////////////////////////////////////////////////////////////////
- //Lorenso Hinojosa's alarm code
- //set to have 2 alarms a day at set times in thie code
- /////////////////////////////////////////////////////////////////////////////////////
- // Date and time functions using a DS1307 RTC connected via I2C and Wire lib
- #include <Wire.h>
- #include "RTClib.h"
- #if defined(ARDUINO_ARCH_SAMD)
- // for Zero, output on USB Serial console, remove line below if using programming port to program the Zero!
- #define Serial SerialUSB
- #endif
- RTC_DS1307 rtc;
- char daysOfTheWeek[7][12] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};
- /////////////////////////////////////////////////////////////////////////////////////
- //Morning setup
- //This is setting up all of the morning switch pins.
- /////////////////////////////////////////////////////////////////////////////////////
- int pin22 = 22; //Sun AM
- int pin24 = 24; //Mon AM
- int pin26 = 26; //Tues AM
- int pin28 = 28; //Wed AM
- int pin30 = 30; //Thur AM
- int pin32 = 32; //Fri AM
- int pin34 = 34; //Sat AM
- /////////////////////////////////////////////////////////////////////////////////////
- //Evening setup
- //This is setting up all of the evening switch pins.
- /////////////////////////////////////////////////////////////////////////////////////
- int pin36 = 36; //Sun PM
- int pin38 = 38; //Mon PM
- int pin40 = 40; //Tues PM
- int pin42 = 42; //Wed PM
- int pin44 = 44; //Thur PM
- int pin46 = 46; //Fri PM
- int pin48 = 48; //Sat PM
- /////////////////////////////////////////////////////////////////////////////////////
- //LED and alarm pin set setup
- /////////////////////////////////////////////////////////////////////////////////////
- int pin6 = 6; //alarm transistor
- int pin7 = 7; //green LED
- int pin8 = 8; //red LED
- /////////////////////////////////////////////////////////////////////////////////////
- //void setup
- /////////////////////////////////////////////////////////////////////////////////////
- void setup () {//////////////////////////////////////////////////////////////////
- /////////////////////////////////////////////////////////////////////////////////////
- //using the pull up
- //enables the internal pull up resistor
- /////////////////////////////////////////////////////////////////////////////////////
- pinMode(pin22, INPUT_PULLUP);
- pinMode(pin24, INPUT_PULLUP);
- pinMode(pin26, INPUT_PULLUP);
- pinMode(pin28, INPUT_PULLUP);
- pinMode(pin30, INPUT_PULLUP);
- pinMode(pin32, INPUT_PULLUP);
- pinMode(pin34, INPUT_PULLUP);
- pinMode(pin36, INPUT_PULLUP);
- pinMode(pin38, INPUT_PULLUP);
- pinMode(pin40, INPUT_PULLUP);
- pinMode(pin42, INPUT_PULLUP);
- pinMode(pin44, INPUT_PULLUP);
- pinMode(pin46, INPUT_PULLUP);
- pinMode(pin48, INPUT_PULLUP);
- ///////////////////////////////////////////
- //pinMode(30, OUTPUT);
- //#ifndef ESP8266
- // while (!Serial); // for Leonardo/Micro/Zero
- //#endif
- /////////////////////////////////////////////////////////////////////////////////////
- //setup the refresh rate of serial monitor (i think)
- /////////////////////////////////////////////////////////////////////////////////////
- Serial.begin(57600);
- if (! rtc.begin()) {
- Serial.println("Couldn't find RTC");
- while (1);
- }
- /////////////////////////////////////////////////////////////////////////////////////
- //sets real time clock (rtc) module
- ////////// ///////////////////////////////////////////////////////////////////////////
- if (! rtc.isrunning()) {
- Serial.println("RTC is NOT running!");
- // following line sets the RTC to the date & time this sketch was compiled
- //rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
- // This line sets the RTC with an explicit date & time, for example to set
- // January 21, 2014 at 3am you would call:
- // rtc.adjust(DateTime(2014, 1, 21, 3, 0, 0));
- }
- /////////////////////////////////////////////////////////////////////////////////////
- //set up the transistor pin to control the alarm
- //also sets up light 1 and 2 pin
- /////////////////////////////////////////////////////////////////////////////////////
- pinMode(pin6, OUTPUT);
- pinMode(pin7, OUTPUT);
- pinMode(pin8, OUTPUT);
- }
- /////////////////////////////////////////////////////////////////////////////////////
- //actual looping program
- /////////////////////////////////////////////////////////////////////////////////////
- void loop ()
- {
- DateTime now = rtc.now();
- ////////////////////////////////////////////////////////////////////////////////////
- //variables that won't change
- /////////////////////////////////////////////////////////////////////////////////////
- int sun = 0;
- int mon = 1;
- int tue = 2;
- int wed = 3;
- int thu = 4;
- int fri = 5;
- int sat = 6;
- // morning times
- int SunAMDay = 0;
- int SunAMHour = 8;
- int SunAMMin = 10;
- int MonAMDay = 1;
- int MonAMHour = 5;
- int MonAMMin = 10;
- int TuesAMDay = 2;
- int TuesAMHour = 5;
- int TuesAMMin = 10;
- int WedAMDay = 3;
- int WedAMHour = 5;
- int WedAMMin = 10;
- int ThurAMDay = 5;
- int ThurAMHour = 7;
- int ThurAMMin = 10;
- int FriAMDay = 5;
- int FriAMHour = 5;
- int FriAMMin = 10;
- int SatAMDay = 6;
- int SatAMHour = 8;
- int SatAMMin = 10;
- // evening times
- int SunPMDay = 0;
- int SunPMHour = 16;
- int SunPMMin = 30;
- int MonPMDay = 1;
- int MonPMHour = 16;
- int MonPMMin = 30;
- int TuesPMDay = 2;
- int TuesPMHour = 16;
- int TuesPMMin = 30;
- int WedPMDay = 3;
- int WedPMHour = 16;
- int WedPMMin = 30;
- int ThurPMDay = 4;
- int ThurPMHour = 16;
- int ThurPMMin = 30;
- int FriPMDay = 5;
- int FriPMHour = 16;
- int FriPMMin = 30;
- int SatPMDay = 6;
- int SatPMHour = 16;
- int SatPMMin = 30;
- ////////////////////////////////////////////////////////////////////////////////////
- //variables that are subject to change
- /////////////////////////////////////////////////////////////////////////////////////
- int date;
- date = now.dayOfTheWeek();
- int chour;
- chour = now.hour();
- int cminute;
- cminute = now.minute();
- /////////////////////////////////////////////////////////////////////////////////////
- //prints date and time in the serial monitor
- /////////////////////////////////////////////////////////////////////////////////////
- Serial.print(now.year(), DEC);
- Serial.print('/');
- Serial.print(now.month(), DEC);
- Serial.print('/');
- Serial.print(now.day(), DEC);
- Serial.print(" (");
- Serial.print(daysOfTheWeek[now.dayOfTheWeek()]);
- Serial.print(") ");
- Serial.print(now.hour(), DEC);
- Serial.print(':');
- Serial.print(now.minute(), DEC);
- Serial.print(':');
- Serial.print(now.second(), DEC);
- Serial.println();
- Serial.print("hour: ");
- Serial.println(chour);
- Serial.print("minute: ");
- Serial.println(cminute);
- Serial.print("date: ");
- Serial.println(date);
- /////////////////////////////////////////////////////////////////////////////////////
- //turns on the green LED initially
- //
- /////////////////////////////////////////////////////////////////////////////////////
- digitalWrite(pin7, HIGH);
- if (date == SunAMDay)
- {
- Serial.println("sunday AM check1");
- if (chour == SunAMHour)
- {
- Serial.println("sunday AM check2");
- if (cminute == SunAMMin)
- {
- Serial.println("sunday AM check3");
- while(digitalRead(pin22) == HIGH)
- {
- digitalWrite(pin7, LOW);
- digitalWrite(pin6, HIGH);
- digitalWrite(pin8, HIGH);
- }
- digitalWrite(pin6, LOW);
- digitalWrite(pin8, LOW);
- digitalWrite(pin7, HIGH);
- }
- }
- }
- digitalWrite(pin7, HIGH);
- if (date == SunPMDay)
- {
- Serial.println("Sunday PM check1");
- if (chour == SunPMHour)
- {
- Serial.println("Sunday PM check2");
- if (cminute == SunPMMin)
- {
- Serial.println("Sunday PM check3");
- while(digitalRead(pin36) == HIGH)
- {
- digitalWrite(pin7, LOW);
- digitalWrite(pin6, HIGH);
- digitalWrite(pin8, HIGH);
- }
- digitalWrite(pin6, LOW);
- digitalWrite(pin8, LOW);
- digitalWrite(pin7, HIGH);
- }
- }
- }
- /////////////////////////////////////////////////////////////////////////////////////
- if (date == MonAMDay)
- {
- Serial.println("Monday AM check1");
- if (chour == MonAMHour)
- {
- Serial.println("Monday AM check2");
- if (cminute == MonAMMin)
- {
- Serial.println("Monday AM check3");
- while(digitalRead(pin24) == HIGH)
- {
- digitalWrite(pin7, LOW);
- digitalWrite(pin6, HIGH);
- digitalWrite(pin8, HIGH);
- }
- digitalWrite(pin6, LOW);
- digitalWrite(pin8, LOW);
- digitalWrite(pin7, HIGH);
- }
- }
- }
- digitalWrite(pin7, HIGH);
- if (date == MonPMDay)
- {
- Serial.println("Monday PM check1");
- if (chour == MonPMHour)
- {
- Serial.println("Monday PM check2");
- if (cminute == MonPMMin)
- {
- Serial.println("Monday PM check3");
- while(digitalRead(pin38) == HIGH)
- {
- digitalWrite(pin7, LOW);
- digitalWrite(pin6, HIGH);
- digitalWrite(pin8, HIGH);
- }
- digitalWrite(pin6, LOW);
- digitalWrite(pin8, LOW);
- digitalWrite(pin7, HIGH);
- }
- }
- }
- /////////////////////////////////////////////////////////////////////////////////////
- if (date == TuesAMDay)
- {
- Serial.println("Tuesday AM check1");
- if (chour == TuesAMHour)
- {
- Serial.println("Tuesday AM check2");
- if (cminute == TuesAMMin)
- {
- Serial.println("Tuesday AM check3");
- while(digitalRead(pin26) == HIGH)
- {
- digitalWrite(pin7, LOW);
- digitalWrite(pin6, HIGH);
- digitalWrite(pin8, HIGH);
- }
- digitalWrite(pin6, LOW);
- digitalWrite(pin8, LOW);
- digitalWrite(pin7, HIGH);
- }
- }
- }
- digitalWrite(pin7, HIGH);
- if (date == TuesPMDay)
- {
- Serial.println("Tuesday PM check1");
- if (chour == TuesPMHour)
- {
- Serial.println("Tuesday PM check2");
- if (cminute == TuesPMMin)
- {
- Serial.println("Tuesday PM check3");
- while(digitalRead(pin40) == HIGH)
- {
- digitalWrite(pin7, LOW);
- digitalWrite(pin6, HIGH);
- digitalWrite(pin8, HIGH);
- }
- digitalWrite(pin6, LOW);
- digitalWrite(pin8, LOW);
- digitalWrite(pin7, HIGH);
- }
- }
- }
- /////////////////////////////////////////////////////////////////////////////////////
- if (date == WedAMDay)
- {
- Serial.println("Wednesday AM check1");
- if (chour == WedAMHour)
- {
- Serial.println("Wednesday AM check2");
- if (cminute == WedAMMin)
- {
- Serial.println("Wednesday AM check3");
- while(digitalRead(pin28) == HIGH)
- {
- digitalWrite(pin7, LOW);
- digitalWrite(pin6, HIGH);
- digitalWrite(pin8, HIGH);
- }
- digitalWrite(pin6, LOW);
- digitalWrite(pin8, LOW);
- digitalWrite(pin7, HIGH);
- }
- }
- }
- digitalWrite(pin7, HIGH);
- if (date == WedPMDay)
- {
- Serial.println("Wednesday PM check1");
- if (chour == WedPMHour)
- {
- Serial.println("Wednesday PM check2");
- if (cminute == WedPMMin)
- {
- Serial.println("Wednesday PM check3");
- while(digitalRead(pin42) == HIGH)
- {
- digitalWrite(pin7, LOW);
- digitalWrite(pin6, HIGH);
- digitalWrite(pin8, HIGH);
- }
- digitalWrite(pin6, LOW);
- digitalWrite(pin8, LOW);
- digitalWrite(pin7, HIGH);
- }
- }
- }
- /////////////////////////////////////////////////////////////////////////////////////
- if (date == ThurAMDay)
- {
- Serial.println("Thursday AM check1");
- if (chour == ThurAMHour)
- {
- Serial.println("Thursday AM check2");
- if (cminute == ThurAMMin)
- {
- Serial.println("Thursday AM check3");
- while(digitalRead(pin30) == HIGH)
- {
- digitalWrite(pin7, LOW);
- digitalWrite(pin6, HIGH);
- digitalWrite(pin8, HIGH);
- }
- digitalWrite(pin6, LOW);
- digitalWrite(pin8, LOW);
- digitalWrite(pin7, HIGH);
- }
- }
- }
- digitalWrite(pin7, HIGH);
- if (date == ThurPMDay)
- {
- Serial.println("Thursday PM check1");
- if (chour == ThurPMHour)
- {
- Serial.println("Thursday PM check2");
- if (cminute == ThurPMMin)
- {
- Serial.println("Thursday PM check3");
- while(digitalRead(pin44) == HIGH)
- {
- digitalWrite(pin7, LOW);
- digitalWrite(pin6, HIGH);
- digitalWrite(pin8, HIGH);
- }
- digitalWrite(pin6, LOW);
- digitalWrite(pin8, LOW);
- digitalWrite(pin7, HIGH);
- }
- }
- }
- /////////////////////////////////////////////////////////////////////////////////////
- if (date == FriAMDay)
- {
- Serial.println("Friday AM check1");
- if (chour == FriAMHour)
- {
- Serial.println("Friday AM check2");
- if (cminute == FriAMMin)
- {
- Serial.println("Friday AM check3");
- while(digitalRead(pin32) == HIGH)
- {
- digitalWrite(pin7, LOW);
- digitalWrite(pin6, HIGH);
- digitalWrite(pin8, HIGH);
- }
- digitalWrite(pin6, LOW);
- digitalWrite(pin8, LOW);
- digitalWrite(pin7, HIGH);
- }
- }
- }
- digitalWrite(pin7, HIGH);
- if (date == FriPMDay)
- {
- Serial.println("Friday PM check1");
- if (chour == FriPMHour)
- {
- Serial.println("Friday PM check2");
- if (cminute == FriPMMin)
- {
- Serial.println("Friday PM check3");
- while(digitalRead(pin46) == HIGH)
- {
- digitalWrite(pin7, LOW);
- digitalWrite(pin6, HIGH);
- digitalWrite(pin8, HIGH);
- }
- digitalWrite(pin6, LOW);
- digitalWrite(pin8, LOW);
- digitalWrite(pin7, HIGH);
- }
- }
- }
- /////////////////////////////////////////////////////////////////////////////////////
- if (date == SatAMDay)
- {
- Serial.println("Saturday AM check1");
- if (chour == SatAMHour)
- {
- Serial.println("Saturday AM check2");
- if (cminute == SatAMMin)
- {
- Serial.println("Saturday AM check3");
- while(digitalRead(pin34) == HIGH)
- {
- digitalWrite(pin7, LOW);
- digitalWrite(pin6, HIGH);
- digitalWrite(pin8, HIGH);
- }
- digitalWrite(pin6, LOW);
- digitalWrite(pin8, LOW);
- digitalWrite(pin7, HIGH);
- }
- }
- }
- digitalWrite(pin7, HIGH);
- if (date == SatPMDay)
- {
- Serial.println("Saturday PM check1");
- if (chour == SatPMHour)
- {
- Serial.println("Saturday PM check2");
- if (cminute == SatPMMin)
- {
- Serial.println("Saturday PM check3");
- while(digitalRead(pin48) == HIGH)
- {
- digitalWrite(pin7, LOW);
- digitalWrite(pin6, HIGH);
- digitalWrite(pin8, HIGH);
- }
- digitalWrite(pin6, LOW);
- digitalWrite(pin8, LOW);
- digitalWrite(pin7, HIGH);
- }
- }
- }
- /////////////////////////////////////////////////////////////////////////////////////
- Serial.println();
- delay(60000);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement