3 various seasons schedule
This commit is contained in:
		
							parent
							
								
									e5e0352111
								
							
						
					
					
						commit
						dbc0e80c56
					
				| 
						 | 
					@ -1,6 +1,5 @@
 | 
				
			||||||
// 2 relay-buttons on timer with 4-digit display
 | 
					// 2 relay-buttons on timer with 4-digit display
 | 
				
			||||||
#include <Arduino.h>
 | 
					#include <Arduino.h>
 | 
				
			||||||
#include <Wire.h>
 | 
					 | 
				
			||||||
#include <TimeLib.h>
 | 
					#include <TimeLib.h>
 | 
				
			||||||
#include <Thread.h>
 | 
					#include <Thread.h>
 | 
				
			||||||
#include <DS1307RTC.h>                 // A basic DS1307 library that returns time as a time_t
 | 
					#include <DS1307RTC.h>                 // A basic DS1307 library that returns time as a time_t
 | 
				
			||||||
| 
						 | 
					@ -12,18 +11,15 @@ const byte redButton = 4;              // RedButton: light on, open door
 | 
				
			||||||
const byte blackButton = 5;            // BlackButton: light off, close door
 | 
					const byte blackButton = 5;            // BlackButton: light off, close door
 | 
				
			||||||
const byte stopButtonRelay = 6;
 | 
					const byte stopButtonRelay = 6;
 | 
				
			||||||
const byte startButtonRelay = 7;
 | 
					const byte startButtonRelay = 7;
 | 
				
			||||||
// const byte led = 13;
 | 
					const int msStart = 889;               // Interval for pressing start button, ms
 | 
				
			||||||
const int msStart = 639;               // Interval for pressing start button, ms
 | 
					const int msStop = 887;                // Interval for pressing stop button, ms
 | 
				
			||||||
const int msStop = 637;                // Interval for pressing stop button, ms
 | 
					 | 
				
			||||||
const int updateTime = 1000;           // Interval for digit display update
 | 
					const int updateTime = 1000;           // Interval for digit display update
 | 
				
			||||||
const int buttonCheck = 200;           // Interval for checking button state
 | 
					const int buttonCheck = 200;           // Interval for checking button state
 | 
				
			||||||
const long manualButtonTime = 3600000; // 60 min - actual state of manual pressed button
 | 
					const long manualButtonTime = 3600000; // 60 min - actual state of manual pressed button
 | 
				
			||||||
long buttonMillis = 0;                 // Previous button press counter
 | 
					long buttonMillis = 0;                 // Previous button press counter
 | 
				
			||||||
byte indicator = 0;                    // Indicator of working states: 0 - scheduled off; 1 - scheduled on;
 | 
					byte indicator = 0;                    // Indicator of working states: 0 - scheduled off; 1 - scheduled on;
 | 
				
			||||||
                                       // 2 - manual off, 3 - manual on
 | 
					                                       // 2 - manual off, 3 - manual on
 | 
				
			||||||
 | 
					 | 
				
			||||||
SevenSegmentExtended display(PIN_CLK, PIN_DIO);
 | 
					SevenSegmentExtended display(PIN_CLK, PIN_DIO);
 | 
				
			||||||
 | 
					 | 
				
			||||||
Thread showTimeThread = Thread();      // Create thread for LED pulse indication
 | 
					Thread showTimeThread = Thread();      // Create thread for LED pulse indication
 | 
				
			||||||
Thread pressButtonThread = Thread();   // Create thread for button state checking
 | 
					Thread pressButtonThread = Thread();   // Create thread for button state checking
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -37,7 +33,6 @@ void setup() {
 | 
				
			||||||
  pinMode(blackButton, INPUT);
 | 
					  pinMode(blackButton, INPUT);
 | 
				
			||||||
  pinMode(stopButtonRelay, OUTPUT);
 | 
					  pinMode(stopButtonRelay, OUTPUT);
 | 
				
			||||||
  pinMode(startButtonRelay, OUTPUT);
 | 
					  pinMode(startButtonRelay, OUTPUT);
 | 
				
			||||||
//  pinMode(led, OUTPUT);
 | 
					 | 
				
			||||||
  while (!Serial);                     // Wait until Arduino Serial Monitor opens
 | 
					  while (!Serial);                     // Wait until Arduino Serial Monitor opens
 | 
				
			||||||
  setSyncProvider(RTC.get);            // The function to get the time from the RTC
 | 
					  setSyncProvider(RTC.get);            // The function to get the time from the RTC
 | 
				
			||||||
  if(timeStatus()!= timeSet)
 | 
					  if(timeStatus()!= timeSet)
 | 
				
			||||||
| 
						 | 
					@ -160,7 +155,7 @@ void pressButton() {
 | 
				
			||||||
  if (buttonMillis>0) {
 | 
					  if (buttonMillis>0) {
 | 
				
			||||||
    if (indicator==3) {
 | 
					    if (indicator==3) {
 | 
				
			||||||
      if ((currentMillis-buttonMillis) > manualButtonTime) {
 | 
					      if ((currentMillis-buttonMillis) > manualButtonTime) {
 | 
				
			||||||
        serStr("manualButtonTime expired...press stop");
 | 
					        serStr("manualButtonTime expired...stop pressed");
 | 
				
			||||||
        buttonMillis = 0;
 | 
					        buttonMillis = 0;
 | 
				
			||||||
        pressStop();
 | 
					        pressStop();
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
| 
						 | 
					@ -185,14 +180,13 @@ void pressButton() {
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Winter timing 6:00-7:31, 12:00-13:01, 17:00-18:01
 | 
					 | 
				
			||||||
void checkTime() {
 | 
					void checkTime() {
 | 
				
			||||||
  // Winter
 | 
					  // Winter
 | 
				
			||||||
  if (month()==12 || month()==1 || month()==2 ) {
 | 
					  if (month()==12 || month()==1 || month()==2 ) {
 | 
				
			||||||
    // 6:00 - 7:01 - working
 | 
					    // 6:00 - 7:16 - working
 | 
				
			||||||
    if ((hour()==6) && (indicator==0)) pressStart();
 | 
					    if ((hour()==6) && (indicator==0)) pressStart();
 | 
				
			||||||
    // 7:01 - stop
 | 
					    // 7:01 - stop
 | 
				
			||||||
    if ((hour()==7) && (minute()==1)) pressStop();
 | 
					    if ((hour()==7) && (minute()==16)) pressStop();
 | 
				
			||||||
    // 12:00 - 13:01 - working
 | 
					    // 12:00 - 13:01 - working
 | 
				
			||||||
    if ((hour()==12) && (indicator==0)) pressStart();
 | 
					    if ((hour()==12) && (indicator==0)) pressStart();
 | 
				
			||||||
    // 13:01 - stop
 | 
					    // 13:01 - stop
 | 
				
			||||||
| 
						 | 
					@ -203,51 +197,33 @@ void checkTime() {
 | 
				
			||||||
    if ((hour()==18) && (minute()==1)) pressStop();
 | 
					    if ((hour()==18) && (minute()==1)) pressStop();
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  // Spring & Autumn
 | 
					  // Spring & Autumn
 | 
				
			||||||
/*
 | 
					  if (month()==3 || month()==4 || month()==10 || month()==11) {
 | 
				
			||||||
// ! TEMPORARY CHANGES !
 | 
					    // 6:00 - 8:21 - working
 | 
				
			||||||
  if (month()==3 || month()==4 || month()==5 || month()==9 || month()==10 || month()==11) {
 | 
					    if ((hour()==6 || hour()==7) && (indicator==0)) pressStart();
 | 
				
			||||||
    // 6:00 - 7:41 - working
 | 
					    // 8:21 - stop
 | 
				
			||||||
    if ((hour()==6) && (indicator==0)) pressStart();
 | 
					    if ((hour()==8) && (minute()==21)) pressStop();
 | 
				
			||||||
    // 7:41 - stop
 | 
					    // 12:00 - 13:26 - working
 | 
				
			||||||
    if ((hour()==7) && (minute()==41)) pressStop();
 | 
					 | 
				
			||||||
    // 12:00 - 13:01 - working
 | 
					 | 
				
			||||||
    if ((hour()==12) && (indicator==0)) pressStart();
 | 
					    if ((hour()==12) && (indicator==0)) pressStart();
 | 
				
			||||||
    // 13:01 - stop
 | 
					    // 13:26 - stop
 | 
				
			||||||
    if ((hour()==13) && (minute()==1)) pressStop();
 | 
					    if ((hour()==13) && (minute()==26)) pressStop();
 | 
				
			||||||
    // 17:00 - 18:21 - working
 | 
					    // 17:00 - 18:21 - working
 | 
				
			||||||
    if ((hour()==17) && (indicator==0)) pressStart();
 | 
					    if ((hour()==17) && (indicator==0)) pressStart();
 | 
				
			||||||
    // 18:21 - stop
 | 
					    // 18:21 - stop
 | 
				
			||||||
    if ((hour()==18) && (minute()==21)) pressStop();
 | 
					    if ((hour()==18) && (minute()==21)) pressStop();
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
*/
 | 
					 | 
				
			||||||
// ! TEMPORARY CHANGES !
 | 
					 | 
				
			||||||
  if (month()==3 || month()==4 || month()==5 || month()==9 || month()==10 || month()==11) {
 | 
					 | 
				
			||||||
    // 6:00 - 8:01 - working
 | 
					 | 
				
			||||||
    if ((hour()==6 || hour()==7) && (indicator==0)) pressStart();
 | 
					 | 
				
			||||||
    // 8:01 - stop
 | 
					 | 
				
			||||||
    if ((hour()==8) && (minute()==1)) pressStop();
 | 
					 | 
				
			||||||
    // 12:00 - 13:31 - working
 | 
					 | 
				
			||||||
    if ((hour()==12) && (indicator==0)) pressStart();
 | 
					 | 
				
			||||||
    // 13:31 - stop
 | 
					 | 
				
			||||||
    if ((hour()==13) && (minute()==31)) pressStop();
 | 
					 | 
				
			||||||
    // 17:00 - 18:41 - working
 | 
					 | 
				
			||||||
    if ((hour()==17) && (indicator==0)) pressStart();
 | 
					 | 
				
			||||||
    // 18:41 - stop
 | 
					 | 
				
			||||||
    if ((hour()==18) && (minute()==41)) pressStop();
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  // Summer
 | 
					  // Summer
 | 
				
			||||||
  if (month()==6 || month()==7 || month()==8 ) {
 | 
					  if (month()==5 || month()==6 || month()==7 || month()==8 || month()==9) {
 | 
				
			||||||
    // 6:00 - 8:01 - working
 | 
					    // 6:00 - 8:28 - working
 | 
				
			||||||
    if ((hour()==6 || hour()==7) && (indicator==0)) pressStart();
 | 
					    if ((hour()==6 || hour()==7) && (indicator==0)) pressStart();
 | 
				
			||||||
    // 8:01 - stop
 | 
					    // 8:23 - stop
 | 
				
			||||||
    if ((hour()==8) && (minute()==1)) pressStop();
 | 
					    if ((hour()==8) && (minute()==28)) pressStop();
 | 
				
			||||||
    // 12:00 - 14:01 - working
 | 
					    // 12:00 - 14:11 - working
 | 
				
			||||||
    if ((hour()==12 || hour()==13) && (indicator==0)) pressStart();
 | 
					    if ((hour()==12 || hour()==13) && (indicator==0)) pressStart();
 | 
				
			||||||
    // 14:01 - stop
 | 
					    // 14:11 - stop
 | 
				
			||||||
    if ((hour()==14) && (minute()==1)) pressStop();
 | 
					    if ((hour()==14) && (minute()==11)) pressStop();
 | 
				
			||||||
    // 17:00 - 18:25 - working
 | 
					    // 17:00 - 18:35 - working
 | 
				
			||||||
    if ((hour()==17) && (indicator==0)) pressStart();
 | 
					    if ((hour()==17) && (indicator==0)) pressStart();
 | 
				
			||||||
    // 18:25 - stop
 | 
					    // 18:35 - stop
 | 
				
			||||||
    if ((hour()==18) && (minute()==25)) pressStop();
 | 
					    if ((hour()==18) && (minute()==35)) pressStop();
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
		Loading…
	
		Reference in New Issue