RTC, serial монитор и я
- Войдите на сайт для отправки комментариев
Пт, 12/02/2016 - 17:47
Вот у меня такой вопрос ..
Как можно менять время из сериал монитора? Выполнить команду time.settime(0,00,15,1,1,15,1) - это просто. А можно ли из сериал менять значения в скобках функции time.settime(...). Может есть какие решения? А может быть можно представить строку time.settime(0,00,15,1,1,15,1) в виде массива? В общем, прошу вашей помощи..
#include <RTC.h> RTC time; void setup() { delay(300); Serial.begin(9600); time.begin(RTC_DS3231); Serial.println(time.gettime(" H:i:s d-m-Y, D")); } void loop() { int rx_byte = 0; // переменная для хранения байта из serial if (Serial.available()) { // читаем полученные данные rx_byte = Serial.read(); } if ((rx_byte == 'N') || (rx_byte == 'n')) { Serial.println(time.gettime(" H:i:s d-m-Y, D")); // выводим текущее время } if ((rx_byte == 'S') || (rx_byte == 's')) { time.settime(0,00,15,1,1,15,1); // запишем новые настройки времени (сек, мин, час, число, месяц, год, день недели) // time.settime(35,10,20);// 35 сек, 10 мин, 20 час, дату оставить без изменений // time.settime(-1,-1,-1,31,12,15); // 31, декабря, 2015 года, время и день недели оставить без изменений } }
Может что-то типа такого можно сделать. Типа меню что ли ?
Если по простому, то нужно передать через сериал строку с датой-временем (например, отправить такую строку с компа "M2016-02-12 18:15:04"), в Ардуино распарсить эту строку в переменные и вызвать setTime передав параметры через переменные.
А как можно представить команду time.settime(0,00,15,1,1,15,1) в виде массива, чтобы потом поменять в массиве поэлементно?
Если по простому, то нужно передать через сериал строку с датой-временем (например, отправить такую строку с компа "M2016-02-12 18:15:04"), в Ардуино распарсить эту строку в переменные и вызвать setTime передав параметры через переменные.
Троллите :)))
Если по простому, то нужно передать через сериал строку с датой-временем (например, отправить такую строку с компа "M2016-02-12 18:15:04"), в Ардуино распарсить эту строку в переменные и вызвать setTime передав параметры через переменные.
Троллите :)))
Почему? Разве это не проще, чем делать через меню? Я совершенно серьезно. Впрочем, наверное Вы просто шутите, а я не понял :)
С переборами типа меню вообще, думаю, замороченно выйдет)
Почему? Разве это не проще, чем делать через меню? Я совершенно серьезно. Впрочем, наверное Вы просто шутите, а я не понял :)
Да, нет, ну вот смотрите, ТС пишет: "time.settime(0,00,15,1,1,15,1) - это просто. А можно ли из сериал менять значения в скобках функции time.settime(...)". Т.е., уровень знанний и понимания в общем-то ясен. Так вот мне показалось, что предлагать человеку с таким уровнем знаний распарсить строку - троллинг. Ему бы взять книжку и с нуля читать, рабирая все примеры, но они ж (новички) обижаются на такие советы. Я уж и давать их почти перестал.
Как по мне, так сообщение по поводу распарсить строку куда дельнее, чем Ваши) Это по крайней мере наталкивает на мысль в этом разобраться. А "иди книжку с нуля читай и разбирайся" - это действительно дельный совет. Еще не понятно, кто тролит)
В общем получилось реализовать задуманное. Правда, не знаю насколько правильно это все, но, кажется, работает. В процессе перешел на другую библиотеку для RTC, но это сути не меняет.
Вдруг кому нибудь пригодится