//const int relayPin = 2; // Порт Реле
//const int BotPin = 3; // Порт Кнопки-Датчик
//const int trun = 6; // Кол-во сек. до срабатывания Кнопки-Датчик (1 мин. = 60 сек.)
//const int tstop = 10; // Переменная для подсчета простоя реле в сек-х. (1 час = 3600 сек.)
//int i = 1; // Переменная для подсчета работы реле.
//int s = tstop; // Переменная для подсчета простоя реле в сек-х.
// -----------------------------------------
const int relayPin = 2; // Порт Реле
const int BotPin = 3; // Порт Кнопки-Датчик
const int timrun = 10; // Кол-во сек. до срабатывания Кнопки-Датчик (1 мин. = 60 сек.)
const int timstop = 20; // Кол-во сек. простоя реле (1 час = 3600 сек.)
int i = 1; // Переменная для подсчета продолжительности работы реле.
int s = 0; // Переменная для подсчета продолжительности простоя реле.
int stop = 0; // Кнопки-Датчик 0 - не замкнута, 1 - Замкнута
String str = ""; // Переменная для формирования сообщений
// -----------------------------------------
void setup() {
Serial.begin(9600);
pinMode(relayPin, OUTPUT); // Порт Реле
pinMode(BotPin, INPUT_PULLUP); // Порт Кнопки-Датчик
Serial.println("---------- Начало -------------------");
Serial.print("До срабатывания датчика осталось :");
Serial.print(timrun);
Serial.println(" сек.");
Serial.println("----------------------------------------");
}
void loop() {
if (digitalRead(BotPin) == 1 ) // 1 - Кнопка-Датчик не нажата
{
for (int i = timrun; i > 0 && digitalRead(BotPin); i--) // Время работы Реле
{
Serial.print(digitalRead(BotPin));
Serial.print(" Кнопка (Датчик) Разорвана, осталось: ");
Serial.println(i);
digitalWrite(relayPin, HIGH); // Реле Включить
delay(1000);
}
Serial.println("----------------------------------------");
str = "Реле отработало свое время, ожидаем: ";
Serial.print(str + timstop);
Serial.println(" сек.");
for (s = timstop; s > 0; s--)
{
digitalWrite(relayPin, LOW); // Реле Выключить
str = " Осталось: ";
Serial.println(str + s);
// goto end;
}
}
else
{
Serial.print(digitalRead(BotPin));
Serial.println(" Кнопка (Датчик) Замкнута, ");
//Serial.println(" Сброс таймера в 0 ");
digitalWrite(relayPin, LOW); // Реле Выключить
stop = 1;
//break;
}
//end:
}