Реле времени для аквариума.
- Войдите на сайт для отправки комментариев
Чт, 29/11/2018 - 00:29
Привет ардуинщикам! Недавно вступил в ваши ряды, собрал схему на основе Arduino nano и DS1307, начал писать скетч и столкнулся с проблемой. Не могу сделать так, чтобы реле выключалось через пол секунды. Искал информацию, но так и не нашел, вот и решил обратиться к специалистам. Вообщем задача такая:
Реле времени 1 (включение и выключение реле освещения в аквариуме по времени) - с этим я справился.))
Реле времени 2 (в заданное время включить реле кормушки на пол секунды и выключить) - это не осилил.
Подскажите как реализовать эту задачу?
Вот скетч, который я слепил:
#include <Wire.h>
#include "RTClib.h"
RTC_DS1307 rtc;
int Y = 2018;
int M = 11;
int D = 25;
int h = 11;
int m = 55;
int s = 30;
char daysOfTheWeek[7][12] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};
int relay = 8; // Реле включения света
int relay1 = 7; // Реле кормушки
void setup(){
Serial.begin(9600);
rtc.begin();
//rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
//rtc.adjust(DateTime(Y, M, D, h, m, s));
Serial.println("Ready!");
delay(10);
pinMode(relay, OUTPUT);
pinMode(relay1, OUTPUT);
digitalWrite(relay, HIGH);
digitalWrite(relay1, HIGH);
}
void loop(){
DateTime now = rtc.now();
Serial.print(now.year(), DEC);
Serial.print('/');
Serial.print(now.month(), DEC);
Serial.print('/');
Serial.print(now.day(), DEC);
Serial.print(" (");
Serial.print(daysOfTheWeek[now.dayOfTheWeek()]);
Serial.print(") ");
Serial.print(now.hour(), DEC);
Serial.print(':');
Serial.print(now.minute(), DEC);
Serial.print(':');
Serial.print(now.second(), DEC);
Serial.println();
delay(1000);
if (now.hour() == 11 && now.minute() == 40 && now.second() == 0)
{
digitalWrite (7, LOW);
};
if (now.hour() == 23 && now.minute() == 00 && now.second() == 0)
{
digitalWrite(7, HIGH);
};
if (now.hour() == 12 && now.minute() == 20 && now.second() == 0)
{
digitalWrite (8, LOW);
};
if (now.hour() == 12 && now.minute() == 20 && now.second() == 1)
{
digitalWrite (8, HIGH);
};
}
Ну включить и выключить можете?
Ну так и пишите
включить
delay(500);
выключить
Вот и будет Вам полсекунды