add falseStop function

This commit is contained in:
ivan 2018-07-13 22:59:42 +03:00
parent dbc0e80c56
commit 35c7d5f4ad
3 changed files with 67 additions and 27 deletions

27
LICENSE Normal file
View File

@ -0,0 +1,27 @@
This source code is released under the DWTW license.
This program is free software; you can redistribute it and/or modify it under the terms of the Do What Thou Wilt License.
Boundless Public License
DO WHAT THOU WILT
TO PUBLIC LICENSE
Version 2.55
Everyone is permitted to copy and distribute verbatim or modified copies of this license document, and changing it in full or in part is allowed without any restrictions.
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. Do what thou wilt shall be the whole of the Law.
DWTWL a license with a single requirement: DO WHAT THOU WILT
The license provides more freedom than any other one (such as GPL or BSD) and does not require saving the license text on copying.
DWTWL an accomplished and eligible license for free text, code and any other symbols (including the software, documentation and artwork).
The license does not contain a "no warranty" clause. DWTWL can be used in countries that do not legally acknowledge the transition to public domain.
Summary:
An author-creator gives their source code to the world for free, without becoming distracted by worldly thinking regarding how and why the others will use it.

View File

@ -1,3 +1,3 @@
twobuttonstimer scetch for Arduino using DS1307RTC # twobuttonstimer scetch for Arduino using DS1307RTC
![pyGtkRDP](https://raw.githubusercontent.com/zlaxy/twobuttonstimer/master/twobuttonstimer_bb.png) ![twobuttonstimer](https://gitlab.com/simplemicrocontrollers/twobuttonstimer/raw/master/twobuttonstimer_bb.png)

View File

@ -11,11 +11,11 @@ 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 int msStart = 889; // Interval for pressing start button, ms const int msStart = 650; // Interval for pressing start button, ms
const int msStop = 887; // Interval for pressing stop button, ms const int msStop = 750; // 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 = 1800000; // 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
@ -80,12 +80,12 @@ void showTime() {
void pressStart() { void pressStart() {
serStr("scheduled start button pressed"); serStr("scheduled start button pressed");
display.print("on__"); display.print("on__");
delay(5000); delay(55000);
indicator = 1; indicator = 1;
digitalWrite(startButtonRelay, HIGH); digitalWrite(startButtonRelay, HIGH);
delay(msStart); delay(msStart);
digitalWrite(startButtonRelay, LOW); digitalWrite(startButtonRelay, LOW);
delay(61000); // wait a minute delay(6000);
serStr("scheduled start button delay finished"); serStr("scheduled start button delay finished");
} }
@ -98,9 +98,22 @@ void pressStop() {
delay(msStop); delay(msStop);
digitalWrite(stopButtonRelay, LOW); digitalWrite(stopButtonRelay, LOW);
delay(61000); // wait a minute delay(61000); // wait a minute
// Double!
digitalWrite(stopButtonRelay, HIGH);
delay(msStop);
digitalWrite(stopButtonRelay, LOW);
delay(5000);
serStr("scheduled stop button delay finished"); serStr("scheduled stop button delay finished");
} }
void pressStopFalse() {
serStr("scheduled false-stop");
display.print("off_");
delay(5000);
indicator = 0;
delay(61000); // wait a minute
}
void pressStartManual() { void pressStartManual() {
serStr("manual start button pressed"); serStr("manual start button pressed");
display.print("on__"); display.print("on__");
@ -186,44 +199,44 @@ void checkTime() {
// 6:00 - 7:16 - 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()==16)) pressStop(); if ((hour()==7) && (minute()==16)) pressStopFalse();
// 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
if ((hour()==13) && (minute()==1)) pressStop(); if ((hour()==13) && (minute()==1)) pressStopFalse();
// 17:00 - 18:01 - working // 17:00 - 18:01 - working
if ((hour()==17) && (indicator==0)) pressStart(); if ((hour()==17) && (indicator==0)) pressStart();
// 18:01 - stop // 18:01 - stop
if ((hour()==18) && (minute()==1)) pressStop(); if ((hour()==18) && (minute()==1)) pressStopFalse();
} }
// Spring & Autumn // Spring & Autumn
if (month()==3 || month()==4 || month()==10 || month()==11) { if (month()==3 || month()==4 || month()==10 || month()==11) {
// 6:00 - 8:21 - working // 6:00 - 8:21 - working
if ((hour()==6 || hour()==7) && (indicator==0)) pressStart(); if ((hour()==6 || hour()==7 || ((hour()==8) && (minute() < 5))) && (indicator==0)) pressStart();
// 8:21 - stop // 8:21 - stop
if ((hour()==8) && (minute()==21)) pressStop(); if ((hour()==8) && (minute()==21)) pressStopFalse();
// 12:00 - 13:26 - working // 12:00 - 13:26 - working
if ((hour()==12) && (indicator==0)) pressStart(); if ((hour()==12 || ((hour()==13) && (minute() < 10))) && (indicator==0)) pressStart();
// 13:26 - stop // 13:26 - stop
if ((hour()==13) && (minute()==26)) pressStop(); if ((hour()==13) && (minute()==26)) pressStopFalse();
// 17:00 - 18:21 - working // 17:00 - 18:21 - working
if ((hour()==17) && (indicator==0)) pressStart(); if ((hour()==17 || ((hour()==18) && (minute() < 5))) && (indicator==0)) pressStart();
// 18:21 - stop // 18:21 - stop
if ((hour()==18) && (minute()==21)) pressStop(); if ((hour()==18) && (minute()==21)) pressStopFalse();
} }
// Summer // Summer
if (month()==5 || month()==6 || month()==7 || month()==8 || month()==9) { if (month()==5 || month()==6 || month()==7 || month()==8 || month()==9) {
// 6:00 - 8:28 - working // 6:00 - 9:05 - working
if ((hour()==6 || hour()==7) && (indicator==0)) pressStart(); if ((hour()==6 || hour()==7 || hour()==8) && (indicator==0)) pressStart();
// 8:23 - stop // 9:05 - stop
if ((hour()==8) && (minute()==28)) pressStop(); if ((hour()==9) && (minute()==5)) pressStopFalse();
// 12:00 - 14:11 - working // 12:00 - 14:05 - working
if ((hour()==12 || hour()==13) && (indicator==0)) pressStart(); if ((hour()==12 || hour()==13) && (indicator==0)) pressStart();
// 14:11 - stop // 14:05 - stop
if ((hour()==14) && (minute()==11)) pressStop(); if ((hour()==14) && (minute()==5)) pressStopFalse();
// 17:00 - 18:35 - working // 17:00 - 19:50 - working
if ((hour()==17) && (indicator==0)) pressStart(); if ((hour()==17 || hour()==18) && (indicator==0)) pressStart();
// 18:35 - stop // 19:50 - stop
if ((hour()==18) && (minute()==35)) pressStop(); if ((hour()==19) && (minute()==50)) pressStopFalse();
} }
} }