изменение времени таймера на DS1307
- Войдите на сайт для отправки комментариев
Пт, 19/04/2013 - 11:33
Добрый день!
опять нуб просит вашей помощи :(
Дело в том что требуеться изменять значение FullMinutesTimerOn и FullMinutesTimeroff c помощью Serial monitor , домустим отправив команду ton09:45 изменится значение FullMinutesTimerOn на 09:45 (влючения TimePIN) ну и соответственно и изменять время выключения, уважаемые комрады возможно это сделать ?
#include <WProgram.h> #include <Wire.h> #include <DS1307.h> #define timePIN 10 void setup() { Serial.begin(9600); pinMode(timePIN, OUTPUT); } void loop() { if(Serial.available()) SetTime(); int Hour = RTC.get(DS1307_HR, true); int Minute = RTC.get(DS1307_MIN, false); int Second = RTC.get(DS1307_SEC, false); int FullMinutes = Hour * 60 + Minute; int FullMinutesTimerOn = 8 * 60 + 10; // включение света в 8:10 int FullMinutesTimerOff = 19 * 60 + 30; // выключение в 19:30 if(FullMinutes >= FullMinutesTimerOn && FullMinutes <= FullMinutesTimerOff) digitalWrite(timePIN, LOW); else digitalWrite(timePIN, HIGH); void SetTime() { delay(10); if (Serial.read() == 't') { int h = (Serial.read() - '0') * 10 + (Serial.read() - '0'); Serial.read(); int m = (Serial.read() - '0') * 10 + (Serial.read() - '0'); RTC.stop(); RTC.set(DS1307_SEC,0); RTC.set(DS1307_MIN,m); RTC.set(DS1307_HR,h); RTC.start(); } while(Serial.available()) { delay(2); Serial.read(); } } String addZero(int val) // Добавим 0 перед значением часа/минуты/секунды, если оно меньше 10 { if (val<10) return "0" + String(val); else return String(val); }
Странно, вроде бы у Вас уже почти все сделано, что нужно. Осталось в обработчике SetTime проверить, что пришло по сериалу и в зависимости от этого выставлять либо время на часах, либо
нужные Вам переменные.
В чем конкретно у вас проблема?
Осталось в обработчике SetTime проверить, что пришло по сериалу и в зависимости от этого выставлять либо время на часах, либо
нужные Вам переменные.
вот с этим у меня проблема =( не как не могу докумекать что писать и куда
Команды n10:45 и f10:50, но вы должны понимать, что после перезагрузки эти значения обнулятся.
И скачайте более свежую версию ArduinoIDE 1.0.Х
maksim хотелось бы чтоб не обнулялось значения при перезагрузки =) но и на этом огромное спасибо
Сохраняйте в EEPROM.
Максим для меня это немного сложновато пока =(
Максим попробовал Вш код и постигла не удача ((( пин 10 постояно влючен
Максим не первый раз Вы меня выручаете ! последний код работает
Максим возможно ли добавать второй таймер на другой пин? ( независимых друг от друга 2 таймера)
Конечно возможно.
а подскажите как ? (на примере ) =)