Нужен таймер для включения лам выращивать рассаду. Стоять должны часы реального времени и фоторезистор приоритет включения должен стоять по фоторезистору не магу дописать часть программы отвечающая за за таймер. Перед циклом мне нужно считать данные с часов реального времени пересчитать это значение в секунды и сравнить в else if чтобы оно укладывалось в нужный промежуток. может кто подсказать как это сделать ? Код (C++): //Скетч для управления реле с помощью ардуино //Используем реле SONGLE SRD-05VDC //Реле ОТКРЫВАЕТСЯ при подаче низкого уровня сигнала (LOW) на управляющий пин. // Реле ЗАКРЫВАЕТСЯ при подаче высокого уровня сигнала (HIGH) на управляющий пин. //PIN_RELAY содержит номер пина, к которому подключено реле #include <iarduino_RTC.h> // побключаем универсальную библиотеку часов реального времени iarduino_RTC time(RTC_DS1307); // выбераем часы реального времени для DS1307-(RTC_DS1307) для DS1302-(RTC_DS1302,10,13,12) для DS3231-(RTC_DS3231) int PIN_RELAY = 13; //переменная с номером пина реле int ldr = 0; //и фоторезистора void setup() { // блок установки часов ( удаляется после первой прошивки ) delay(300); Serial.begin(9600); time.begin(); time.settime(0,51,21,27,10,15,2); // 0 сек, 51 мин, 21 час, 27, октября, 2015 года, вторник pinMode(PIN_RELAY, OUTPUT); // Объявляем пин реле как выход } void loop() { if (analogRead(ldr) < 800); //если показатель освещенности меньше 800 else if ((8*60+20)*60> текущие время < (21*60+20)*60+10) digitalWrite(PIN_RELAY, LOW);// выполняем условие между 8:20:00 и 21:20:10 else digitalWrite(PIN_RELAY, LOW); //иначе выключаем delay(1000); }
Я ничего не понял. Ни запятых, ни точек. А если нужен таймер, то у алёши их в ассортименте на любой кошелёк.
Вот так работать будет ? Код (C++): //Скетч для управления реле с помощью ардуино //Используем реле SONGLE SRD-05VDC //Реле ОТКРЫВАЕТСЯ при подаче низкого уровня сигнала (LOW) на управляющий пин. // Реле ЗАКРЫВАЕТСЯ при подаче высокого уровня сигнала (HIGH) на управляющий пин. //PIN_RELAY содержит номер пина, к которому подключено реле #include <iarduino_RTC.h> // побключаем универсальную библиотеку часов реального времени iarduino_RTC watch(RTC_DS1307); // выбераем часы реального времени для DS1307-(RTC_DS1307) для DS1302-(RTC_DS1302,10,13,12) для DS3231-(RTC_DS3231) int PIN_RELAY = 13; //переменная с номером пина реле int ldr = 0; //и фоторезистора uint8_t D, M, Y, h, m, s, W; // Объявляем переменные для получения даты и времени: D-день, M-месяц, Y-год, h-часы, m-минуты, s-секунды, W-день недели. void setup() { // блок установки часов ( удаляется после первой прошивки ) Serial.begin(9600); // Инициируем передачу данных в монитор последовательного порта watch.begin(); // Инициируем RTC модуль watch.settime(0,51,21,27,10,15,2); // Устанавливаем время: 0 сек, 51 мин, 21 час, 27, октября, 2015 года, вторник // удоляем блок установки часов прошиваем еще раз pinMode(PIN_RELAY, OUTPUT); // Объявляем пин реле как выход watch.begin(); //инициалезация часов } void loop() { h = watch.Hours; // Получаем текущие часы 0-23. m = watch.minutes; // Получаем текущие минуты 0-59. s = watch.seconds; // Получаем текущие секунды 0-59. if (analogRead(ldr) < 800); //если показатель освещенности меньше 800 else if ((8*60+20)*60>(h*60+m)*60+s < (21*60+20)*60+10) digitalWrite(PIN_RELAY, HIGH);// выполняем условие между 8:20:00 и 21:20:10 else digitalWrite(PIN_RELAY, LOW); //иначе выключаем delay(1000); }
Что этим подразумевалось? Тут каша какая-то - длинная строка бессмысленных букв и цифр. Вас уже просили - отформатируйте код, напишите внятные комментарии.
Все просто устанавливаешь время прошиваешь его в модуль часов. Удаляешь установку времени прошиваешь основной код Что вам не нравится вычисляешь сколько секунд в заданном времени затем вычисляешь текущие и сравниваешь совпадает включаешь реле не совпадает реле не включаешь Что вам не нравится?