 |
|
20.09.2014, 00:51
|
#1
|
Придивляюся
Реєстрація: 08.01.2008
Звідки Ви: Pinsk, RB
Дописи: 43
сказав Дякую: 5
сказали Дякую 16 раз(и) в 12 повідомленні
|
Re: Простой акваконтроллер ARDUINO ===www.aquaforum.ua===
Кстати о допиливании. Я похоже влип.
Думал только слегка ковырнуться в коде контроллера (вывод больше инфы на главный экран, замена многих элементов интерфейса на псевдографику, упрощение граф. библиотеки, замена библиотеки часов для работы с аппаратным I2C) Визуально код изменился не сильно. Почти прямая замена функций с легкой коррекцией Что-то вроде замен
myGLCD.drawLine(0, 8, 83, 8); на
myGLCD.drawHLine(0, 8, 83);
Но в результате пришел к необходимости коренных изменений.
А именно:
В оригинале контроллер каждую минуту сверяет текущее время со списком что именно в это время надо сделать «здесь и сейчас». Таким образом, если он проспал момент (свет пропал, я розетку переткнул...), то функция выполнена не будет. Или если вдруг проц уйдет в перезагруз – выполнится setup(); и все выходы примут дефолтные значения до ближайшего для данного выхода времени срабатывания. А это могут быть почти сутки. Легко проверить нажав ресет.
Теряется весь смысл энергонезависимых RTC часов.
Так что буду менять идеологию таймеров. Не срабатывание On или Off в данный момент, а диапазон времени включения т.е. врубить нагрузку с 8ч30м до 12ч45м а в коде (где ALARM) проверять не наступление нужного момента включения/выключеня, а попадание в диапазон.
Результатом поделюсь.
P.S. Вот со временем туго. Так что звиняйте конечный результат выложу явно не скоро.
|
|
|
cказали "Дякую" AlexNT за цей допис:
|
|
20.09.2014, 10:33
|
#2
|
Придивляюся
Реєстрація: 18.09.2014
Звідки Ви: Украина, Чернигов
Дописи: 4
сказав Дякую: 2
сказали Дякую 1 раз(и) в 1 повідомленні
|
Re: Простой акваконтроллер ARDUINO ===www.aquaforum.ua===
Цитата:
Допис від AlexNT
А именно:
В оригинале контроллер каждую минуту сверяет текущее время со списком что именно в это время надо сделать «здесь и сейчас». Таким образом, если он проспал момент (свет пропал, я розетку переткнул...), то функция выполнена не будет. Или если вдруг проц уйдет в перезагруз – выполнится setup(); и все выходы примут дефолтные значения до ближайшего для данного выхода времени срабатывания. А это могут быть почти сутки. Легко проверить нажав ресет.
Теряется весь смысл энергонезависимых RTC часов.
Так что буду менять идеологию таймеров. Не срабатывание On или Off в данный момент, а диапазон времени включения т.е. врубить нагрузку с 8ч30м до 12ч45м а в коде (где ALARM) проверять не наступление нужного момента включения/выключеня, а попадание в диапазон.
Результатом поделюсь.
P.S. Вот со временем туго. Так что звиняйте конечный результат выложу явно не скоро.
|
Верное направление, ИМХО. Работа не с событиями а с состояниями. Т.е. провернка не на наступление события, а проверка "в каком состоянии должно быть сейчас то или иное внешнее устройство".
Возможно это несколько усложнит код, но контроллер выйдет на другой уровень контроля  - повысится его защищенность от неблагоприяных событий.
|
|
|
20.09.2014, 12:40
|
#3
|
Живу я тут
Реєстрація: 11.07.2013
Звідки Ви: Киев (Борщаговка)
Дописи: 665
сказав Дякую: 106
сказали Дякую 535 раз(и) в 244 повідомленні
|
Re: Простой акваконтроллер ARDUINO ===www.aquaforum.ua===
Цитата:
Допис від AlexNT
В оригинале контроллер каждую минуту сверяет текущее время со списком что именно в это время надо сделать «здесь и сейчас». Таким образом, если он проспал момент (свет пропал, я розетку переткнул...), то функция выполнена не будет. Или если вдруг проц уйдет в перезагруз – выполнится setup(); и все выходы примут дефолтные значения до ближайшего для данного выхода времени срабатывания. А это могут быть почти сутки. Легко проверить нажав ресет.
Теряется весь смысл энергонезависимых RTC часов.
|
Даю идею, все намного проще
в секцие инициализации просто в цикле прокрутите код проверки событий
начиная с 00:00.00 мин до текущего времени
это займет около 1 сек но зато решит выше описанную проблему.
Если не понятна реализация - могу сделать, если это кому то нужно?
(оставляйте заявки)
Востаннє редагував AlexVOK: 20.09.2014 о 12:48..
|
|
|
20.09.2014, 19:59
|
#4
|
Придивляюся
Реєстрація: 08.01.2008
Звідки Ви: Pinsk, RB
Дописи: 43
сказав Дякую: 5
сказали Дякую 16 раз(и) в 12 повідомленні
|
Re: Простой акваконтроллер ARDUINO ===www.aquaforum.ua===
Цитата:
Допис від AlexVOK
Даю идею, все намного проще
в секцие инициализации просто в цикле прокрутите код проверки событий
начиная с 00:00.00 мин до текущего времени
это займет около 1 сек но зато решит выше описанную проблему.
Если не понятна реализация - могу сделать, если это кому то нужно?
(оставляйте заявки)
|
Это первое, что пришло в голову. Только начинать надо не с 00:00 а с понедельника 00:00. У Вас же там есть срабатывание по дням недели. А вдруг я там что в понедельник включил и во вторник выключил. А в сетапе такое обязательно надо. Тем более ресурсов много не потребует. Фактически взять часть кода что у вас идет под "шапкой " ALARM. Перенести его в функцию. А затем вызывать ее в Loop() c параметрами тек часов минут и в setap() как Вы и говорите прокрутить в цикле.
Ой, тут подумалось может даже с прошлого понедельника надо, чтобы учесть все извращения... В аквасе, конечно, такие программы оченб маловероятны, но всеже...
|
|
|
cказали "Дякую" AlexNT за цей допис:
|
|
22.09.2014, 20:36
|
#5
|
Живу я тут
Реєстрація: 11.07.2013
Звідки Ви: Киев (Борщаговка)
Дописи: 665
сказав Дякую: 106
сказали Дякую 535 раз(и) в 244 повідомленні
|
Re: Простой акваконтроллер ARDUINO ===www.aquaforum.ua===
AlexNT, по поводу событий абсолютно согласен
такой подход покроет даже самые извращенные настройки.
Хотя меня пока и так устраивает (я так и не пользуюсь днями недели  )
|
|
|
16.10.2014, 20:27
|
#6
|
Живу я тут
Реєстрація: 10.02.2014
Звідки Ви: Кострома
Дописи: 105
сказав Дякую: 16
сказали Дякую 5 раз(и) в 5 повідомленні
|
Re: Простой акваконтроллер ARDUINO ===www.aquaforum.ua===
Ребят подскажите плиз! решил собрать ваш контроллер но на ардуино НАНО все убралось контактов хватает но что то с прошивкой чаы показывает температуру тоже , а вот когда захожу в меню шрифт вообще пропадает ! подскажите в чем дело?? на ардуино мега все работает !
Вот фото

|
|
|
16.10.2014, 20:57
|
#7
|
Живу я тут
Реєстрація: 11.07.2013
Звідки Ви: Киев (Борщаговка)
Дописи: 665
сказав Дякую: 106
сказали Дякую 535 раз(и) в 244 повідомленні
|
Re: Простой акваконтроллер ARDUINO ===www.aquaforum.ua===
Mehannik, напиши на каком контроллере твой нано?
читайте пост 156, в нем есть ответ на ваш вопрос - нехватка память.
|
|
|
16.10.2014, 21:06
|
#8
|
Живу я тут
Реєстрація: 10.02.2014
Звідки Ви: Кострома
Дописи: 105
сказав Дякую: 16
сказали Дякую 5 раз(и) в 5 повідомленні
|
Re: Простой акваконтроллер ARDUINO ===www.aquaforum.ua===
Цитата:
Допис від AlexVOK
Mehannik, напиши на каком контроллере твой нано?
читайте пост 156, в нем есть ответ на ваш вопрос - нехватка память.
|
Камень 328
|
|
|
16.10.2014, 21:07
|
#9
|
Живу я тут
Реєстрація: 11.07.2013
Звідки Ви: Киев (Борщаговка)
Дописи: 665
сказав Дякую: 106
сказали Дякую 535 раз(и) в 244 повідомленні
|
Re: Простой акваконтроллер ARDUINO ===www.aquaforum.ua===
Mehannik,
тогда 100% смотрим пост 156
и все будет ОК
можно конечно вырезать ненужные вам функции
но это нужно вникать, чтоб не навредить
|
|
|
16.10.2014, 21:13
|
#10
|
Живу я тут
Реєстрація: 10.02.2014
Звідки Ви: Кострома
Дописи: 105
сказав Дякую: 16
сказали Дякую 5 раз(и) в 5 повідомленні
|
Re: Простой акваконтроллер ARDUINO ===www.aquaforum.ua===
Цитата:
Допис від AlexVOK
Mehannik,
тогда 100% смотрим пост 156
и все будет ОК
можно конечно вырезать ненужные вам функции
но это нужно вникать, чтоб не навредить
|
Вот прошил программой 1 5 7 и выдало такую ошибку ! странно! на страй версии шьет а вот на новой нет
Arduino: 1.5.7 (Windows 7), Board: "Arduino Nano, ATmega328"
C:\Program Files (x86)\Arduino\libraries\LCD5110\DefaultFonts.c:12: 14: error: variable 'SmallFont' must be const in order to be put into read-only section by means of '__attribute__((progmem))'
fontdatatype SmallFont[] PROGMEM =
^
C:\Program Files (x86)\Arduino\libraries\LCD5110\DefaultFonts.c:117 :14: error: variable 'BigNumbers' must be const in order to be put into read-only section by means of '__attribute__((progmem))'
fontdatatype BigNumbers[] PROGMEM =
^
Ошибка компиляции.
This report would have more information with
"Show verbose output during compilation"
enabled in File > Preferences.
|
|
|
16.10.2014, 21:11
|
#11
|
Живу я тут
Реєстрація: 10.02.2014
Звідки Ви: Кострома
Дописи: 105
сказав Дякую: 16
сказали Дякую 5 раз(и) в 5 повідомленні
|
Re: Простой акваконтроллер ARDUINO ===www.aquaforum.ua===
а вы можите вырезать?? мне УДО вообще не нужно!!! помогите ибо из меня программист не какой))
|
|
|
16.10.2014, 21:50
|
#12
|
Живу я тут
Реєстрація: 10.02.2014
Звідки Ви: Кострома
Дописи: 105
сказав Дякую: 16
сказали Дякую 5 раз(и) в 5 повідомленні
|
Re: Простой акваконтроллер ARDUINO ===www.aquaforum.ua===
урра все получилося
|
|
|
18.10.2014, 13:24
|
#13
|
Придивляюся
Реєстрація: 12.11.2013
Звідки Ви: Болгария
Дописи: 34
сказав Дякую: 107
сказали Дякую 143 раз(и) в 20 повідомленні
|
Re: Простой акваконтроллер ARDUINO ===www.aquaforum.ua===
Привет
Очень хороший контроллер.
Я изменил код для моих потребностей.
Я сделал изменения в таймеров.Удалил Udo.Добавлено кириллицы. Изменил начальный экран и освободил место для других функций
Моя прошивка.Это может быть полезно.Нужна еще немного поправиться.
Востаннє редагував Петко Шкодров: 18.10.2014 о 14:22..
|
|
|
Ці 6 користувач(ів) сказали Дякую Петко Шкодров за це повідомлення:
|
|
27.10.2014, 21:32
|
#14
|
Живу я тут
Реєстрація: 06.04.2012
Звідки Ви: Санкт-Петербург
Дописи: 176
сказав Дякую: 22
сказали Дякую 30 раз(и) в 26 повідомленні
|
Re: Простой акваконтроллер ARDUINO ===www.aquaforum.ua===
Хорошая модификация скетча, прикольнули комментарии на русском българском и английском. На мой взгляд сильно не хватает второго термодатчика для контроля температуры радиатора светодиодов и сигнализации выхода температуры за пределы нормы.
|
|
|
28.10.2014, 13:02
|
#15
|
Живу я тут
Реєстрація: 06.04.2012
Звідки Ви: Санкт-Петербург
Дописи: 176
сказав Дякую: 22
сказали Дякую 30 раз(и) в 26 повідомленні
|
Re: Простой акваконтроллер ARDUINO ===www.aquaforum.ua===
Исправил рисунок соединений - вентилятор и датчик температуры перепутаны местами. Моя плата ардуино внешне не отличима, но порты А5 и А6 переставлены местами и их маркировка с обратной стороны, таким образом и клавиатура подключается к соседнему контакту. Не понял алгоритма работы подсветки - ставлю led light на 100 и подсветка экрана в режиме меню угасает, но стоит выйти из меню или дождаться скринсавера и подсветка становится яркой. Мне кажется должно быть наоборот.
Востаннє редагував Вячеслав Сергеев: 28.10.2014 о 13:25..
|
|
|
 |
|
Тут присутні: 2 (учасників - 0 , гостей - 2)
|
|
Параметри теми |
|
Параметри перегляду |
Комбінований вигляд
|
Ваші права у розділі
|
Ви не можете створювати теми
Ви не можете писати дописи
Ви не можете долучати файли
Ви не можете редагувати дописи
HTML код Вимк.
|
|
|
Часовий пояс GMT +3. Поточний час: 15:20.
|