Реле времени для аквариума.
- Войдите на сайт для отправки комментариев
Чт, 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);
выключить
Вот и будет Вам полсекунды