Простой акваконтроллер ARDUINO - Страница 14 - Аквафорум - форум акваріумістів та тераріумістів
На сайт Всеукраинской Ассоциации аквариумистов
На главную страницу форума



 


Вернуться   Аквафорум - форум акваріумістів та тераріумістів > Аквариум и оборудование > "Самоделкин" > Аквариумная автоматика
Аукцион Регистрация Дневники Справка Пользователи Календарь Сообщения за день

Важная информация

Ответ
 
Опции темы Опции просмотра
Старый 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. Вот со временем туго. Так что звиняйте конечный результат выложу явно не скоро.

AlexNT поза форумом   Ответить с цитированием
Пользователь, который поблагодарил AlexNT за данный пост:
steals81 (20.09.2014)
Старый 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. Вот со временем туго. Так что звиняйте конечный результат выложу явно не скоро.
Верное направление, ИМХО. Работа не с событиями а с состояниями. Т.е. провернка не на наступление события, а проверка "в каком состоянии должно быть сейчас то или иное внешнее устройство".
Возможно это несколько усложнит код, но контроллер выйдет на другой уровень контроля - повысится его защищенность от неблагоприяных событий.

Gorbounov поза форумом   Ответить с цитированием
Старый 20.09.2014, 12:40   #3
Живу я тут
  
 
Аватар для AlexVOK
 
Регистрация: 11.07.2013
Адрес: Киев (Борщаговка)
Сообщений: 665
Поблагодарил(а) : 106
Поблагодарили 533 раз(а) в 244 сообщениях
Re: Простой акваконтроллер ARDUINO ===www.aquaforum.ua===

Цитата:
Сообщение от AlexNT Посмотреть сообщение
В оригинале контроллер каждую минуту сверяет текущее время со списком что именно в это время надо сделать «здесь и сейчас». Таким образом, если он проспал момент (свет пропал, я розетку переткнул...), то функция выполнена не будет. Или если вдруг проц уйдет в перезагруз – выполнится setup(); и все выходы примут дефолтные значения до ближайшего для данного выхода времени срабатывания. А это могут быть почти сутки. Легко проверить нажав ресет.
Теряется весь смысл энергонезависимых RTC часов.
Даю идею, все намного проще
в секцие инициализации просто в цикле прокрутите код проверки событий
начиная с 00:00.00 мин до текущего времени
это займет около 1 сек но зато решит выше описанную проблему.

Если не понятна реализация - могу сделать, если это кому то нужно?
(оставляйте заявки)


Последний раз редактировалось AlexVOK; 20.09.2014 в 12:48..
AlexVOK поза форумом   Ответить с цитированием
Старый 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() как Вы и говорите прокрутить в цикле.
Ой, тут подумалось может даже с прошлого понедельника надо, чтобы учесть все извращения... В аквасе, конечно, такие программы оченб маловероятны, но всеже...

AlexNT поза форумом   Ответить с цитированием
Пользователь, который поблагодарил AlexNT за данный пост:
steals81 (20.09.2014)
Старый 22.09.2014, 20:36   #5
Живу я тут
  
 
Аватар для AlexVOK
 
Регистрация: 11.07.2013
Адрес: Киев (Борщаговка)
Сообщений: 665
Поблагодарил(а) : 106
Поблагодарили 533 раз(а) в 244 сообщениях
Re: Простой акваконтроллер ARDUINO ===www.aquaforum.ua===

AlexNT, по поводу событий абсолютно согласен
такой подход покроет даже самые извращенные настройки.
Хотя меня пока и так устраивает (я так и не пользуюсь днями недели )

AlexVOK поза форумом   Ответить с цитированием
Реклама помогает развиваться
Старый 16.10.2014, 20:27   #6
Живу я тут
  
 
Аватар для Mehannik
 
Регистрация: 10.02.2014
Адрес: Кострома
Сообщений: 105
Поблагодарил(а) : 16
Поблагодарили 5 раз(а) в 5 сообщениях
Отправить сообщение для Mehannik с помощью ICQ
Re: Простой акваконтроллер ARDUINO ===www.aquaforum.ua===

Ребят подскажите плиз! решил собрать ваш контроллер но на ардуино НАНО все убралось контактов хватает но что то с прошивкой чаы показывает температуру тоже , а вот когда захожу в меню шрифт вообще пропадает ! подскажите в чем дело?? на ардуино мега все работает !
Вот фото


Mehannik поза форумом   Ответить с цитированием
Старый 16.10.2014, 20:57   #7
Живу я тут
  
 
Аватар для AlexVOK
 
Регистрация: 11.07.2013
Адрес: Киев (Борщаговка)
Сообщений: 665
Поблагодарил(а) : 106
Поблагодарили 533 раз(а) в 244 сообщениях
Re: Простой акваконтроллер ARDUINO ===www.aquaforum.ua===

Mehannik, напиши на каком контроллере твой нано?

читайте пост 156, в нем есть ответ на ваш вопрос - нехватка память.

AlexVOK поза форумом   Ответить с цитированием
Старый 16.10.2014, 21:06   #8
Живу я тут
  
 
Аватар для Mehannik
 
Регистрация: 10.02.2014
Адрес: Кострома
Сообщений: 105
Поблагодарил(а) : 16
Поблагодарили 5 раз(а) в 5 сообщениях
Отправить сообщение для Mehannik с помощью ICQ
Re: Простой акваконтроллер ARDUINO ===www.aquaforum.ua===

Цитата:
Сообщение от AlexVOK Посмотреть сообщение
Mehannik, напиши на каком контроллере твой нано?

читайте пост 156, в нем есть ответ на ваш вопрос - нехватка память.
Камень 328

Mehannik поза форумом   Ответить с цитированием
Старый 16.10.2014, 21:07   #9
Живу я тут
  
 
Аватар для AlexVOK
 
Регистрация: 11.07.2013
Адрес: Киев (Борщаговка)
Сообщений: 665
Поблагодарил(а) : 106
Поблагодарили 533 раз(а) в 244 сообщениях
Re: Простой акваконтроллер ARDUINO ===www.aquaforum.ua===

Mehannik,
тогда 100% смотрим пост 156

и все будет ОК
можно конечно вырезать ненужные вам функции
но это нужно вникать, чтоб не навредить

AlexVOK поза форумом   Ответить с цитированием
Старый 16.10.2014, 21:13   #10
Живу я тут
  
 
Аватар для Mehannik
 
Регистрация: 10.02.2014
Адрес: Кострома
Сообщений: 105
Поблагодарил(а) : 16
Поблагодарили 5 раз(а) в 5 сообщениях
Отправить сообщение для Mehannik с помощью ICQ
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.

Mehannik поза форумом   Ответить с цитированием
Старый 16.10.2014, 21:11   #11
Живу я тут
  
 
Аватар для Mehannik
 
Регистрация: 10.02.2014
Адрес: Кострома
Сообщений: 105
Поблагодарил(а) : 16
Поблагодарили 5 раз(а) в 5 сообщениях
Отправить сообщение для Mehannik с помощью ICQ
Re: Простой акваконтроллер ARDUINO ===www.aquaforum.ua===

а вы можите вырезать?? мне УДО вообще не нужно!!! помогите ибо из меня программист не какой))

Mehannik поза форумом   Ответить с цитированием
Старый 16.10.2014, 21:50   #12
Живу я тут
  
 
Аватар для Mehannik
 
Регистрация: 10.02.2014
Адрес: Кострома
Сообщений: 105
Поблагодарил(а) : 16
Поблагодарили 5 раз(а) в 5 сообщениях
Отправить сообщение для Mehannik с помощью ICQ
Re: Простой акваконтроллер ARDUINO ===www.aquaforum.ua===

урра все получилося

Mehannik поза форумом   Ответить с цитированием
Старый 18.10.2014, 13:24   #13
Я тут недавно
  
 
Регистрация: 12.11.2013
Адрес: Болгария
Сообщений: 34
Поблагодарил(а) : 107
Поблагодарили 143 раз(а) в 20 сообщениях
Записей в дневнике: 1
Re: Простой акваконтроллер ARDUINO ===www.aquaforum.ua===

Привет
Очень хороший контроллер.
Я изменил код для моих потребностей.
Я сделал изменения в таймеров.Удалил Udo.Добавлено кириллицы. Изменил начальный экран и освободил место для других функций
Моя прошивка.Это может быть полезно.Нужна еще немного поправиться.
Вложения
Тип файла: rar arduino.rar (11.0 Кб, 413 просмотров)


Последний раз редактировалось Петко Шкодров; 18.10.2014 в 14:22..
Петко Шкодров поза форумом   Ответить с цитированием
6 пользователей поблагодарили Петко Шкодров за данный пост:
Andressio (08.04.2015), kolljj (19.12.2014), LVit (18.03.2016), MIHS (11.03.2016), pimass (20.10.2014), Вячеслав Сергеев (27.10.2014)
Старый 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 и подсветка экрана в режиме меню угасает, но стоит выйти из меню или дождаться скринсавера и подсветка становится яркой. Мне кажется должно быть наоборот.
Миниатюры
Нажмите на изображение для увеличения
Название: aqua_controll_исправлен.jpg
Просмотров: 1113
Размер:	49.3 Кб
ID:	463723  


Последний раз редактировалось Вячеслав Сергеев; 28.10.2014 в 13:25..
Вячеслав Сергеев поза форумом   Ответить с цитированием


Share/Bookmark

Ответ

Метки
arduino, акваконтроллер


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход




Текущее время: 09:04. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
(с)Бешлега Олександр Анатолійович, 2002-2024. Використання матеріалів сайту без посилання на джерело заборонено.
Дякуємо за ліцензійну версію форума компанію Барбус, представника торгової марки Sera в Україні.

Друзі форуму: Зоомагазин byCOLLAR.com; waudog.ua

AQA.ru  - все об аквариумах

no new posts