Всем привет. Делаю контроллер для аквариума чтобы в нужное время кормил, освещал и проч.
Из железа ардуина уно, шаговый двиг и модуль реле на 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