Всем привет. Делаю контроллер для аквариума чтобы в нужное время кормил, освещал и проч.
Из железа ардуина уно, шаговый двиг и модуль реле на 4 канала.
Для выполнения действия по времени делаю так:
if (time.Hours == 4 && time.minutes == 00 && time.seconds == 00 )//Включение лампы подсветки растений
{
digitalWrite(4, LOW);
}
if (time.Hours == 22 && time.minutes == 00 && time.seconds == 00 )//Выключение лампы подсветки растений
{
digitalWrite(4, HIGH);
}
Но вот в чем засада. Действие выполняется в заданное время, а не в заданный интервал времени. Как задать интервал времени, в котором будет срабатывать реле?
	
	
	
	
	
	
		
			
			
			
			
			
		
	
	
	
		
	
	
		
	
								Из железа ардуина уно, шаговый двиг и модуль реле на 4 канала.
Для выполнения действия по времени делаю так:
if (time.Hours == 4 && time.minutes == 00 && time.seconds == 00 )//Включение лампы подсветки растений
{
digitalWrite(4, LOW);
}
if (time.Hours == 22 && time.minutes == 00 && time.seconds == 00 )//Выключение лампы подсветки растений
{
digitalWrite(4, HIGH);
}
Но вот в чем засада. Действие выполняется в заданное время, а не в заданный интервал времени. Как задать интервал времени, в котором будет срабатывать реле?
			
				Мой скетч:
			
		
		
		#include <Stepper.h>
#define STEPS 200
#include <iarduino_RTC.h>
#define pin_SW_SDA 4
#define pin_SW_SCL 5
iarduino_RTC time(RTC_DS3231);
Stepper motor(STEPS, 8, 9, 10, 11);
void setup()
{
  motor.setSpeed(60);
  pinMode(3, OUTPUT);
  pinMode(4, OUTPUT);
  pinMode(5, OUTPUT);
  pinMode(6, OUTPUT);
  delay(300);
  Serial.begin(9600);
  time.begin();
  //time.settime(0,05,19,14,04,20,2);  //   сек,  мин,  час, число, месяц, год, вторник
  digitalWrite(3, HIGH);  //Фильтр нижняя розетка
  digitalWrite(4, HIGH);  //Лампа верхняя розетка
  digitalWrite(5, HIGH);  //красные светодиоды
  digitalWrite(6, HIGH); // белые светодиоды
}
void stopen()
{
  digitalWrite(8, LOW);
  digitalWrite(9, LOW);
  digitalWrite(10, LOW);
  digitalWrite(11, LOW);
}
void loop()
{
  if (millis() % 1000 == 0) { // если прошла 1 секунда
    Serial.println(time.gettime("d-m-Y, H:i:s, D")); // выводим время
    if (time.Hours == 7 && time.minutes == 20 && time.seconds == 0 )// ВРЕМЯ 1 КОРМЛЕНИЯ
    {
      motor.step(256);
      stopen();
    }
    if (time.Hours == 20 && time.minutes == 00 && time.seconds == 0 )// ВРЕМЯ 2 КОРМЛЕНИЯ
    {
      motor.step(256);
      stopen();
    }
       if (time.Hours == 8 && time.minutes == 00 && time.seconds == 00 )//включение фильтра после кормления
    {
      digitalWrite(3, LOW);
    }
    if (time.Hours == 19 && time.minutes == 59 && time.seconds == 30 )//выключение фильтра перед 2 кормлением
    {
      digitalWrite(3, HIGH);
    }
    if (time.Hours == 20 && time.minutes == 15 && time.seconds == 00 )//включение фильтра после 2 кормления
    {
      digitalWrite(3, LOW);
    }
     if (time.Hours == 21 && time.minutes == 30 && time.seconds == 0 )//выключение фильтра на ночь
    {
      digitalWrite(3, HIGH);
    }
    if (time.Hours == 4 && time.minutes == 00 && time.seconds == 00 )//Включение лампы подсветки растений
    {
     digitalWrite(4, LOW);
    }
   if (time.Hours == 22 && time.minutes == 00 && time.seconds == 00 )//Выключение лампы подсветки растений
    {
    digitalWrite(4, HIGH);
    }
        // настройки включения лент светодиодов
    if (time.Hours == 6 && time.minutes == 30 && time.seconds == 00 )//Включение рассвета
    {
     digitalWrite(5, LOW);
    }
    if (time.Hours == 18 && time.minutes == 00 && time.seconds == 00 )//Включение подсветки белой
    {
    digitalWrite(6, LOW);
    }
     if (time.Hours == 9 && time.minutes == 30 && time.seconds == 00 )//ВЫключение рассвета
    {
    digitalWrite(5, HIGH);
    }
   if (time.Hours == 19 && time.minutes == 55 && time.seconds == 00 )//Выключение подсветки белой перед 2 кормлением
    {
   digitalWrite(6, HIGH);
    }
     if (time.Hours == 19 && time.minutes == 00 && time.seconds == 00 )//Включение заката вечером
    {
     digitalWrite(5, LOW);
    }
   // if (time.Hours == 20 && time.minutes == 00 && time.seconds == 00 )//Включение подсветки вечером
    {
    // digitalWrite(6, LOW);
    }
     if (time.Hours == 21 && time.minutes == 30 && time.seconds == 30 )//Выключение заката вечером
    {
      digitalWrite(5, HIGH);
    }
    //if (time.Hours == 20 && time.minutes == 30 && time.seconds == 00 )//Выключение подсветки вечером
    {
    //digitalWrite(6, HIGH);
    }
  }
}
// подключение шагового двигателя
// ардуино----------драйвер
// пин 8--------------пин in 1
// пин 9--------------пин in 3
// пин 10-------------пин in 2
// пин 11-------------пин in 4 
				
		 
 
		 
 
		