Advertisement
Guest User

alarm code

a guest
Feb 21st, 2019
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 15.25 KB | None | 0 0
  1. /////////////////////////////////////////////////////////////////////////////////////
  2. //Lorenso Hinojosa's alarm code
  3. //set to have 2 alarms a day at set times in thie code
  4. /////////////////////////////////////////////////////////////////////////////////////
  5.  
  6. // Date and time functions using a DS1307 RTC connected via I2C and Wire lib
  7. #include <Wire.h>
  8. #include "RTClib.h"
  9.  
  10. #if defined(ARDUINO_ARCH_SAMD)
  11. // for Zero, output on USB Serial console, remove line below if using programming port to program the Zero!
  12.    #define Serial SerialUSB
  13. #endif
  14.    
  15. RTC_DS1307 rtc;
  16.  
  17. char daysOfTheWeek[7][12] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};
  18.  
  19.  
  20. /////////////////////////////////////////////////////////////////////////////////////
  21. //Morning setup
  22. //This is setting up all of the morning switch pins.  
  23. /////////////////////////////////////////////////////////////////////////////////////
  24.  
  25. int pin22 = 22; //Sun AM
  26. int pin24 = 24; //Mon AM
  27. int pin26 = 26; //Tues AM
  28. int pin28 = 28; //Wed AM
  29. int pin30 = 30; //Thur AM
  30. int pin32 = 32; //Fri AM
  31. int pin34 = 34; //Sat AM
  32.  
  33.  
  34. /////////////////////////////////////////////////////////////////////////////////////
  35. //Evening setup
  36. //This is setting up all of the evening switch pins.  
  37. /////////////////////////////////////////////////////////////////////////////////////
  38.  
  39. int pin36 = 36; //Sun PM
  40. int pin38 = 38; //Mon PM
  41. int pin40 = 40; //Tues PM
  42. int pin42 = 42; //Wed PM
  43. int pin44 = 44; //Thur PM
  44. int pin46 = 46; //Fri PM
  45. int pin48 = 48; //Sat PM
  46.  
  47. /////////////////////////////////////////////////////////////////////////////////////
  48. //LED and alarm pin set setup
  49. /////////////////////////////////////////////////////////////////////////////////////
  50. int pin6 = 6; //alarm transistor
  51. int pin7 = 7; //green LED
  52. int pin8 = 8; //red LED
  53.  
  54. /////////////////////////////////////////////////////////////////////////////////////
  55. //void setup
  56. /////////////////////////////////////////////////////////////////////////////////////
  57.  
  58.  
  59. void setup () {//////////////////////////////////////////////////////////////////
  60.  
  61. /////////////////////////////////////////////////////////////////////////////////////
  62. //using the pull up
  63. //enables the internal pull up resistor
  64. /////////////////////////////////////////////////////////////////////////////////////
  65.  
  66.     pinMode(pin22, INPUT_PULLUP);
  67.     pinMode(pin24, INPUT_PULLUP);
  68.     pinMode(pin26, INPUT_PULLUP);
  69.     pinMode(pin28, INPUT_PULLUP);
  70.     pinMode(pin30, INPUT_PULLUP);
  71.     pinMode(pin32, INPUT_PULLUP);
  72.     pinMode(pin34, INPUT_PULLUP);
  73.     pinMode(pin36, INPUT_PULLUP);
  74.     pinMode(pin38, INPUT_PULLUP);
  75.     pinMode(pin40, INPUT_PULLUP);
  76.     pinMode(pin42, INPUT_PULLUP);
  77.     pinMode(pin44, INPUT_PULLUP);
  78.     pinMode(pin46, INPUT_PULLUP);
  79.     pinMode(pin48, INPUT_PULLUP);
  80.  
  81. ///////////////////////////////////////////
  82. //pinMode(30, OUTPUT);
  83. //#ifndef ESP8266
  84. //  while (!Serial); // for Leonardo/Micro/Zero
  85. //#endif
  86.  
  87.  
  88. /////////////////////////////////////////////////////////////////////////////////////
  89. //setup the refresh rate of serial monitor (i think)
  90. /////////////////////////////////////////////////////////////////////////////////////
  91.   Serial.begin(57600);
  92.   if (! rtc.begin()) {
  93.     Serial.println("Couldn't find RTC");
  94.     while (1);
  95.   }
  96. /////////////////////////////////////////////////////////////////////////////////////
  97. //sets real time clock (rtc) module
  98. ////////// ///////////////////////////////////////////////////////////////////////////
  99.   if (! rtc.isrunning()) {
  100.     Serial.println("RTC is NOT running!");
  101.       // following line sets the RTC to the date & time this sketch was compiled
  102.       //rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
  103.       // This line sets the RTC with an explicit date & time, for example to set
  104.       // January 21, 2014 at 3am you would call:
  105.     // rtc.adjust(DateTime(2014, 1, 21, 3, 0, 0));
  106.   }
  107. /////////////////////////////////////////////////////////////////////////////////////
  108. //set up the transistor pin to control the alarm
  109. //also sets up light 1 and 2 pin
  110. /////////////////////////////////////////////////////////////////////////////////////
  111.  
  112.   pinMode(pin6, OUTPUT);
  113.   pinMode(pin7, OUTPUT);
  114.   pinMode(pin8, OUTPUT);
  115.  
  116. }
  117. /////////////////////////////////////////////////////////////////////////////////////
  118. //actual looping program
  119. /////////////////////////////////////////////////////////////////////////////////////
  120. void loop ()
  121. {
  122.  
  123.  
  124.      
  125.     DateTime now = rtc.now();
  126. ////////////////////////////////////////////////////////////////////////////////////
  127. //variables that won't change
  128. /////////////////////////////////////////////////////////////////////////////////////
  129.     int sun = 0;    
  130.     int mon = 1;    
  131.     int tue = 2;    
  132.     int wed = 3;    
  133.     int thu = 4;    
  134.     int fri = 5;    
  135.     int sat = 6;    
  136. // morning times
  137.   int SunAMDay = 0;
  138.   int SunAMHour = 8;
  139.   int SunAMMin = 10;
  140.  
  141.   int MonAMDay = 1;
  142.   int MonAMHour = 5;
  143.   int MonAMMin = 10;
  144.  
  145.   int TuesAMDay = 2;
  146.   int TuesAMHour = 5;
  147.   int TuesAMMin = 10;
  148.  
  149.   int WedAMDay = 3;
  150.   int WedAMHour = 5;
  151.   int WedAMMin = 10;
  152.  
  153.   int ThurAMDay = 5;
  154.   int ThurAMHour = 7;
  155.   int ThurAMMin = 10;
  156.  
  157.   int FriAMDay = 5;
  158.   int FriAMHour = 5;
  159.   int FriAMMin = 10;
  160.  
  161.   int SatAMDay = 6;
  162.   int SatAMHour = 8;
  163.   int SatAMMin = 10;
  164. // evening times
  165.   int SunPMDay = 0;
  166.   int SunPMHour = 16;
  167.   int SunPMMin = 30;
  168.  
  169.   int MonPMDay = 1;
  170.   int MonPMHour = 16;
  171.   int MonPMMin = 30;
  172.  
  173.   int TuesPMDay = 2;
  174.   int TuesPMHour = 16;
  175.   int TuesPMMin = 30;
  176.  
  177.   int WedPMDay = 3;
  178.   int WedPMHour = 16;
  179.   int WedPMMin = 30;
  180.  
  181.   int ThurPMDay = 4;
  182.   int ThurPMHour = 16;
  183.   int ThurPMMin = 30;
  184.  
  185.   int FriPMDay = 5;
  186.   int FriPMHour = 16;
  187.   int FriPMMin = 30;
  188.  
  189.   int SatPMDay = 6;
  190.   int SatPMHour = 16;
  191.   int SatPMMin = 30;
  192.  
  193.  
  194. ////////////////////////////////////////////////////////////////////////////////////
  195. //variables that are subject to change
  196. /////////////////////////////////////////////////////////////////////////////////////
  197.  
  198.     int date;
  199.       date = now.dayOfTheWeek();
  200.     int chour;
  201.       chour =  now.hour();
  202.     int cminute;
  203.       cminute =  now.minute();
  204.    
  205.  
  206.  
  207.    
  208. /////////////////////////////////////////////////////////////////////////////////////
  209. //prints date and time in the serial monitor
  210. /////////////////////////////////////////////////////////////////////////////////////
  211.  
  212.   Serial.print(now.year(), DEC);
  213.     Serial.print('/');
  214.     Serial.print(now.month(), DEC);
  215.     Serial.print('/');
  216.     Serial.print(now.day(), DEC);
  217.     Serial.print(" (");
  218.     Serial.print(daysOfTheWeek[now.dayOfTheWeek()]);
  219.     Serial.print(") ");
  220.     Serial.print(now.hour(), DEC);
  221.     Serial.print(':');
  222.     Serial.print(now.minute(), DEC);
  223.     Serial.print(':');
  224.     Serial.print(now.second(), DEC);
  225.     Serial.println();
  226.     Serial.print("hour:  ");
  227.     Serial.println(chour);
  228.     Serial.print("minute:  ");
  229.     Serial.println(cminute);
  230.     Serial.print("date:  ");
  231.     Serial.println(date);
  232. /////////////////////////////////////////////////////////////////////////////////////
  233. //turns on the green LED initially
  234. //
  235. /////////////////////////////////////////////////////////////////////////////////////
  236.   digitalWrite(pin7, HIGH);
  237.  
  238.      if (date == SunAMDay)
  239.     {
  240.       Serial.println("sunday AM check1");
  241.       if (chour == SunAMHour)
  242.       {
  243.         Serial.println("sunday AM check2");
  244.         if (cminute == SunAMMin)
  245.         {
  246.         Serial.println("sunday AM check3");
  247.            
  248.           while(digitalRead(pin22) == HIGH)
  249.           {      
  250.             digitalWrite(pin7, LOW);
  251.             digitalWrite(pin6, HIGH);
  252.             digitalWrite(pin8, HIGH);
  253.           }
  254.           digitalWrite(pin6, LOW);
  255.           digitalWrite(pin8, LOW);
  256.           digitalWrite(pin7, HIGH);
  257.         }
  258.        
  259.       }
  260.     }
  261.     digitalWrite(pin7, HIGH);
  262.  
  263.      if (date == SunPMDay)
  264.     {
  265.       Serial.println("Sunday PM check1");
  266.       if (chour == SunPMHour)
  267.       {
  268.         Serial.println("Sunday PM check2");
  269.         if (cminute == SunPMMin)
  270.         {
  271.         Serial.println("Sunday PM check3");
  272.            
  273.           while(digitalRead(pin36) == HIGH)
  274.           {      
  275.             digitalWrite(pin7, LOW);
  276.             digitalWrite(pin6, HIGH);
  277.             digitalWrite(pin8, HIGH);
  278.           }
  279.           digitalWrite(pin6, LOW);
  280.           digitalWrite(pin8, LOW);
  281.           digitalWrite(pin7, HIGH);
  282.         }
  283.        
  284.       }
  285.     }
  286. /////////////////////////////////////////////////////////////////////////////////////
  287.  
  288.     if (date == MonAMDay)
  289.     {
  290.       Serial.println("Monday AM check1");
  291.       if (chour == MonAMHour)
  292.       {
  293.         Serial.println("Monday AM check2");
  294.         if (cminute == MonAMMin)
  295.         {
  296.         Serial.println("Monday AM check3");
  297.            
  298.           while(digitalRead(pin24) == HIGH)
  299.           {      
  300.             digitalWrite(pin7, LOW);
  301.             digitalWrite(pin6, HIGH);
  302.             digitalWrite(pin8, HIGH);
  303.           }
  304.           digitalWrite(pin6, LOW);
  305.           digitalWrite(pin8, LOW);
  306.           digitalWrite(pin7, HIGH);
  307.         }
  308.        
  309.       }
  310.     }
  311.     digitalWrite(pin7, HIGH);
  312.  
  313.      if (date == MonPMDay)
  314.     {
  315.       Serial.println("Monday PM check1");
  316.       if (chour == MonPMHour)
  317.       {
  318.         Serial.println("Monday PM check2");
  319.         if (cminute == MonPMMin)
  320.         {
  321.         Serial.println("Monday PM check3");
  322.            
  323.           while(digitalRead(pin38) == HIGH)
  324.           {      
  325.             digitalWrite(pin7, LOW);
  326.             digitalWrite(pin6, HIGH);
  327.             digitalWrite(pin8, HIGH);
  328.           }
  329.           digitalWrite(pin6, LOW);
  330.           digitalWrite(pin8, LOW);
  331.           digitalWrite(pin7, HIGH);
  332.         }
  333.        
  334.       }
  335.     }
  336. /////////////////////////////////////////////////////////////////////////////////////
  337.       if (date == TuesAMDay)
  338.     {
  339.       Serial.println("Tuesday AM check1");
  340.       if (chour == TuesAMHour)
  341.       {
  342.         Serial.println("Tuesday AM check2");
  343.         if (cminute == TuesAMMin)
  344.         {
  345.         Serial.println("Tuesday AM check3");
  346.            
  347.           while(digitalRead(pin26) == HIGH)
  348.           {      
  349.             digitalWrite(pin7, LOW);
  350.             digitalWrite(pin6, HIGH);
  351.             digitalWrite(pin8, HIGH);
  352.           }
  353.           digitalWrite(pin6, LOW);
  354.           digitalWrite(pin8, LOW);
  355.           digitalWrite(pin7, HIGH);
  356.         }
  357.        
  358.       }
  359.     }
  360.     digitalWrite(pin7, HIGH);
  361.  
  362.      if (date == TuesPMDay)
  363.     {
  364.       Serial.println("Tuesday PM check1");
  365.       if (chour == TuesPMHour)
  366.       {
  367.         Serial.println("Tuesday PM check2");
  368.         if (cminute == TuesPMMin)
  369.         {
  370.         Serial.println("Tuesday PM check3");
  371.            
  372.           while(digitalRead(pin40) == HIGH)
  373.           {      
  374.             digitalWrite(pin7, LOW);
  375.             digitalWrite(pin6, HIGH);
  376.             digitalWrite(pin8, HIGH);
  377.           }
  378.           digitalWrite(pin6, LOW);
  379.           digitalWrite(pin8, LOW);
  380.           digitalWrite(pin7, HIGH);
  381.         }
  382.        
  383.       }
  384.     }
  385. /////////////////////////////////////////////////////////////////////////////////////
  386.       if (date == WedAMDay)
  387.     {
  388.       Serial.println("Wednesday AM check1");
  389.       if (chour == WedAMHour)
  390.       {
  391.         Serial.println("Wednesday AM check2");
  392.         if (cminute == WedAMMin)
  393.         {
  394.         Serial.println("Wednesday AM check3");
  395.            
  396.           while(digitalRead(pin28) == HIGH)
  397.           {      
  398.             digitalWrite(pin7, LOW);
  399.             digitalWrite(pin6, HIGH);
  400.             digitalWrite(pin8, HIGH);
  401.           }
  402.           digitalWrite(pin6, LOW);
  403.           digitalWrite(pin8, LOW);
  404.           digitalWrite(pin7, HIGH);
  405.         }
  406.        
  407.       }
  408.     }
  409.     digitalWrite(pin7, HIGH);
  410.  
  411.      if (date == WedPMDay)
  412.     {
  413.       Serial.println("Wednesday PM check1");
  414.       if (chour == WedPMHour)
  415.       {
  416.         Serial.println("Wednesday PM check2");
  417.         if (cminute == WedPMMin)
  418.         {
  419.         Serial.println("Wednesday PM check3");
  420.            
  421.           while(digitalRead(pin42) == HIGH)
  422.           {      
  423.             digitalWrite(pin7, LOW);
  424.             digitalWrite(pin6, HIGH);
  425.             digitalWrite(pin8, HIGH);
  426.           }
  427.           digitalWrite(pin6, LOW);
  428.           digitalWrite(pin8, LOW);
  429.           digitalWrite(pin7, HIGH);
  430.         }
  431.        
  432.       }
  433.     }
  434. /////////////////////////////////////////////////////////////////////////////////////
  435.       if (date == ThurAMDay)
  436.     {
  437.       Serial.println("Thursday AM check1");
  438.       if (chour == ThurAMHour)
  439.       {
  440.         Serial.println("Thursday AM check2");
  441.         if (cminute == ThurAMMin)
  442.         {
  443.         Serial.println("Thursday AM check3");
  444.            
  445.           while(digitalRead(pin30) == HIGH)
  446.           {      
  447.             digitalWrite(pin7, LOW);
  448.             digitalWrite(pin6, HIGH);
  449.             digitalWrite(pin8, HIGH);
  450.           }
  451.           digitalWrite(pin6, LOW);
  452.           digitalWrite(pin8, LOW);
  453.           digitalWrite(pin7, HIGH);
  454.         }
  455.        
  456.       }
  457.     }
  458.     digitalWrite(pin7, HIGH);
  459.  
  460.      if (date == ThurPMDay)
  461.     {
  462.       Serial.println("Thursday PM check1");
  463.       if (chour == ThurPMHour)
  464.       {
  465.         Serial.println("Thursday PM check2");
  466.         if (cminute == ThurPMMin)
  467.         {
  468.         Serial.println("Thursday PM check3");
  469.            
  470.           while(digitalRead(pin44) == HIGH)
  471.           {      
  472.             digitalWrite(pin7, LOW);
  473.             digitalWrite(pin6, HIGH);
  474.             digitalWrite(pin8, HIGH);
  475.           }
  476.           digitalWrite(pin6, LOW);
  477.           digitalWrite(pin8, LOW);
  478.           digitalWrite(pin7, HIGH);
  479.         }
  480.        
  481.       }
  482.     }
  483. /////////////////////////////////////////////////////////////////////////////////////
  484.       if (date == FriAMDay)
  485.     {
  486.       Serial.println("Friday AM check1");
  487.       if (chour == FriAMHour)
  488.       {
  489.         Serial.println("Friday AM check2");
  490.         if (cminute == FriAMMin)
  491.         {
  492.         Serial.println("Friday AM check3");
  493.            
  494.           while(digitalRead(pin32) == HIGH)
  495.           {      
  496.             digitalWrite(pin7, LOW);
  497.             digitalWrite(pin6, HIGH);
  498.             digitalWrite(pin8, HIGH);
  499.           }
  500.           digitalWrite(pin6, LOW);
  501.           digitalWrite(pin8, LOW);
  502.           digitalWrite(pin7, HIGH);
  503.         }
  504.        
  505.       }
  506.     }
  507.     digitalWrite(pin7, HIGH);
  508.  
  509.      if (date == FriPMDay)
  510.     {
  511.       Serial.println("Friday PM check1");
  512.       if (chour == FriPMHour)
  513.       {
  514.         Serial.println("Friday PM check2");
  515.         if (cminute == FriPMMin)
  516.         {
  517.         Serial.println("Friday PM check3");
  518.            
  519.           while(digitalRead(pin46) == HIGH)
  520.           {      
  521.             digitalWrite(pin7, LOW);
  522.             digitalWrite(pin6, HIGH);
  523.             digitalWrite(pin8, HIGH);
  524.           }
  525.           digitalWrite(pin6, LOW);
  526.           digitalWrite(pin8, LOW);
  527.           digitalWrite(pin7, HIGH);
  528.         }
  529.        
  530.       }
  531.     }
  532. /////////////////////////////////////////////////////////////////////////////////////
  533.       if (date == SatAMDay)
  534.     {
  535.       Serial.println("Saturday AM check1");
  536.       if (chour == SatAMHour)
  537.       {
  538.         Serial.println("Saturday AM check2");
  539.         if (cminute == SatAMMin)
  540.         {
  541.         Serial.println("Saturday AM check3");
  542.            
  543.           while(digitalRead(pin34) == HIGH)
  544.           {      
  545.             digitalWrite(pin7, LOW);
  546.             digitalWrite(pin6, HIGH);
  547.             digitalWrite(pin8, HIGH);
  548.           }
  549.           digitalWrite(pin6, LOW);
  550.           digitalWrite(pin8, LOW);
  551.           digitalWrite(pin7, HIGH);
  552.         }
  553.        
  554.       }
  555.     }
  556.     digitalWrite(pin7, HIGH);
  557.  
  558.      if (date == SatPMDay)
  559.     {
  560.       Serial.println("Saturday PM check1");
  561.       if (chour == SatPMHour)
  562.       {
  563.         Serial.println("Saturday PM check2");
  564.         if (cminute == SatPMMin)
  565.         {
  566.         Serial.println("Saturday PM check3");
  567.            
  568.           while(digitalRead(pin48) == HIGH)
  569.           {      
  570.             digitalWrite(pin7, LOW);
  571.             digitalWrite(pin6, HIGH);
  572.             digitalWrite(pin8, HIGH);
  573.           }
  574.           digitalWrite(pin6, LOW);
  575.           digitalWrite(pin8, LOW);
  576.           digitalWrite(pin7, HIGH);
  577.         }
  578.        
  579.       }
  580.     }
  581. /////////////////////////////////////////////////////////////////////////////////////
  582.    
  583.  
  584.  
  585.  
  586.  
  587.  
  588.   Serial.println();
  589.     delay(60000);
  590. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement