Показати повну версію : Простой акваконтроллер ARDUINO
В какую сторону копать то хоть?
Все начинается со стабильного питания.
Имхо.
alex_palace
20.02.2016, 07:29
Добавлю и сюда и в соседнюю тему :)
Везде читаю что при пропадении напруги ардуинка начнет исполнять черти-что в т.ч с подачей УДО
решение то есть на поверхности.
http://www.youtube.com/watch?v=DaE-1Yn-Rc8
может кто уже из форумчан такое приспособил и готовой схемой со ссілками на али поделится?
UPD
http://ru.aliexpress.com/item/15942-Free-shipping-Lithium-Battery-Charger-Module-Board-mini-5v-USB-1A-li-ion-Battery-charger/32354777332.html
http://ru.aliexpress.com/item/1Pcs-High-Quality-DC-DC-Boost-Converter-Step-Up-Module-1-5V-to-5V-500mA-Power/32451153859.html
оно?
Всем привет, при прошивке выдаёт ошибку
C:\Users\Александр\Desktop\контрол лер\aqua_controll\aqua_controll.ino:32:27: fatal error: LCD5110_Graph.h: No such file or directory
compilation terminated.
alex_palace
28.02.2016, 13:30
а библиотеку в папку со средой ардуино закинул? та что в вернем посте (http://www.aquaforum.ua/attachment.php?attachmentid=430981&d=1400069294)
а библиотеку в папку со средой ардуино закинул? та что в вернем посте (http://www.aquaforum.ua/attachment.php?attachmentid=430981&d=1400069294)
да поместил
файлы поместил , теперь на плате ардуино перестал моргать светодиод, до этого он моргал). теперь он моргает один раз если нажать на кнопку ресет.
уже сил нет )), а это как понимать? что я делаю не так?
Arduino: 1.6.7 (Windows 7), Плата:"Arduino Pro or Pro Mini, ATmega328 (5V, 16 MHz)"
C:\Users\Александр\Desktop\aqua_controll\ aqua_controll.ino:1529:29: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
C:\Users\Александр\Desktop\aqua_controll\ aqua_controll.ino:1536:29: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
C:\Users\Александр\Desktop\aqua_controll\ aqua_controll.ino:1543:38: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
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 =
^
exit status 1
Ошибка компиляции.
alex_palace
28.02.2016, 16:40
попробуй перенести папку с проектом поближе к корню и без кирилиці в названиях папок. Только что перекомпилил 3 варианта скетча - все без ошибок.
Насчет бигфонт и бигнамбер - почитай там в библиотеке 5110 надо добавить что єто константы http://www.aquaforum.ua/showpost.php?p=3077643&postcount=660
Без подколов но чтение всех страниц темы сильно облегчает жизнь т.к автору некогда такие грабли выложить в шапку :)
Сергій М
28.02.2016, 21:40
C:\Users\Александр\Desktop\aqua_controll\
Именно, чаще всего на всех форумах предупреждают о нежелательном расположении библиотек, кириллице и многоуровневом хранении.
по поводу библиотек
Самый безпроблемный вариант развернуть библиотеку в внутрь среды ардуино(libraries)
...\arduino-1.6.5-r5\libraries\
после этого Обязательно перезапустить среду
по поводу библиотек
Самый безпроблемный вариант развернуть библиотеку в внутрь среды ардуино(libraries)
...\arduino-1.6.5-r5\libraries\
после этого Обязательно перезапустить среду
Всем привет.
1.скачал с сайта файлы библиотек, распаковал в папку libraries.
2.скачал скетч с прошивкой, при первом открытии этого файла через программу, вылезло окно, что программа создаст папку со скетчем, ладно создала...(aqua_controll) и поместила её в среду ардуино, в папку C:\Program Files (x86)\Arduino\aqua_controll. перезагрузил программу.
Запускаю программу без подключения платы, нажимаю проверить скетч,выдаёт..
C:\Program Files (x86)\Arduino\aqua_controll\aqua_controll.ino: In function 'void loop()'
C:\Program Files (x86)\Arduino\aqua_controll\aqua_controll.ino:623: 37: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
myGLCD.print("T: Error",3,38);
^
C:\Program Files (x86)\Arduino\aqua_controll\aqua_controll.ino:625: 31: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
myGLCD.print("T:",3,38);
^
C:\Program Files (x86)\Arduino\aqua_controll\aqua_controll.ino:834: 38: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
myGLCD.print("CoolTime",1,0);
^
C:\Program Files (x86)\Arduino\aqua_controll\aqua_controll.ino:838: 37: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
myGLCD.print("Light 1",1,0);
^
C:\Program Files (x86)\Arduino\aqua_controll\aqua_controll.ino:842: 37: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
myGLCD.print("Light 2",1,0);
^
C:\Program Files (x86)\Arduino\aqua_controll\aqua_controll.ino:846: 33: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
myGLCD.print("Air",1,0);
^
C:\Program Files (x86)\Arduino\aqua_controll\aqua_controll.ino:850: 33: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
myGLCD.print("CO2",1,0);
^
C:\Program Files (x86)\Arduino\aqua_controll\aqua_controll.ino:854: 33: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
myGLCD.print("LED",1,0);
^
C:\Program Files (x86)\Arduino\aqua_controll\aqua_controll.ino:858: 33: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
myGLCD.print("UDO",1,0);
^
C:\Program Files (x86)\Arduino\aqua_controll\aqua_controll.ino:1018 :38: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
myGLCD.print("CoolTime",1,0);
^
C:\Program Files (x86)\Arduino\aqua_controll\aqua_controll.ino:1021 :36: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
myGLCD.print("Light1",1,0);
^
C:\Program Files (x86)\Arduino\aqua_controll\aqua_controll.ino:1024 :36: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
myGLCD.print("Light2",1,0);
^
C:\Program Files (x86)\Arduino\aqua_controll\aqua_controll.ino:1027 :33: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
myGLCD.print("Air",1,0);
^
C:\Program Files (x86)\Arduino\aqua_controll\aqua_controll.ino:1030 :33: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
myGLCD.print("CO2",1,0);
^
C:\Program Files (x86)\Arduino\aqua_controll\aqua_controll.ino:1033 :33: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
myGLCD.print("LED",1,0);
^
C:\Program Files (x86)\Arduino\aqua_controll\aqua_controll.ino:1036 :33: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
myGLCD.print("UDO",1,0);
^
C:\Program Files (x86)\Arduino\aqua_controll\aqua_controll.ino:1045 :41: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
myGLCD.print("MoTuWeThFrSaSu",0,11);
^
C:\Program Files (x86)\Arduino\aqua_controll\aqua_controll.ino:1433 :30: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
myGLCD.print("Time",1,0);
^
C:\Program Files (x86)\Arduino\aqua_controll\aqua_controll.ino:1441 :29: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
myGLCD.print(":",39,20);
^
C:\Program Files (x86)\Arduino\aqua_controll\aqua_controll.ino:1519 :30: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
myGLCD.print("Date",1,0);
^
C:\Program Files (x86)\Arduino\aqua_controll\aqua_controll.ino:1529 :29: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
myGLCD.print(".",24,20);
^
C:\Program Files (x86)\Arduino\aqua_controll\aqua_controll.ino:1536 :29: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
myGLCD.print(".",42,20);
^
C:\Program Files (x86)\Arduino\aqua_controll\aqua_controll.ino:1543 :38: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
myGLCD.print("Day of week",0,32);
^
C:\Program Files (x86)\Arduino\libraries\DS1307\DS1307.cpp: In member function 'char* DS1307::getTimeStr(uint8_t)':
C:\Program Files (x86)\Arduino\libraries\DS1307\DS1307.cpp:109:16: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
char *output= "xxxxxxxx";
^:
что опять не так? кстати, программа пишет ,что загрузка завершена, но с этими видать ошибками(
alex_palace
29.02.2016, 10:57
так не ошибки а ворнинги.
гугление подсказывает что изменения строковой char на const char уберет ворнинг
но рабоать оно работает (пока железо едет проверил на протеусной модели, выложена несколькими страницами раньше)
alex_palace
29.02.2016, 14:20
зачем? Ворнинги на скорость не лияют а вот прога может начать лажать.. На эмуляторе проверял все работает
не стал не чего делать, всё залилось,всё работает в тестовом режиме.
Подскажите пожалуйста не могу в меню найти управление блоком питания. Ткните пожалуйста пальцем.
А можете пояснить пожалуйста в каком меню
alex_palace
29.02.2016, 18:28
Кстати о блоке питания :)) тут по случаю обзавелся http://eu.mouser.com/ProductDetail/Mean-Well/SE-600-24/?qs=%252b6mEGs9UJHxYGgpHs1IugQ%3D%3D - написано что у него есть д/у, теоретически есть контакты куда их подключить но вот найти что туда подключить не могу :(( ну и для скептиков про светодиодные ленты - подключена чисто редгринблю 24 в и 70 диодов метр (780 люменов в максе с метра)
http://www.aquaforum.ua/picture.php?albumid=15881&pictureid=225132&thumb=1 ('http://www.aquaforum.ua/picture.php?albumid=15881&pictureid=225132')
http://www.aquaforum.ua/picture.php?albumid=15881&pictureid=225131&thumb=1 ('http://www.aquaforum.ua/picture.php?albumid=15881&pictureid=225131')
Использовать для света буду 24в редгринблювайт 144 светодиода метр (пока не подключал размотанную т.к зайчиков наловился уже в бухте :))
http://www.aquaforum.ua/picture.php?albumid=15881&pictureid=225133&thumb=1 ('http://www.aquaforum.ua/picture.php?albumid=15881&pictureid=225133')
Aksiles, в меню этого нет ;)
эта функция делалась для лед света
т.е. БП автоматом запускался в момент включения света.
на сегодня я не пользуюсь ей.
SEM написал какой вывод со стороны компового БП
alex_palace, фото обнадеживает,
но ждем фото баночки освещенной этой ленточкой
alex_palace
29.02.2016, 21:14
Жду китайского железа. Сам светильник собрать час не больше, за основу пойдет гипсокартонный профиль задутый акрилом чтоб не ржавел :) дешево и сердито :):а вот спектр подбирать наличествующей кнопалкой за 1 долл это смешно.. Нужен контроллер и мосфеты которые только Шеньжень покинули
Нечего не получается свет 1 и 2 включается а сигнала с arduina на включения транзистора нет что может быть помогите пожалуйста . Прошивка с шапки.
alex_palace
01.03.2016, 20:59
alex_palace, фото обнадеживает,
но ждем фото баночки освещенной этой ленточкойhttp://www.aquaforum.ua/showpost.php?p=3210569&postcount=77
Пытался переубедить скептиков :)
И это более слабая и дешевая лента и приклеена абы как на коленках за 10 минут :)
AlexVOK, в файле закралась ошибка, поправил то что нашел.
Multiman
05.03.2016, 12:38
Нашел интересную тему по оптимизации работы Ардуино:http://cyber-place.ru/showthread.php?t=550 (может было - непомню)
Благодаря многоуважаемому Автору этой темы меню на свой контроллер я делал на основе его идеи. Но со временем многие "навороты" ушли в небытие, осталось только самое необходимое.
А ссылка поможет тем, у кого нехватает памяти для их грандиозных планов. Да и приспосабливаться под новую библиотеку не нужно: все предельно понятно.
Сегодня заказал себе отличный и не дорого блок питания
Вход 90-240В выход 24В до 6А (http://ali.pub/7w9un) за смешные 6 баксов (у продавца акция!)
Нашел интересную тему по оптимизации работы Ардуино:http://cyber-place.ru/showthread.php?t=550 (может было - непомню)
Тогда уж лучше библиотека digitalWriteFast
Из интереса сравнил размер кода мигания для стандартной среды, библиотеки digitalWriteFast и библиотеки CyberLib
//Std lib
//Sketch uses 854 bytes (2%) of program storage space. Maximum is 28*672 bytes.
//Global variables use 9 bytes (0%) of dynamic memory, leaving 2*039 bytes for local variables. Maximum is 2*048 bytes.
//digitalWriteFast (safe Interrupt version)
//Sketch uses 456 bytes (1%) of program storage space. Maximum is 28В*672 bytes.
//Global variables use 9 bytes (0%) of dynamic memory, leaving 2В*039 bytes for local variables. Maximum is 2В*048 bytes.
//CyberLib
//Sketch uses 550 bytes (1%) of program storage space. Maximum is 28*672 bytes.
//Global variables use 13 bytes (0%) of dynamic memory, leaving 2*035 bytes for local variables. Maximum is 2*048 bytes.
К томуже при использовании digitalWriteFast заменить конструкцию вида digitalWrite(13, HIGH); на digitalWriteFast(13, HIGH); можно автоматически во всем файле и для любых пинов за одну команду
Для CyberLib придется заменять digitalWrite(13, HIGH); на D13_High; И так для каждого пина и состояния. Что мягко говоря уже не столь просто. Можно, конечно, воспользоваться более интеллектуальной заменой, скриптами... но уже и не надо...
Добавить #include <digitalWriteFast.h> и сделать указанную выше поиск\замену digitalWrite на digitalWriteFast дело 20 секунд.
Скорость выполнения не проверял... Для данного акваконтроллера не критично.
Multiman
07.03.2016, 13:11
Тогда уж лучше ...
Полностью с Вами согласен - каждому свое. На то она и Ардуина... Так, наверное, и задумывалось.
привет всем,вот что получилось у меня.
только проблема с выводом на дисплей буквы "Ы".
Ваааа, какая круть! Не поделитесь, как самому такое сделать? Очень уж захотелось
как самому такое сделать? Очень уж захотелось
самому сделать, все данные и комплектующие в верху поста.
Алесандр
10.03.2016, 22:20
привет всем,вот что получилось у меня.
только проблема с выводом на дисплей буквы "Ы".
http://devicter.blogspot.com/2013/03/rusUTFT-SmallFont.html?m=1
Возможно поможет решить эту проблему.
Mehannik
11.03.2016, 14:36
привет всем,вот что получилось у меня.
только проблема с выводом на дисплей буквы "Ы".
не поделитесь русским скетчем?
не поделитесь русским скетчем?
поделюсь, но только вечером могу выложить), а так можно самому изменить (заменить) буквы в скетче,
0x00, 0x07, 0x08, 0x08, 0x08, 0x7F, // ` Ч
0x00, 0x7E, 0x11, 0x11, 0x11, 0x7E, // a A
0x00, 0x7F, 0x49, 0x49, 0x49, 0x33, // b Б
0x00, 0x7F, 0x40, 0x40, 0x40, 0xFF, // c Ц
0x00, 0xE0, 0x51, 0x4F, 0x41, 0xFF, // d Д
0x00, 0x7F, 0x49, 0x49, 0x49, 0x49, // e Е
0x00, 0x1C, 0x22, 0x7F, 0x22, 0x1C, // f Ф
0x00, 0x7F, 0x01, 0x01, 0x01, 0x03, // g Г
0x00, 0x63, 0x14, 0x08, 0x14, 0x63, // h Х
0x00, 0x7F, 0x10, 0x08, 0x04, 0x7F, // i И
0x00, 0x7C, 0x21, 0x12, 0x09, 0x7C, // j Й
0x00, 0x7F, 0x08, 0x14, 0x22, 0x41, // k К
0x00, 0x20, 0x41, 0x3F, 0x01, 0x7F, // l Л
0x00, 0x7F, 0x02, 0x0C, 0x02, 0x7F, // m М
0x00, 0x7F, 0x08, 0x08, 0x08, 0x7F, // n Н
0x00, 0x3E, 0x41, 0x41, 0x41, 0x3E, // o О
0x00, 0x7F, 0x01, 0x01, 0x01, 0x7F, // p П
0x00, 0x46, 0x29, 0x19, 0x09, 0x7F, // q Я
0x00, 0x7F, 0x09, 0x09, 0x09, 0x06, // r Р
0x00, 0x3E, 0x41, 0x41, 0x41, 0x22, // s С
0x00, 0x01, 0x01, 0x7F, 0x01, 0x01, // t Т
0x00, 0x27, 0x48, 0x48, 0x48, 0x3F, // u У
0x00, 0x77, 0x08, 0x7F, 0x08, 0x77, // v Ж
0x00, 0x7F, 0x49, 0x49, 0x49, 0x36, // w В
0x00, 0x7F, 0x48, 0x48, 0x30, 0x00, // x ь
0x00, 0x01, 0x7F, 0x48, 0x48, 0x30, // y Ъ
0x00, 0x49, 0x49, 0x49, 0x49, 0x36, // z З
0x00, 0x00, 0x10, 0x7C, 0x82, 0x00, // {
0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, // |
0x00, 0x00, 0x82, 0x7C, 0x10, 0x00, // }
0x00, 0x00, 0x06, 0x09, 0x09, 0x06, // ~ (Degrees)
файл DefaultFonts.c взят из поста #221 (http://www.aquaforum.ua/showpost.php?p=2959806&postcount=221) у Петко Шкодрова.
Mehannik
11.03.2016, 15:32
Луше выложите)) а то я дуб в этом деле))
я дуб в этом деле
вот и я тоже))), правда 2 вечера сидел разбирался)
alex_palace
11.03.2016, 18:06
мегазападлянка. пришла про мини, дисплей и часы. Юсб переходка, мосфеты,релюшки, датчик из Китая еще не выехали :( Буду чувствую старый шнурок от Нокии терзать :)
у меня тоже частями доставлялось
мегазападлянка.:)
В смысле - дать тебе Nano? code45
alex_palace
11.03.2016, 20:27
прошка мини есть :)) и дку 52 - надеюсь подружатся.
MIHS, покупалось вместе но у разных продаванов.. у одного скомплектовать не вышло :(
тфт+ мегу комплект + обвязку взял у одного 22 февраля так этот ...чудак только вчера до почты донес хоть статус отправлено стоял две недели.. и то отнес только когда я диспут открыл
Mehannik, вот "мой" скетч с измененными буквами.
Скачиваем оба файла, файл DefaultFonts распаковываем его с заменой в библиотеку дисплея NOKIA 5110.
alex_palace, эти покимоны ещё те товариЩи.... только глаз да глаз надо
Multiman
12.03.2016, 16:44
привет всем...
Я тоже руссифицировал меню, англоязычный вариант мне не понравился. После недолгих тестов, когда уже оформил контроллер в корпус, поменял часы на главном экране на температуру воды (температура воды показалась мне важнее для аквариума, чем время). Подсветку дисплея убрал совсем, меню немного упростилось (но это пришло со временем, поначалу было интересно поклацать, полюбоваться своей работой).
Multiman,
Вы абсолютно правы, я из всего функционала пользуюсь только кнопкой кормления :)
один раз настроил, и больше года ничего не менял.
Обращаюсь ко всем повторившим, а особенно к тем кто внес изменения и доработки.
Если есть желание поделится, выкладывайте сюда
или закидывайте мне в личку с небольшим описанием, я добавлю в шапку.
Думаю это будет всем интересно.
Обращаюсь ко всем повторившим, а особенно к тем кто внес изменения и доработки.
добавил)
alex_palace
14.03.2016, 16:49
Mehannik, вот "мой" скетч с измененными буквами.
:(( У меня меню таки латиницей .. Нигде застрять оригинальный скетч не мог?
http://www.aquaforum.ua/picture.php?albumid=16085&pictureid=225900&thumb=1 ('http://www.aquaforum.ua/picture.php?albumid=16085&pictureid=225900')
alex_palace, а качал скетч мой или из шапки сайта?
ps: в шапке рабочий скетч, проверил
alex_palace
14.03.2016, 17:19
alex_palace, а качал скетч мой или из шапки сайта?
твой aqua_controll-160311a.zip
заново перекачал, перед загрузкой влил в прошку блинк из екзамплов :)
скачай ещё у меня там файл DefaultFonts и помести его с заменой в библиотеку дисплея 5110.
stas226823
14.03.2016, 17:25
у меня тоже самое. качал из шапки
качаем оба файла от сюда http://www.aquaforum.ua/showpost.php?p=3215111&postcount=791, устанавливаем файл с заменой DefaultFonts в библиотеку дисплея.
stas226823
14.03.2016, 17:29
качаем оба файла от сюда http://www.aquaforum.ua/showpost.php?p=3215111&postcount=791, устанавливаем файл DefaultFonts в библиотеку дисплея.
понял. спасибо. А еще вопрос . Как сделать чтобы значения ацп на кнопках не скакали. и на макетке собирал, и паял. все равно плавают. мощность резисторов значение имеет?
alex_palace
14.03.2016, 17:37
MIHS, ЙЕС!!! Камрады вы лучшие!
Теперь корпус и силовая часть и контроллер готов :)
alex_palace
14.03.2016, 17:41
http://www.aquaforum.ua/picture.php?albumid=16085&pictureid=225901&thumb=1 ('http://www.aquaforum.ua/picture.php?albumid=16085&pictureid=225901')
alex_palace
14.03.2016, 17:57
теперь осталось как ньюбу разобраться с пинами :)
#define EXT_FILTER_PIN 12
#define EXT_AIR_PIN 1
#define EXT_HEATER_PIN 13
#define EXT_COOLING_PIN 10
#define EXT_LIGHT_1_PIN 15
#define EXT_LIGHT_2_PIN 16
#define EXT_CO2_PIN 0
#define EXT_POWER_ON_PIN 20
#define EXT_LIGHT_LED_PIN 11
#define EXT_UDO_MICRO_PIN 17
#define EXT_UDO_MACRO_PIN 18
#define EXT_UDO_Fe_PIN 19
EXT_COOLING_PIN 10 - 10й
EXT_LIGHT_LED_PIN 11 -11
EXT_FILTER_PIN 12 -12
EXT_HEATER_PIN 13 -13
EXT_LIGHT_1_PIN 15 - А2?
16,17,18,19,20?
http://5v.ru/img-module/pro-mini-cmp.jpg
питание и пл2303 распаял на верхнюю.
я тормоз :( таки мозг сегодня вынести успели.. все в шапке висит :)))
alex_palace, разобрался? если из выше перечисленного не всё будет подключаться (со2, удо, свет 2 итд) то можно не все выводы задействовать.
alex_palace
15.03.2016, 12:17
MIHS, AlexVOK
пока силовая часть и датчик еще не долетели, пробую разобраться с прогой ну и за одно по ходу типа корпус сваял :) Дешево и сердито :)
http://www.aquaforum.ua/picture.php?albumid=16085&pictureid=225906&thumb=1 ('http://www.aquaforum.ua/picture.php?albumid=16085&pictureid=225906')
По программе. Насколько понял первоначальную дату берет из ЕЕПРОМ, так-же как и первоначальные настройки. Вот только чего не нашел (дату нашел где) ГДЕ туда их заносит? (ну Делфист я :) Привык что первичные переменные можно через стринглист вычитать с текстовика. Может я или извращаюсь или совсем разленился но к примеру свет, СО2 и УДО по каналам я бы первоначально вкинул бы свои настройки чтоб при изменении в прошивке не перенастраивать заново.
к сожалению не вник еще настолько в скетчеписание... ИМХО если б как в делфи или паскале (да в том-же С ) можно было бы брать из внешнего файла то имхо было бы совсем просто (разве что корректировать с кнопок) к примеру в екселе делаем табличку:
день недели время вкл время выкл канал
1 05:00 09:00 С1
2 04:30 08:30 СО2
итд
и так-же и с УДО (к примеру я удо даю дробно 4 порциями по 1.5 мл Калий два раза в день(в плане) и железо каждые 2 часа(тоже в плане) в плане т.к сейчас самопальная 4 канальная перистальтика (4 запуска по 5 минут в сутки) но уже лежат 4 шт помпы (кстати если надо кому поделюсь контактом - 4 шт правда блин 53 вт :( купил по 100 грн неделю назад.
ЗЫ - если кто-то как я умудрился купить ЮСБ на КОМ отдельной покупкой или вообще забыл купить то старый нокиевский шнурок прекрасно его заменяет разве-что при загрузке скетча надо ресет жать руками
http://www.aquaforum.ua/picture.php?albumid=16085&pictureid=225907&thumb=1 ('http://www.aquaforum.ua/picture.php?albumid=16085&pictureid=225907')
Вот только чего не нашел (дату нашел где) ГДЕ туда их заносит? (ну Делфист я :)
по идее
разкомментить эти строки
// rtc.setDOW(SUNDAY); // Set Day-of-Week to SUNDAY
// rtc.setTime(12, 0, 0); // Set the time to 12:00:00 (24hr format)
// rtc.setDate(3, 10, 2010); // Set the date to October 3th, 2010
Особо код не смотрел. code44
Надо попробывать.
alex_palace
15.03.2016, 14:17
так это и нашел :) и дату уже на поближе сменил :)
так дата и время же меняется зайдя в раздел настройки через меню ,(кнопочно)
alex_palace
15.03.2016, 14:47
уже посмотрел - даже смена версии таймеры не сбивает, т.е разве что для ленивой первоначальной настройки :) Время держит батарейка в часах. Я про задачу времени упомянул только как то что это единственное явное внешнее задание переменных которое нашел
case 6: // "TimerUDO"
switch((byte)((bt>>6)&B00000011)){
case 0: // Micro
tt = tt + "Micro";
break;
case 1: // Macro
tt = tt + "Macro";
break;
case 2: // Fe+
tt = tt + "Fe+";
break;
case 3: // Ka
tt = tt + "Ka";
Ка, это рудимент оставшийся от другой разработки? Насосов то как и каналов УДО только 3.
Sandrique
19.03.2016, 22:40
Спасибо за проделанную работу, собрал все отлично работает. Хотелось бы регулировку лед сделать более плавной. Не могу разобраться где поменять шаг с одной минуты к примеру на 10 секунд или чаще.
imac2008
20.03.2016, 15:47
Подскажите, чем можно IRF510 заменить?
imac2008, почти любой N канальный полевик
на вашу нагрузку
IRFZ44 например
imac2008
21.03.2016, 08:26
AlexVOK, я так понял, что по умолчанию, вместе со светом включается и кулер с минимальными оборотами (проветривание) и остается в этом режиме до отключения света. Можно ли это отключить? А сделать отдельный таймер на принудительное включение кулера (например для проветривание на максимуме перед включением и до включения света)? оставив при этом функцию термостата по охлаждению.
При пропадании света предположим в 12.00 и если таймер включения работы кулера на охлаждение стоит допустим на 00.00 то и включится он по этому расписанию то бишь в полночь. Не есть гуд. Подскажите где это исправить?
imac2008
27.03.2016, 15:01
Все же не хватает у меня серого... хочу сделать принудительный запуск (проветривание) кулера (по расписанию) до включения света и постоянное (независимое от времени) охлаждение. И все это независимо от питания. Прощу помощи.
imac2008,
управление временем проветривания происходит в меню CooTime
выставляйте себе хоть круглые сутки, при этом температура будет регулироватся оборотами куллера - проветривание на минимуме, а когда вода прогреется куллер будет более интенсивно работать
_Константин_
28.03.2016, 20:54
Всем здрасте.
Спасибо за проделанную работу и свободный доступ к материалу.
Раньше никогда не программировал, а сей девайс хотел собрать давно, подкупила простота и малая стоимость деталей.
Было много вопросов и спотыканий, но информация на форуме довольно сильно помогла. И всё таки есть несколько вопросов:
1. Очень сильно смущает факт терморегулятора: при отсутствии датчика, либо его поломки - идет сигнал на нагрев, что не есть хорошо кто-то уже задавал такой вопрос. Но есть ли решение проблемы?
2. Блин не могу руссифицировать меню. Всё делаю согласно подсказок: скачал оба файла от сюда http://www.aquaforum.ua/showpost.php...&postcount=791, установил файл с заменой DefaultFonts в библиотеку дисплея. Ан нет, всё по прежнему
imac2008
29.03.2016, 15:17
AlexVOK, я понял как управлять кулером. Задачка вот в чем. Например стоит у меня по времени запуск кулера в 12.00 выключение 11.59 (дабы охватить все время суток). Кулер в 12.00 включается, а свет "моргает" в 12.15. И теперь кулер не будет работать до следующих 12.00. Вот из этой ситуации в преддверии лета пытаюсь найти выход
imac2008
29.03.2016, 15:22
_Константин_, было у меня такое. Я удалил все папки со скетчами акваконтроллера из папки среды ардуино, скачал русскетч и залил заново.
imac2008, так попробуйте "моргнуть"
Контроллер у меня на старте переходит в режим поддержание жизни питомцев
а точнее включает свет, фильтр, аэрацию, проветривание-охлаждение, отключает СО2
а дальше по мере срабатывания расписания
imac2008
29.03.2016, 17:32
....
imac2008, так попробуйте "моргнуть"
Контроллер у меня на старте переходит в режим поддержание жизни питомцев, а точнее включает свет.......
хм.. я бы себе такой контролер не поставил. извините.
_Константин_
30.03.2016, 07:10
Со шрифтами повожусь позже, это не критично но принципиально. А вот с терморегулятором по нагреву вопрос остается открытым. Как это решать? Или это только у меня такой глюк. Всё таки это очень важный момент .
cahek80, Ждем от Вас вашей ветки на форуме где Вы выложите свой вариант правильного контроллера, и мы все дружно повторим Ваш вариант.
С уважением ;)
Контроллер есть на форуме. Извините, но другие варианты выкладывать не собираюсь здесь, благодаря вот таким как выше посетителям.
PS
RozarioAgro, если вас так беспокоит наличие драйверов, то драйвера будут когда сочту нужным их установку. Могу даже сказать на какой микросхеме они будут сделаны. PT4115, лежи десяток дома с рассыпухой для них.
alex_palace
31.03.2016, 13:37
Тогда уж лучше библиотека digitalWriteFast
Из интереса сравнил размер кода мигания для стандартной среды, библиотеки digitalWriteFast и библиотеки CyberLib
//Std lib
//Sketch uses 854 bytes (2%) of program storage space. Maximum is 28*672 bytes.
//Global variables use 9 bytes (0%) of dynamic memory, leaving 2*039 bytes for local variables. Maximum is 2*048 bytes.
//digitalWriteFast (safe Interrupt version)
//Sketch uses 456 bytes (1%) of program storage space. Maximum is 28В*672 bytes.
//Global variables use 9 bytes (0%) of dynamic memory, leaving 2В*039 bytes for local variables. Maximum is 2В*048 bytes.
//CyberLib
//Sketch uses 550 bytes (1%) of program storage space. Maximum is 28*672 bytes.
//Global variables use 13 bytes (0%) of dynamic memory, leaving 2*035 bytes for local variables. Maximum is 2*048 bytes.
К томуже при использовании digitalWriteFast заменить конструкцию вида digitalWrite(13, HIGH); на digitalWriteFast(13, HIGH); можно автоматически во всем файле и для любых пинов за одну команду
Для CyberLib придется заменять digitalWrite(13, HIGH); на D13_High; И так для каждого пина и состояния. Что мягко говоря уже не столь просто. Можно, конечно, воспользоваться более интеллектуальной заменой, скриптами... но уже и не надо...
Добавить #include <digitalWriteFast.h> и сделать указанную выше поиск\замену digitalWrite на digitalWriteFast дело 20 секунд.
Скорость выполнения не проверял... Для данного акваконтроллера не критично.
на русском варианте со стандартным 28066 (91%) с digitalWriteFast 27880 (90%) Вроде как и немного но курочка по зернышку клюет.
AlexVOK, решил что таки сначала Ваш доделаю уже чтоб автоматика заработала а потом уже буду под себя допиливать цветной :)
лентяй я - вместо паять релюхи взял релейные блоки а вместо транзисторов готовые ключи :)
Кстати - не могу понять глюка... С адаптером FTD1232 (10ка обновилась и снова начались траблы с ПЛ2033 от Нокии а тут как раз посылка приехала)
Паяю все по мурзилке - не грузит скетч.
http://cdn.arduined.eu/wp-content/uploads/2014/10/CH340G-converter-connection-pinout-for-programming-Arduino-Pro-Mini.jpg
Как только убираю ДТР и гружу через нажатие на ресет - все отлично грузится... Глюк или такой адаптер приехал?
упд - при внешнем питании все грузит
ХЕЛП!!! :) откуда выпаять резюк на 4.7 к? Есть материнки, блоки питания... уже штук 100 по таблице перебрал все не то пальто..
https://play.google.com/store/apps/details?id=ca.parth.resistordecoder прога для телефона сканит резистора.
_Константин_
02.04.2016, 18:06
Мужики. Почему все молчат про вопрос с терморегуляцией? Или это беспокоит только меня? Тогда если можно подскажите, что нужно сделать, чтобы при отсутствии связи с датчиком не шёл сигнал на включение нагревателя.
Сергій М
02.04.2016, 21:11
_Константин_, Так стоит ли датчик температуры у Вас ??
alex_palace
02.04.2016, 23:09
Мужики. Почему все молчат про вопрос с терморегуляцией? Или это беспокоит только меня? Тогда если можно подскажите, что нужно сделать, чтобы при отсутствии связи с датчиком не шёл сигнал на включение нагревателя.
закомментировать включение реле нагревателя или вставить условие на проверку наличия датчика перед включением типа if onewire.temp = error then k(не помню на память) =off else ... и процедура включения нагревателя
патчь решающий вопрос с терморегулятором
найдите строку
if(cur_temp < (float)aquaT){
и замените на
if((cur_temp > 10)&&(cur_temp < (float)aquaT)){
еще если ваша грелка с регулятором температуры выставьте регулятор на верхний предел (у меня 32)
_Константин_
04.04.2016, 17:14
_Константин_, было у меня такое. Я удалил все папки со скетчами акваконтроллера из папки среды ардуино, скачал русскетч и залил заново.
Действительно. Спасибо, всё получилось.
_Константин_
04.04.2016, 17:34
Ещё раз приношу свою благодарность автору данного проекта. code33
Думаю для AlexVOK будет приятно узнать еще об одном повторении его устройства. Дабы не быть голословным подкрепляю сообщение фотографиями получившегося девайса. Использовал корпус от старого DVD проигрывателя: оставил только блок питания, также задействовал штатные кнопки, немного послесарил и врезал силовые разъемы на задней панели. Благодарю корпусу, получилось довольно компактное устройство. В дальнейшем планирую задействовать остальные каналы, поэтому на фотографиях видны не все силовые развязки.
Дополнительно вопрос. Тестил в течении 6 дней, часы немного спешат. В пересчете нужно делать почасовую коррекцию -0.2569. Сделал соответствующие изменения в скетче и залил - вопрос, будет ли такая коррекция правильно работать?
_Константин_, сделали шрифт на русском языке?
_Константин_
06.04.2016, 18:18
_Константин_, сделали шрифт на русском языке?
Да, я уже писал, с русским шрифтом всё получилось.
Toha24510
22.04.2016, 21:08
_Константин_, Пожалуйста сделайте шрифт на русском с добавлением что в посте #507 .
здравствуйте. первый раз имею дело с арду. после 3ех дней попыток наконец удалось залить скетч и запустить программу. обнаружил,что контрастность дисплея мерцает и меняется+нажатие кнопок вызывает их хаотичное переключение. почитав форум,решил,что может из-за нехватки памяти-использовал среду1.0.5,решил попробовать 1.5.7-но не проходит верификация с компиляцией-буду очень признателен за подсказки,что делаю не так!!!!!!!! спасибо!!! Arduino: 1.5.7 (Windows XP), Board: "Arduino Pro or Pro Mini, ATmega328 (5V, 16 MHz)"
Build options changed, rebuilding all
C:\Documents and Settings\люцина\Мои документы\Arduino\libraries\LCD5110\Defau ltFonts.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:\Documents and Settings\люцина\Мои документы\Arduino\libraries\LCD5110\Defau ltFonts.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.
alex_palace
26.04.2016, 15:23
не нехватка памяти а нехватка питания!
привет всем, кстати.. у меня тоже последнее время "чернеет" дисплей , но не надолго, пробовал убирать контрастностью получается, но со временем тоже самое возвращается. Дело не в питании 100%, попробую выложить видео в ближайшее время...
спасибо всем откликнувшимся! нашел в 218 посту по моему аналогичную проблему с ошибкой компиляции,автор посоветовал воспользоваться его средой и у человека все прошилось,у меня вопрос где найти эту среду_мозг уже кипит сорри!
sefr111, скачиваешь самую последнюю версию программы с офф сайта, скачиваешь библиотеку которая находится в шапке форума, для корректной работы , нужно чтобы папка библиотеки и папка со скетчем была в одной папке с программой. например у меня C:\Program Files\Arduino...
забыл спросить, чем шьёте? и я так понял у вас ардуинка мини про?
Да,про мини. Попробовал среду переустановить,выбило уже другую ошибку,удаляю среду unlockeром . Попробую все заново-как вы посоветовали. Спасибо большое,то уже терпение заканчивается
Сделай всё проще, удали всё с компа и программу и библиотеки и скетч, потом перезагрузи комп, скачай ВСЁ заново, при прошивке после компиляции скетча будет надписть "загрузка" жмём кнопку ресет на ардуинке и ждём полную загрузку. Не забываем выставить а программе какая ардуинка и программатор , я выставлял AVRISP mkII вроде.
Понял. Спасибо буду все сносить. Ресетить надо,если имеется dtr на usb конверторе? Когда залил в среде1.0.5 несет не трогал,получается dtr функционален? Спасибо
вроде все сделал,опять что то не тоArduino: 1.5.7 (Windows XP), Board: "Arduino Pro or Pro Mini, ATmega328 (5V, 16 MHz)"
Build options changed, rebuilding all
aqua_controll.ino: In function 'void setup()':
aqua_controll.ino:86:6: error: redefinition of 'void setup()'
sketch_apr26a.ino:1:6: error: 'void setup()' previously defined here
aqua_controll.ino: In function 'void loop()':
aqua_controll.ino:376:6: error: redefinition of 'void loop()'
sketch_apr26a.ino:6:6: error: 'void loop()' previously defined here
This report would have more information with
"Show verbose output during compilation"
enabled in File > Preferences.
Сергій М
26.04.2016, 20:19
sefr111, кроме ещё каких-то возможных причин, Вас ещё должно напрячь вот эти адреса - C:\Documents and Settings\люцина\РњРѕРё документы\Arduino\libraries\LCD5110\Defau ltFonts.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:\Documents and Settings\люцина\Мои документы\Arduino\libraries\LCD5110\Defau ltFonts.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 =
Многие программы/игры/др. приложения отказываются работать если путь к приложению слишком длинный и содержит папки с названием кириллицей.
Вроде получилось) с кнопками только наверное перемудрил,буду разбираться. Спасибо большое автору и всем,кто помог советами!
Кнопки получилось поменялись местами(низ с верхом,ОК с отменой) по схеме смотрю-вроде по схеме все,так не хочется экспериментировать,что буду переворачивать,правда кнопки получатся с лева.
Сергій М
27.04.2016, 00:41
sefr111, старайтесь не исправлять ранее написанный пост - а то получается полная неразбериха, так как советы уже не несут смысловой нагрузки для других, а заводят в недоумение ...
Витенька
27.04.2016, 21:56
imac2008, так попробуйте "моргнуть"
Контроллер у меня на старте переходит в режим поддержание жизни питомцев
а точнее включает свет, фильтр, аэрацию, проветривание-охлаждение, отключает СО2
а дальше по мере срабатывания расписания
Здравствуйте Алекс! А вот здесь можно уточнить, когда наступает это "дальше", через какое время?
Здравствуйте. Сегодня после долгих попыток удалось загрузить русскую версию. Подскажите пожалуйста-не получается в LED переключить на закат(горит вкл и регулируется время включения. И в УДО переключить в другой режим кроме КА)
alex_palace
28.04.2016, 06:19
насчет ЛЕД не помню т.к єтот проект недособранный лежит на столе :) (оказалось таки маловато под мои нужды и сейчас уже на финишной тьфутьфутьфу прямой Джардуино в версии от Олега) но по удо выбираете КА58МЛ и крутите до ФЕ МИ или МА .. долго и упорно ..
По логике с ЛЕД тоже самое там вкл20мин крутите до выкл20мин через вкл19 18 итд...
_Константин_
30.04.2016, 13:18
_Константин_, Пожалуйста сделайте шрифт на русском с добавлением что в посте #507 .
Я просмотрел пост #507, но так и не понял что вы имели в виду. Пост #507 никак не относится к русификации шрифта.
_Константин_
30.04.2016, 13:30
По поводу непоняток с LCD дисплеем.
У меня монитор на красной плате. Так вот, когда я на контроллер монитора подавал питание 5В, была подобная проблема: с непонятной контрастностью, мигание экрана при нажатии кнопок, плюс иногда появлялись горизонтальные полосы. В даташите этого монитора - питание 3.3В, сделал 3.3В и все глюки пропали.
Toha24510
05.05.2016, 16:27
Я просмотрел пост #507, но так и не понял что вы имели в виду. Пост #507 никак не относится к русификации шрифта.
Просто было бы здорово,если ещё было бы отображение работающих каналов на главной.Думаю многие меня поддержат.
_Константин_
05.05.2016, 21:06
Отображение работающих каналов у кого-то из "жителей" этого форума воплощена. Но поверьте, на практике - это лишнее. Максимум, для чего нужен монитор: настройка в самом начале всех таймеров подключенных нагрузок, терморегулятора, ну и периодическая активация режима кормления (по необходимости). Больше на дисплей смотреть нечего - лучше наблюдать за развитием жизни аквариума.
Витенька
14.05.2016, 18:46
Есть отображение состояния каналов на главном экране, но на "изуродованном" под свои потребности скетче, хотя само отображение возможно и к изначальному коду приспособить. http://imglink.ru/thumbnails/14-05-16/e87eb2145a7dcbf258cbe11b0d36ddbc.jpg (http://imglink.ru/show-image.php?id=59c5729670f4e4fd681a13480c9a7d45) Присутствие звездочки под каналом соответствует активному каналу, отсутствие отключенному, звездочки по бокам термометра так же показывают включен подогрев или нет. У меня другая проблема, кто сейчас хозяин над этим контроллером, переделал для своих нужд код но все же есть нюансы которые победить не получается, может ли кто как то помочь, или хоть носом ткнуть где дальше ковырять?
Сергей Плахов
24.06.2016, 12:35
подскажи как сделал ты шрифт на русском языке? я новичек,но заинтересовало arduino программирование (http://geekmatic.in.ua/arduino_osnovyi_programmirovaniya). Хотел сделать скетч для Arduino,много инфы нашел,но вот с языком не могу никак решить вопрос,может уже был ответ на такой вопрос тут?
Сергій М
25.06.2016, 14:38
Сергей Плахов, Всего пару страниц назад об этом говорилось, перечитайте их, там есть решение.
Tvister86
07.02.2017, 06:48
Всем привет! Контролер отличный, собрал его, пашет на благо акваса :). Недавно добавил управление температурой для охлаждения использую 2 кулера 8см, один на вдув, другой на выдув. Использовал с начала ручное управление с помощью кнопки, что не хорошо. На днях я собрал по схеме автоматическое управление и заметил кулера пищат, при малых и средних оборотах, перестают только после того как на макс переключишь. По гуглив я понял что это из за того что используется шим катушки резонируют.
У кого нибудь есть такая проблема? И как вы её решили?
alex_palace
07.02.2017, 09:14
Всем привет! Контролер отличный, собрал его, пашет на благо акваса :). Недавно добавил управление температурой для охлаждения использую 2 кулера 8см, один на вдув, другой на выдув. Использовал с начала ручное управление с помощью кнопки, что не хорошо. На днях я собрал по схеме автоматическое управление и заметил кулера пищат, при малых и средних оборотах, перестают только после того как на макс переключишь. По гуглив я понял что это из за того что используется шим катушки резонируют.
У кого нибудь есть такая проблема? И как вы её решили?
Поиграйтесь с частотой ШИМ, тише всего работают на 30 гц.
попробуй поставить на выводы куллера электролит примерно 10 - 22 мкФ
полностью не устранит писк на малых оборотах но снизит в разы
Tvister86
08.02.2017, 09:28
Поиграйтесь с частотой ШИМ, тише всего работают на 30 гц.
А можете написать что и куда добавить.
попробуй поставить на выводы куллера электролит примерно 10 - 22 мкФ
полностью не устранит писк на малых оборотах но снизит в разы
Вечером припаяю, потом отпишусь
П.С. Пробовал разные конденсаторы, но особо не дало результата, на некоторых тон менялся но звук все равно противный и слух режет.
Остается дело за сменой частоты ШИМ. Буду гуглить так как с ардуиной слабо знаком.
ya7sergey
09.02.2017, 19:25
А можете написать что и куда добавить.
Приветствую! у себя добавил следующие строки (хотя достаточно одной)
Пищание вентеляторов исчезло без напайки конденсаторов.
void setup()
{
//TCCR0B = TCCR0B & 0b11111000 | 0x01; // устанока частоты шим 32кГц
//TCCR1B = TCCR1B & 0b11111000 | 0x01;
TCCR2B = TCCR2B & 0b11111000 | 0x01;
//TCCR3B = TCCR3B & 0b11111000 | 0x01;
//TCCR4B = TCCR4B & 0b11111000 | 0x01;
ВНИМАНИЕ!!! У меня контроллер собран на Mega 2560. Для оригинальной конструкции надо смотреть даташит на контроллер и определить какой таймер к каким пинам привязан.
Tvister86
10.02.2017, 06:46
Нашел код для ATMEGA328
Взял тут
forum.amperka.ru (http://forum.amperka.ru/threads/%D0%A3%D0%B2%D0%B5%D0%BB%D0%B8%D1%87%D0%B5%D0%BD%D 0%B8%D0%B5-%D1%87%D0%B0%D1%81%D1%82%D0%BE%D1%82%D1%8B-%D0%A8%D0%98%D0%9C.6834/)
Частота ШИМ'а на ногах 5 и 6:
Код:
Константа Делитель Частота(Гц)
0x01 1 62500
0x02 8 7812.5
0x03 64 976.5625
0x04 256 244.140625
0x05 1024 61.03515625
В Setup пишем строчку: TCCR0B = TCCR0B & 0b11111000 | <Константа>;
, где <Константа> - значение из таблицы без угловых скобок.
Частота ШИМ'а на ногах 9 и 10:
Код:
Константа Делитель Частота(Гц)
0x01 1 31250
0x02 8 3906.25
0x03 64 488.28125
0x04 256 122.0703125
0x05 1024 30.517578125
В Setup пишем строчку: TCCR1B = TCCR1B & 0b11111000 | <Константа>;
Частота ШИМ'а на ногах 11 и 3:
Код:
Константа Делитель Частота(Гц)
0x01 1 31250
0x02 8 3906.25
0x03 32 976.5625
0x04 64 488.28125
0x05 128 244.140625
0x06 256 122.0703125
0x07 1024 30.517578125
В Setup пишем строчку: TCCR2B = TCCR2B & 0b11111000 | <Константа>;
Все тайминги и частоты приведены для штатной частоты 16Мгц микроконтроллера ATMEGA328
Т.е. я получил частоту ШИМ'а на 9, 10, 11 и 3 ногах около 4кГц путем добавления в секцию инциализации двух строк:
Код:
void setup()
{
TCCR1B = TCCR1B & 0b11111000 | 0x02;
TCCR2B = TCCR2B & 0b11111000 | 0x02;
...
}
alex_palace
10.02.2017, 12:09
Кстати.. чисто вспомнилось :) Есть почти доделанный контроллер из этой темы :) Если кому интересно можно договориться т.к у меня уже долго работает на цветном тфт с тачскрином.
Доброго Всем дня. Пытаюсь повторить устройство, но со временем полная ерунда (модуль DS1307) при прошивке выдает время 27:85. Строки с установкой времени раскомментировал прошил и снова закомментировал, после сделал очистку как указывали в посте №361
// Init EEPROM
for(int e = 0; e < 2047; e++) EEPROM.write(e,0);
результат 27:85 и не движется!!!
да еще и дата 85.85.2165 день недели 255, при попытке изменить в ручную цифры меняются, но при выходе снова слетают на исходные. Подскажите где чего менять, в прошивку правки не вносил.
alex_palace
12.03.2017, 17:18
90% дохлый таймер.
ya7sergey
17.03.2017, 19:58
А кто нибудь решил вопрос с восстановлением работоспособности контроллера по расписанию после сброса питания? Ранее товарищ из Болгарии предлагал кусок кода, но он не работоспособен. Если у кого есть рабочий вариант поделитесь.
AquaGomel
17.03.2017, 21:16
А кто нибудь решил вопрос с восстановлением работоспособности контроллера по расписанию после сброса питания? Ранее товарищ из Болгарии предлагал кусок кода, но он не работоспособен. Если у кого есть рабочий вариант поделитесь.
А как понять восстановление работоспособности? Вы имеете ввиду что бы при запуске загрузились все настройки тамеры и.т.п.? Или есть какая-то специфическая функция у данной разработки?
ya7sergey
18.03.2017, 07:15
А как понять восстановление работоспособности? Вы имеете ввиду что бы при запуске загрузились все настройки тамеры и.т.п.? Или есть какая-то специфическая функция у данной разработки?
именно это и имел ввиду. Чтобы после подачи питания контроллер считывал установки каналов из памяти и начанал работать по ним, а не по мифическому своему режиму поддержания жизнидеятельности.
Смотрел реализацию данной функции в других проектах, но мои познания в прогаммтровании не позволяют это перенести на данный проект, по этому прошу Вашей помощи.
mashenkaM
18.03.2017, 10:39
ya7sergey, Вам сюда http://arduino.ru/Reference/Library/EEPROM
По факту там две команды, считать и записать в номер ячейки которую вы выберите.
Иногда бывает, что значение не влазит в одну ячейку памяти, тогда её нужно разбивать на две через сдвиг.
Немного подсказок:
1) сначала сбросите все значения в EEPROM в ноль через цикл проще всего, по умолчанию там 255 и можно при считывании получить какую то глупость, ноль всё таки безопаснее.
2) Напишите себе в программе кусочек кода инициализации всех переменных, его надо выполнять где то в начале старта программы и не забывайте сохранять параметры в память при их изменении.
AquaGomel
20.03.2017, 07:26
ya7sergey, Вам сюда http://arduino.ru/Reference/Library/EEPROM
По факту там две команды, считать и записать в номер ячейки которую вы выберите.
Иногда бывает, что значение не влазит в одну ячейку памяти, тогда её нужно разбивать на две через сдвиг.
Немного подсказок:
1) сначала сбросите все значения в EEPROM в ноль через цикл проще всего, по умолчанию там 255 и можно при считывании получить какую то глупость, ноль всё таки безопаснее.
2) Напишите себе в программе кусочек кода инициализации всех переменных, его надо выполнять где то в начале старта программы и не забывайте сохранять параметры в память при их изменении.
Абсолютно верно! EEPROM вам в помощь. От себя добавлю что сохранение настроек нужно производить на лету. Т.е. в момент их изменения, и при записи параметров производить проверку на изменение записываемого параметра. Так как Arduino и иже с ним имеют ограниченное количество перезаписи ячеек памяти, хотя оно достаточно велико (но меньше чем у обычной флешки), видел уникальные примеры где в цикле люди писали значения в EEPROM без проверки данных.
ya7sergey
20.03.2017, 12:52
Абсолютно верно! EEPROM вам в помощь. От себя добавлю что сохранение настроек нужно производить на лету. Т.е. в момент их изменения, и при записи параметров производить проверку на изменение записываемого параметра. Так как Arduino и иже с ним имеют ограниченное количество перезаписи ячеек памяти, хотя оно достаточно велико (но меньше чем у обычной флешки), видел уникальные примеры где в цикле люди писали значения в EEPROM без проверки данных.
Спасибо что откликнулись. Но я просил не мурзилку-самоучитель, а поделитья рабочим кодом, т.к. "мои познания в прогаммтровании не позволяют это перенести на данный проект". Исходя из всего выше прочитанного делаю вывод, что ЗНАЧИТЕЛЬНО проще подключить контроллер через ИБП.
mashenkaM
20.03.2017, 17:12
ya7sergey, скорее всего вникал в код только ТС, поэтому спрашивайте у него. Остальные как и Вы только собирали, а кто умеет программировать писали свою программу и под свои требования.
Ардуина на многое способна, но уже отходит на второй план, поэтому поддержка пользователей навряд ли будет :)
mashenkaM
20.03.2017, 17:20
Между прочим, заглянула в программу и ТС использует там EEPROM.
В начале программы и по ходу выполнения происходят чтения и записи в память.
Что бы понять что именно не так, ТСу понадобится от вас больше информации, какие значения именно обнуляются при потери питания?
ya7sergey
20.03.2017, 17:51
Между прочим, заглянула в программу и ТС использует там EEPROM.
В начале программы и по ходу выполнения происходят чтения и записи в память.
Что бы понять что именно не так, ТСу понадобится от вас больше информации, какие значения именно обнуляются при потери питания?
ТС сам в курсе что обнуляется в его контроллере.
AquaGomel
21.03.2017, 08:12
Спасибо что откликнулись. Но я просил не мурзилку-самоучитель, а поделитья рабочим кодом, т.к. "мои познания в прогаммтровании не позволяют это перенести на данный проект". Исходя из всего выше прочитанного делаю вывод, что ЗНАЧИТЕЛЬНО проще подключить контроллер через ИБП.Простите не совсем понял, вам нужен пример рабочего кода как записать и считать данные из EEPROM? Или вам нужна прошивка для контроллера с уже добавленным функционалом? Если первое то пожалуйста:
void SavePrefereseToEPPROM() {
if ((bool) EEPROM.read(NTP_ADDR) != NTPState)
EEPROM.write(NTPState, NTP_ADDR);
if ((bool) EEPROM.read(AUTO_CONNCT_ADDR) != WIFI_ENABLE)
EEPROM.write(WIFI_ENABLE, AUTO_CONNCT_ADDR);
if ((bool) EEPROM.read(MAX_TIMERS_ADDR) != MAX_TIMERS)
EEPROM.write(MAX_TIMERS, MAX_TIMERS_ADDR);
if ((bool) EEPROM.read(MAX_TEMP_SENSOR_ADDR) != MAX_TEMP_SENSOR)
EEPROM.write(MAX_TEMP_SENSOR, MAX_TEMP_SENSOR_ADDR);
}
void LoadPreferenceFromEPPROM() {
NTPState = (bool) EEPROM.read(NTP_ADDR);
WIFI_ENABLE = (bool) EEPROM.read(AUTO_CONNCT_ADDR);
MAX_TIMERS = (bool) EEPROM.read(MAX_TIMERS_ADDR);
MAX_TEMP_SENSOR = (bool) EEPROM.read(MAX_TEMP_SENSOR_ADDR);
}
А если второе то просите ТС запилить этот функционал... По поводу ИБП это утопия...
Витенька
21.03.2017, 09:20
Ардуина на многое способна, но уже отходит на второй план
Добрый День! А что же на данное время на первом месте заместь ардуино?
Витенька
21.03.2017, 09:33
ya7sergey Вы внимательно, хорошенько всё обдумайте и потом может поймёте что в этом коде всё сделано по уму. Как вариант, старт контроллера после отключения электроэнергии, а вас дома нет, в коде как раз сделано так что запустится фильтр и компрессор, свет при вашем отсутствии и после простоя оборудования не важен, так же если вдруг произойдет отключение среди ночи потом после включения электроэнергии вам нужен не слабый торшер в виде аквариума посреди ночи? Ну а вообще в коде можно всё переколбасить на своё хочу но там ещё раз повторюсь всё и так умно подогнано как для основных функций контроллера.
mashenkaM
21.03.2017, 09:36
Витенька, если по мощности и возможностям то есть более навороченные типа Raspberry Pi или другие на базе ARM, правда цены на них кусь-кусь :)
А по той же цене и того же качества сейчас вперёд идёт ESP8266, в частности 12 модели, а WEMOS (https://www.wemos.cc/product/d1-mini.html) вобще практически создан для нас.
При той же цене что и UNO или Nano получаем больше частоту, больше памяти + WiFi.
mashenkaM
21.03.2017, 09:40
ТС сам в курсе что обнуляется в его контроллере.
Вы не обижайтесь пожалуйста, но как только прочла ваш пост, сразу вспомнилась топ цитата с баша:
<Elena> Алексей, ваша программа опять не работает! Достало уже! Я буду жаловаться.
<polecat> Добрый день, в чём выражается проблема?
<Elena> Не парьте мозги, программа не работает! Исправьте! У меня работа стоит!
<polecat> Для того чтобы исправить программу, для начала мне нужно узнать, что вы понимаете под проблемой.
<Elena> У меня уже очередь в 10 человек!
<polecat> Это проблема?
<Elena> Проблема!
<polecat> Это проблема моей программы?
<Elena> Какая разница? Вы будете исправлять программу?
<polecat> Буду, но вы можете хотя бы пару раз ответить на поставленные вопросы?
<Elena> Я вам оракул, что ли на вопросы отвечать? Я в вашей программе ничего не понимаю.
<polecat> Скажите только, что именно работает не так.
<Elena> Ну вы же писали программу!
<polecat> ..., УБЕЙ СЕБЯ!
<Elena> ???
<polecat> УБЕЙ СЕБЯ, ...!
<Elena> Попрошу не хамить!
<polecat> СЛУШАЙ МЕНЯ, ..., ОБЩАТЬСЯ БУДУ ТОЛЬКО С ВАШИМ ДИРЕКТОРОМ, А ТЫ ИДИ НА ..., И ПУСТЬ ТЕБЯ ТАМ ... МЕДВЕДИ!!!
<Elena> Алексей, это Андрей Сергеевич! Программу только что проверил - всё работает. С твой путевки валяемся падсталом, похоже Лену туда и отправим, снабдив вазелином. ;)
Витенька
21.03.2017, 09:43
Спасибо Огромное Машенька! Пойду изучать новшества в которые Вы меня ткнули носом.:)code101
mashenkaM
21.03.2017, 09:49
Я глубоко не вникала в код ТС, потому что он мало читабелен :)
Я бы посоветовала почитать книгу "Чистый код. Создание, анализ и рефакторинг. Библиотека программиста" - Роберт Мартин, Мика Мартин. Много даст изменит взгляд на код...
НО что там ТС мог не дописать?
На старте считываем все значения с EEPROM, в ходе программы по мере необходимости их сохраняем и всё!!!
При пропаже света, внутренние часы идут дальше, потому что есть своя батарейка. В отличие от мех. таймеров, которые будут идти только после включения света.
Появился свет - контроллер проверил нужно ли ему что либо включить или выключить, рассчитывает значение яркости освещение (0-100%) и всё работает как часики :)
mashenkaM
21.03.2017, 09:54
Спасибо Огромное Машенька! Пойду изучать новшества в которые Вы меня ткнули носом.:)code101
Только учтите что логика там вся на 3.3 вольта, хотя практически все датчики работают на этом напряжении (реле, часы, температурные датчики и т.д.)
Там есть конечно свои среды программирования для ESP8266, но самое приятное, что она полностью понимает обычный код для Arduino, разве что с некоторым нюансами. Есть интересные приколы - в Arduino delay останавливает программу на некоторое время, а в ESP8266 нет :), она будет заниматься своими делами и через нужно время вернётся к нужной вам функции.
НО я правда сама только получила недавно сей девайс, хотя дополнительно мучаю 01 версию :) Муж допаял мне дополнительно 3 выхода, и теперь их хватит не 1 аквариу :)
Витенька
21.03.2017, 09:58
Именно так всё Машенька, все настройки после отключения сохранятся и всё продолжится по заложенному плану, просто, как на мой взгляд ТС изначально заложил в код так называемый аварийный старт после отключения и при включении запустятся только так называемые функции жизнеобеспечения фильтр и возду, можно домутить туда и свет и всё что угодно, но ... Делал я все эти эксперименты и в результате этот аварийный старт оставил как есть.
Витенька
21.03.2017, 10:03
В программировании и я валянок, всё что мог делал методом так сказать тыка, так что то что Вы мне Машенька рассказали для меня тёоооооооомный лес, и всёравно Огромное Спасибо Вам, буду поинтересоваться.code101
ya7sergey
21.03.2017, 10:48
Вы не обижайтесь пожалуйста, но как только прочла ваш пост, сразу вспомнилась топ цитата с баша:
<Elena> Алексей, ваша программа опять не работает! Достало уже! Я буду жаловаться.
<polecat> Добрый день, в чём выражается проблема?
<Elena> Не парьте мозги, программа не работает! Исправьте! У меня работа стоит!
<polecat> Для того чтобы исправить программу, для начала мне нужно узнать, что вы понимаете под проблемой.
<Elena> У меня уже очередь в 10 человек!
<polecat> Это проблема?
<Elena> Проблема!
<polecat> Это проблема моей программы?
<Elena> Какая разница? Вы будете исправлять программу?
<polecat> Буду, но вы можете хотя бы пару раз ответить на поставленные вопросы?
<Elena> Я вам оракул, что ли на вопросы отвечать? Я в вашей программе ничего не понимаю.
<polecat> Скажите только, что именно работает не так.
<Elena> Ну вы же писали программу!
<polecat> ..., УБЕЙ СЕБЯ!
<Elena> ???
<polecat> УБЕЙ СЕБЯ, ...!
<Elena> Попрошу не хамить!
<polecat> СЛУШАЙ МЕНЯ, ..., ОБЩАТЬСЯ БУДУ ТОЛЬКО С ВАШИМ ДИРЕКТОРОМ, А ТЫ ИДИ НА ..., И ПУСТЬ ТЕБЯ ТАМ ... МЕДВЕДИ!!!
<Elena> Алексей, это Андрей Сергеевич! Программу только что проверил - всё работает. С твой путевки валяемся падсталом, похоже Лену туда и отправим, снабдив вазелином. ;)
Не понял вашего сарказма. По моему я четко сформулировал свой вопрос по контроллеру. Ответ, который меня устраивает, я не получил. Решил проблему аппаратно с помощью ИБП. Если Вы хотите со мной пообщаться еще - прошу в личку.
Витенька
21.03.2017, 11:02
ya7sergey
А что именно вас не устраивает в коде, или ...?
AquaGomel
21.03.2017, 11:07
ya7sergey Вы внимательно, хорошенько всё обдумайте и потом может поймёте что в этом коде всё сделано по уму. Как вариант, старт контроллера после отключения электроэнергии, а вас дома нет, в коде как раз сделано так что запустится фильтр и компрессор, свет при вашем отсутствии и после простоя оборудования не важен, так же если вдруг произойдет отключение среди ночи потом после включения электроэнергии вам нужен не слабый торшер в виде аквариума посреди ночи? Ну а вообще в коде можно всё переколбасить на своё хочу но там ещё раз повторюсь всё и так умно подогнано как для основных функций контроллера.
По уму это когда контроллер восстанавливает свое состояние к моменту включения с учетом изменившихся параметров (времени, температуры, ПШ и.т.п.) все остальное это от лукавого. Что касается текущего проекта, открываем скетч и смотрим, сразу в Setup(). Из настроек восстанавливаются :
aquaT = EEPROM.read(2); // Требуемая температура воды
minCool = EEPROM.read(3); // минимальные обороты кулера для вентиляции крышки и охлаждения ламп
maxCool = EEPROM.read(4); // максимальные обороты для охлаждения воды
Простите а каналы? Изначально они забиваются ВКЛ\ВЫКЛ программно!!! Т.е. я жестко привязан к номеру розетки... А таймеры? А прочие настройки? А если начать читать код, то что-то поправить там это просто ппц...Как писали выше он не читаемый, тут месяц только рефакторить нужно будет. Эти магические цифры в адресах, если ТС попросить через полгода что-то поправить я уверен что это будет с таким скрипом происходить и с таким количеством багов, что проще заново написать... И судя по тому что в скетче уже более 1700 строк то место для прошивки там уже не особо много осталось, и если вкидывать еще код который доведет до ума все о чем вы пишите то не факт что оно влезет в кристалл ИМХО.
ya7sergey
21.03.2017, 11:08
ya7sergey
А что именно вас не устраивает в коде, или ...?
См. пост #875
Витенька
21.03.2017, 11:12
Так контроллер и так стартанет и все настройки сохранятся в том виде какие вы сделали, ничего перенастривать ненужно будет.
ya7sergey
21.03.2017, 11:37
По уму это когда контроллер восстанавливает свое состояние к моменту включения с учетом изменившихся параметров (времени, температуры, ПШ и.т.п.) все остальное это от лукавого. Что касается текущего проекта, открываем скетч и смотрим, сразу в Setup(). Из настроек восстанавливаются :
aquaT = EEPROM.read(2); // Требуемая температура воды
minCool = EEPROM.read(3); // минимальные обороты кулера для вентиляции крышки и охлаждения ламп
maxCool = EEPROM.read(4); // максимальные обороты для охлаждения воды
Простите а каналы? Изначально они забиваются ВКЛ\ВЫКЛ программно!!! Т.е. я жестко привязан к номеру розетки... А таймеры? А прочие настройки? А если начать читать код, то что-то поправить там это просто ппц...Как писали выше он не читаемый, тут месяц только рефакторить нужно будет. Эти магические цифры в адресах, если ТС попросить через полгода что-то поправить я уверен что это будет с таким скрипом происходить и с таким количеством багов, что проще заново написать... И судя по тому что в скетче уже более 1700 строк то место для прошивки там уже не особо много осталось, и если вкидывать еще код который доведет до ума все о чем вы пишите то не факт что оно влезет в кристалл ИМХО.
Согласен с вами на все 100% с первой до последней буквы. За исключением одного: размер кода меня не особо волнует. У меня проект портирован на Мегу2560. Не благодарное это дело, перепиливать чужой код, да еще на столько глобально...
mashenkaM
21.03.2017, 11:52
И судя по тому что в скетче уже более 1700 строк то место для прошивки там уже не особо много осталось, и если вкидывать еще код который доведет до ума все о чем вы пишите то не факт что оно влезет в кристалл ИМХО.
Ну это уже следующая ступень просветления!
У меня код для НАНО составляет где то 6000+ строк (2000+ их них или больше это код многоуровневого меню)
В какой то момент у меня просто закончилась оператива, а сколько ещё всего хотелось... Вот тогда я начала перерезать и оптимизировать код где только можно. Код в 100 строк превращался в 60 и изменялись области видимости переменных. В общем из загрузки в 90% оперативы получилось 55%, а размер самой программы тоже уменьшился процентов на 20-30.
НО для ATmega2560 самое интересное, что частоты кристалла, размер оперативы и флешки хватает что бы НЕ оптимизировать код. :)
Жаль что это всё нужно будет разбирать, потому что хочу собрать всё на ESP8266 и экран с меня уже не нужен будет, зато написанные библиотеки для датчиков и таймеров будут работать и дальше, на то они и библиотеки :)
AquaGomel
21.03.2017, 12:01
Согласен с вами на все 100% с первой до последней буквы. За исключением одного: размер кода меня не особо волнует. У меня проект портирован на Мегу2560. Не благодарное это дело, перепиливать чужой код, да еще на столько глобально...
Даже больше скажу, чуток поковырявшись по коду, нашел какие-то команды на восстановление чего-то куда-то... Но они разбросаны по всему коду, в каждом методе есть записи по типу
EEPROM.write(alertAdr+1,((EEPROM.read(alertAdr+1)&B00011111)^(curLoad<<5))); // сохраняем номер нагрузки Но даже если учесть что все же что-то и сохраняется и восстанавливается, то просто понять что и куда не реально... И проблема связана с просто с ошибкой, то легче от этого не становиться.
Далее в коде четко привязка к свету, кулерам, нагревателям и.т.п. Это в корне не верно, есть 8 каналов (наверное) и не должно быть никаких указателей на то что висит на этих каналах. У каждого конфигурация аквариума разная, и получается что у кого-то свет занимает 4 канала а у кого-то 1.
Команды включения и выключения
digitalWrite(EXT_HEATER_PIN, HIGH);
digitalWrite(EXT_HEATER_PIN, LOW);
В каждом методе по 20 штук. Как это все дебажить? Как определить где что включает где что выключает?
// перечеркиваем не активные таймера
if(!(EEPROM.read(offf+(j-1)*4)&B10000000)){
myGLCD.drawLine(0,vy+5,83,vy+5);
}
Осмысленные константы вообще не используются. Т.е. выражение не несет никакой смысловой логики для тех кто будет читать этот код пытаясь его править. + В проекте используются куски стороннего кода, который просто где-то был взят к примеру метод float getTemp(), в котором уже есть нормальный подход к написанию кода с комментариями. Если перед глазами есть пример как надо, можно же было привести остальной проект к такому же виду?
Так можно продолжать бесконечно. Конечно можно сказать что это чей-то труд, что человек потратил время и.т.п. Это все понятно. Если это все грамотно работало бы, и человек выложил тупо hex файл, который все прошили нашли ошибки отписали в обратку, ТС исправил и все довольны. Но тут лежит исходник, я так понимаю предлагается исправлять ошибки всем тем кто хочет повторить этот контроллер.... ИМХО но это нереально! Прошу прощение если задел чьи-то чувства и испортил настроение, я не хотел.
Витенька
21.03.2017, 12:30
К тому всё и ведётся, никто этот код переделывать не будет, по крайней мере задаром, лучше тогда браться и писать всё под себя, или искать исполнителя но и за это на халяву никто не возьмётся.
mashenkaM
21.03.2017, 13:29
AquaGomel, спокойствие, только спокойствие :)
Мы сами так писали пару лет назад, я так точно :) Потом после пары книжек у меня настало просветление и всё равно местами мне мой код не нравится, хочется его сделать более компактным и лаконичным.
Витенька, как я писала выше, интерес и возможности могут быть только у автора текста :) Всем остальным это головная боль не нужна.
Витенька
21.03.2017, 14:17
Общался я с автором он сказал давно это было ничего уже не помнит и вообще он как его написал сразу чем то другим занялся. А Вы Машенька правы, код рабочий и мне тоже нравится правда есть пара нюансов которые тоже хотелось бы подправить но ...
mashenkaM
21.03.2017, 15:09
Смотрела информацию что бы закупить bt139-600 и оптосимистры МОСхххх.
Оказывается что в схеме ТС стоит МОС3023, а он оказывается без обнаружения нуля (кто не знает, это позволяет переключить симистор в момент отсутствия напряжения, что значительно уменьшает помехи).
Думаю нам хорошо подойдёт серия МОС304Х:
http://www.myradiolib.ru/wp-content/uploads/2012/07/table.jpg
AquaGomel
21.03.2017, 15:34
Я выбирал MOC3041. Может кто подскажет какой мощности должны быть резисторы 360 и 440 по 0.5W?
Витенька
21.03.2017, 16:50
R7 и 9 0,125-0,25 хватит,R8 1 ватт
mashenkaM
22.03.2017, 11:12
я присматриваюсь к MOC3043 вместо MOC3041.
У MOC3043 ток срабатывания в три раза меньше - 5 мА, вместо 15мА для MOC3041.
Зачем нам больший ток, я правильно мыслю? :)
Хотя с учётом того что мах ток у выхода это 40 мА, разница будет только в номинале резистора.
Витенька
22.03.2017, 12:06
Зачем нам больший ток, я правильно мыслю? :)
:):002:code30code60code101
mashenkaM
22.03.2017, 12:34
Что то натворили наши и бесплатной доставки с Али уже практически нет, к посылке нужно добавлять где то 2 доллара и теперь не очень удобно заказывать.
10 ВТ139 и 10 МС3041 выходит где то 155 грн :( Дешевле чем брать такое количества у нас, но на 2 комплекта я тут потрачу где то 60 грн, а 90 просто будут лежать в столе.
AquaGomel, Машенька и все.
По поводу читабельности и кода и т.д. - без комментариев.
по поводу восстановления состояния каналов и.д.
В коде не заложена возможность восстановления состояния.
Как по мне идея не правильна.
Свет отключился днем (подавали СО2) - допустим электричество отсутствовало 2 дня и появилось ночью - в банке недостаток кислорода, а мы восстановим работу каналов и добавим туда СО2 - что на выходе?
Именно по этому он работает так как работает - и я спокойно уезжаю на 2 недели и не переживаю.
я не продаю контроллер - сделал для себя под свои нужды, выложил свои наработки в том виде как есть, так что критика только по делу - или предложите улучшения.
Если хочется сделать восстановление параметров на текущее время
Все просто прогоните в цикле обработчик событий за последние 24 часа до текущего времени.
Этот вариант также позволит не портить ЕЕПРОМ (там ограниченное количество циклов)
По поводу личного участия в переработке
к сожалению не планирую - много работы - а контроллер устраивает на все 100%
Одно могу сказать возможно в ближайшие месяцы будет новый проект контроллера для морского аквариума с LED светом, а это проект у меня трудится на пресняке и пока дорабатываться не будет.
Будет новый OLED экран но парадигма проекта сохранится - максимум удовольствия за 3 копейки ;)
Витенька
22.03.2017, 13:27
Одно могу сказать возможно в ближайшие месяцы будет новый проект контроллера
Ждёмс с нетерпением!code33
AQUAPLANNER
22.03.2017, 13:56
mashenkaM, не всё так радужно с триаками на силовых каналах, как вы считаете. Вы вкурсе что bt 139 при подключении нагрузки до 100вт будет иметь температуру в минимум 60 градусов? Это довольно гарячо. Теперь представьте если подключить аквариумную грелку на 300вт. Уже понадобится радиатор и размер у радиатора будет приличный. От обычной клацалки вы никуда не уйдете ( если мы говорим об адекватных ценах на готовый контроллер). На моих контроллерах нет никаких проблем с подключением киловаттных нагрузок и никаких проблем с дребежанием контактов не наблюдается. Подружите ПО с железом и будет вам счастье :)
mashenkaM
22.03.2017, 14:03
AlexVOK, зачем подавать ночью СО2 когда нет света?
Много чего хотела написать, но я поняла что это всё недоработки или непонимания сути программирования или происходящих процессов, но тут как вы говорили - без комментариев :)
Но в описании необходимо указываться недоработки или слабые места, потому что люди покупают детали, собирают, тратят время и деньги, а в итоге получают то, что сложно назвать полноценным акваконтроллером, потому что он даже пропажу электроэнергии не может пережить, а если уже боятся использовать ЕЕPROM, что бы он бедняжка не устал, то может и кристалл не нагружать, а то вдруг перетрудится :)
mashenkaM
22.03.2017, 14:08
AQUAPLANNER, с bt 139 не сталкивалась, но тут все активно рекламируют их, вот и я заинтересовалась...
Твердотельное тоже скорее всего будет грется, но у меня как то руки не дошли проверить на своей 300 Ваттной грелке :(
Вроде по фото у вас обычные реле стоят или я не туда смотрела?
mashenkaM, c удовольствием посмотрим на Ваше решение
С правильно структурированным, форматированным, коментированным кодом.
а по поводу подачи СО2 ночью
я показал, что нельзя сохранять состояния и потом просто их восстанавливать на старте. Только и всего.
AQUAPLANNER, bt 139 использую достаточно часто.
до 100-150Вт без радиатора вполне применимо,
Данный контроллер как раз управляет грелкой 300Вт
радиатор алюминиевая пластинка примерно 6х4 см холодная
Так что использовать вполне можно
Витенька
22.03.2017, 14:36
Вы вкурсе что bt 139 при подключении нагрузки до 100вт будет иметь температуру в минимум 60 градусов
Шо то тут не то, или я йолоп, или законы отменили а меня не предупредили.:003: Сделал паяльную станцию и там та же схема на симисторе для управления феном, фен 650 ватт, https://voron.ua/catalog/017272 радиатор на симисторе (на фотке) чуть тёплый.
http://i.piccy.info/i9/bf9c0404c8fe7e90e93990af79b8fccb/1490186121/92601/1130601/Moia_plata_s_Pro_Myny1_kopyia.jpg
В одном немного не договорил, AquaGomel спрашивал о мощности сопротивлений, так вот в канале для водогрейки сопротивление R 8 лучше на 2 ватта поставить.
mashenkaM
22.03.2017, 16:33
mashenkaM, c удовольствием посмотрим на Ваше решение
С правильно структурированным, форматированным, коментированным кодом.
К сожалению мой код не кому уже не пригодится, хотя вот библиотеки или функции измерения температуры (да они есть стандартные, но этот мерзкий delay() не по феншую...) и определение состояния и яркости освещения для сколько угодно каналов тем кто будет писать новые программы возможно будут полезны.
И хорошо написанному коду комментарии не нужны, комментарии нужны если код не много по дебильному написан. Добкин (С) :)
P.S. Если вам интересны советы по коду, то мы можем Вам помочь, вам же проще самому будет писать и править код, но нам кажется вы не сильно хотите их слышать :)
mashenkaM
22.03.2017, 16:41
Шо то тут не то, или я йолоп, или законы отменили а меня не предупредили.
....
В одном немного не договорил, AquaGomel спрашивал о мощности сопротивлений, так вот в канале для водогрейки сопротивление R 8 лучше на 2 ватта поставить.
Если я правильно понимаю схему, то R8 всего то ограничивает ток через симистор в МОСе, и в принципе абсолютно не должен зависеть от нагрузки. Напряжение в сети допустим постоянное, свет с ИК светодиода тоже постоянен, так чего бы R8 зависеть от нагрузки?
Почитала по форумах про эту схему, там и 0,25Ватт хватит, всё что больше это или неправильная схема или ВТ139 глючный.
AquaGomel
22.03.2017, 17:06
По поводу логики работы устройства, еще раз подробно расскажу почему такой подход в корне не верен. Во первых такой программной логикой вы заставляете пользователей привязывать свое оборудование к конкретной розетке. Т.е. как я писал выше легко может быть ситуация что у человека нет компрессора, зато есть дополнительная галогенная лампа на 300W к примеру. Которую ему из-за того что все розетки заняты приходится воткнуть в ту розетку которая включается автоматически. Результат отключения ночью света думаю не надо объяснять?
Далее что бы не было вот таких вот условий и привязок к каналам оборудования, всего-лишь нужно было сделать проверку состояния таймеров при включении контроллера. Т.е. к примеру пропал у вас свет, а в это время у вас работал СО2, прошло, как вы сказали какое-то время, и к примеру ночью свет появился. После этого на старте контроллера (в методе Setup()) мы делаем проверку по времени, температуре, ПШ, еще чего-то... И если согласно заданным условиям таймеров и других настроек, у вас канал должен быть включен или выключен, помечаем его как включенный или выключенный (я вам даже больше скажу, нужно помечать кем он был включен, каким таймером, или температурой или ПШ, это важно!!!), далее в цикле (loop()) мы просто проверяем, состояние этого канала, и в отдельном методе включаем или выключаем его. У вас никогда не будет зависимости работы канала от того когда выключился и когда включился контроллер. Далее должен быть приоритет включения выключения/выключения канала, потому как может быть ситуация когда вы к примеру можете назначить на канал включение по таймеру и по температуре, у вас будут замерзать рыбы потому как один таймер будет конфликтовать с другим и.т.п. Все эти мелочи нужно стараться учесть, причем учесть так что бы пользователь получил максимальную эффективность, от вашего устройства. К сожалению в данном примере кода это уже практически не реально сделать. А так как вы насколько понял делаете новый контроллер то у вас есть все шансы, написать код правильно!!! Просто прислушайтесь к советам. Я ни сколько не критикую ваш проект, тем более что вам удалось его довести до стадии когда люди повторяют его. Это уже отличный показатель успеха. Но все остальное сводит на нет его.
mashenkaM
22.03.2017, 17:35
AquaGomel, Вы не много перегибайте, все мы делаем и пишем контроллеры в первую очередь для себя!!! И делаем всё так как удобно и выгодно именно для своей конфигурации. Те кто делают из этого бизнес, те заботятся об универсальности и т.д..
Но не мы, да и это не нужно, если мне нужен один канал для лент светодиодов, то я буду делать только один, и мне без разницы что у кого то 4 канала + ночная подсветка, или дозаторы удо - это не моя головная боль...
Поэтому самые простые контроллеры типа как у Сергій М просты и подходят большинству, но как только начинают появляться дополнительные фишки универсальность сразу падает.
Живой пример это подключение нескольких датчиков температуры, да шина 1-Wire позволяет подключить около 100 таких датчиков на один выход, но обращение к ним происходят по адресам, для себя я могу себе такое позволить, я в любой момент заменю сгоревший датчик и пропишу его новый адрес в код, когда 4 датчика это экономия 3 выходов. Но для публики которая не понимает в программировании нужно отдельно втыкать каждый датчик в отдельный выход.
Но суть вашего сообщения поддерживаю, каждый блок нужно дописывать до конца и ума, просчитывая все варианты развития событий, так что бы ни когда к нему не возвращаться.
P.S.: Всё не терпится посмотреть ваш код Ардуинки :) Может есть какие интересные подходы у Вас ...
Витенька
22.03.2017, 18:06
Если я правильно понимаю схему, то R8 всего то ограничивает ток через симистор в МОСе, и в принципе абсолютно не должен зависеть от нагрузки. Напряжение в сети допустим постоянное, свет с ИК светодиода тоже постоянен, так чего бы R8 зависеть от нагрузки?
Почитала по форумах про эту схему, там и 0,25Ватт хватит, всё что больше это или неправильная схема или ВТ139 глючный.
Добрый Вечер Машенька! Снова я протупил?:003: Ващще как я понял из схемы симисторные блоки это вместо механических релюшек для нагрузок 220 вольт а не для постоянки, а для постоянных напряжений там на мосфетах блоки представлены.:)
http://i.piccy.info/i9/9af9e51f723765d96eb418703092028d/1490198709/176987/1130601/aqua_controll_sch.jpg
mashenkaM
22.03.2017, 18:38
Добрый Вечер, Витенька! :) А причём тут способ питания нагрузки к моему посту? Если мы рассматривает симистор, то понятное дело что нагрузка работает на переменном напряжение :) Что вы хотели этим сказать?
Витенька
22.03.2017, 18:56
Почитала по форумах про эту схему, там и 0,25Ватт хватит, всё что больше это или неправильная схема или ВТ139 глючный.
Не спорю с Вами, Вы мастер своего дела, для контроллера симисторные реле пока ещё в процессе сборки, я "плясал" от той же паяльной станции, схема симисторного блока такая же но резистор который в контроллере R8 там применен 2 ватта и греется он прилично в то время как симистор почти не греется.
Витенька
22.03.2017, 19:00
И! Уже собрано четыре таких же паялки и у всех тот же резистор греется, значит все симисторы глючные.
AquaGomel
22.03.2017, 19:28
Живой пример это подключение нескольких датчиков температуры, да шина 1-Wire позволяет подключить около 100 таких датчиков на один выход, но обращение к ним происходят по адресам, для себя я могу себе такое позволить, я в любой момент заменю сгоревший датчик и пропишу его новый адрес в код, когда 4 датчика это экономия 3 выходов. Но для публики которая не понимает в программировании нужно отдельно втыкать каждый датчик в отдельный выход.
Чего-чего? :) Я даже захотел взглянуть на это... Либо я не правильно вас понял, либо вы прописываете адреса датчиков в коде? Оо И в догонку к примеру что будет в вашем коде (устройстве) если вы к примеру поменяете датчики местами в разъемах?
по поводу нагрева резисторов на симисторной нагрузки. в начале тоже ставил как рекомендуют. Если все правильно собрать то можно и СМД сопротивления ставить (0806) работают без проблем. Испытано как на данной схеме с нагрузками до 150 ватт, так и на других с нагрузками до 2 КВатт. Главное правильно выбрать радиатор для охлаждения 139 симистора.
AquaGomel
23.03.2017, 00:09
Кстати кто-то из собравших контроллер, пробовал оставлять устройство в работе без перезагрузки более чем на 50 дней?
Точно не скажу были ли периоды более 50 дней (то свет выключат) то сам что то поменяешь, специально за год ни разу не перегружал. Конструктивно задумано и реализовано по принципу - выставил и забыл.
Витенька
23.03.2017, 08:17
Конструктивно задумано и реализовано по принципу - выставил и забыл.
Такого же мнения, тем более пришпандерил ещё и автокормушку так что точно шо включил и забыл, можно приходить только медитировать и воду подменивать.:002:
Петко Шкодров
23.03.2017, 10:01
А кто нибудь решил вопрос с восстановлением работоспособности контроллера по расписанию после сброса питания? Ранее товарищ из Болгарии предлагал кусок кода, но он не работоспособен. Если у кого есть рабочий вариант поделитесь.
В каком смысле не работает?
Это только для справки.
этот код
int T_ON = EEPROM.read(a + 1) * 60 + EEPROM.read(a + 2);
int T_OFF = EEPROM.read(a + 3) * 60 + EEPROM.read(a + 4);
int T_cur = time.hour * 60 + time.min;
if (b1 & B10000000) {
if ((1 << (time.dow - 1))&b1) {
boolean tajmer = false;
if (T_ON < T_OFF) //Проверка на таймера в едно денонощие
{
if (T_cur >= T_ON && T_cur < T_OFF)
{
tajmer = true;
} else {
tajmer = false;
}
} else { // ако се е сменил деня
if ((T_cur >= T_ON && T_cur <= 2820) || (T_cur >= 0 && T_cur < T_OFF))
{
tajmer = true;
} else {
tajmer = false;
}
}
ya7sergey
23.03.2017, 10:06
В каком смысле не работает?
Это только для справки.
этот код
int T_ON = EEPROM.read(a + 1) * 60 + EEPROM.read(a + 2);
int T_OFF = EEPROM.read(a + 3) * 60 + EEPROM.read(a + 4);
int T_cur = time.hour * 60 + time.min;
if (b1 & B10000000) {
if ((1 << (time.dow - 1))&b1) {
boolean tajmer = false;
if (T_ON < T_OFF) //Проверка на таймера в едно денонощие
{
if (T_cur >= T_ON && T_cur < T_OFF)
{
tajmer = true;
} else {
tajmer = false;
}
} else { // ако се е сменил деня
if ((T_cur >= T_ON && T_cur <= 2820) || (T_cur >= 0 && T_cur < T_OFF))
{
tajmer = true;
} else {
tajmer = false;
}
}
Кусок кода этот. Но простая вставка вместо оригинального приводит к ошибке компиляции. Можете выложить рабочий скетч, если он у вас есть?
mashenkaM
23.03.2017, 11:04
Чего-чего? :) Я даже захотел взглянуть на это... Либо я не правильно вас понял, либо вы прописываете адреса датчиков в коде? Оо И в догонку к примеру что будет в вашем коде (устройстве) если вы к примеру поменяете датчики местами в разъемах?
Взглянуть? Вы меня расстраиваете :)
Вы что не заглядывали в стандартную библиотеку DallasTemperature.h ?
К датчику температуры можно обратится или по пину к которому он подключен, если он там один, или по адресу, если их там много :)
Я же там написала, что для себя я могу себе это позволить и выиграть 3 выхода, я считаю адрес нового датчика, впишу его в код и проверю правильно ли я сделала и всё работает отлично, но это ДЛЯ СЕБЯ, в массы такое делать бессмысленно :)
//insideThermometer = { 0x28, 0x1D, 0x39, 0x31, 0x2, 0x0, 0x0, 0xF0 };
//outsideThermometer = { 0x28, 0x3F, 0x1C, 0x31, 0x2, 0x0, 0x0, 0x2 };
mashenkaM
23.03.2017, 11:09
Такого же мнения, тем более пришпандерил ещё и автокормушку так что точно шо включил и забыл, можно приходить только медитировать и воду подменивать.:002:
Тоже уже давно специально не перегружала... критических ошибок не обнаружено.
А с автокормушкой пока проблема, я не могу в голове сформировать как её собрать из подручных материалов, что бы и не большая и фракции корма у меня разные...
Витенька
23.03.2017, 12:12
Одна кормушка заводская
http://i.piccy.info/i9/6d9ba76c37a21f88815aa9d4d2c5ffc7/1490263296/22457/1130601/b5de79b58153956d984ade3d81af55d7.jpg
вторая самодельная
http://i.piccy.info/i9/0b0de0bccaa46955e07c6d32e2fee8f9/1490263890/18430/1130601/20161205173748_kopyia.jpg
из так сказать подручных материалов примитивно и без мозговой начинки, одно что только для сыпучих кормов, смешиваю разные гранулированные и хлопья пальцами переминаю вроде работает, если интересуетесь покажу но ковырнуть, долбануть, пайнуть всё же доведётся.:)
AquaGomel, uptime почти 2 года ;)
AquaGomel
23.03.2017, 13:19
AquaGomel, uptime почти 2 года ;)
Просто я смотрю в коде используется millis(), можете вкратце рассказать для чего используется внутренний таймер ардуино а не внешние часы? И вы как-то реагируете на переполнение данных в этом самом millis()?
mashenkaM
23.03.2017, 13:40
Просто я смотрю в коде используется millis(), можете вкратце рассказать для чего используется внутренний таймер ардуино а не внешние часы? И вы как-то реагируете на переполнение данных в этом самом millis()?
Ага, реагирует он ресетом каждые 50+ дней или после 50 дней просто кнопки не работают :)
if((currentTime >= (loopTime + 250))||(key != prev_key)){
....
loopTime = currentTime;
Если после 50 дней в millis() закончится Unsigned long (4,294,967,295) и начнёт отсчитывать с нуля, то ближайшие ближайшее срабатывание возможно через 50 дней, так как loopTime = 4,294,967,290, а все currentTime будут очень долго меньше чем loopTime.
Петко Шкодров
23.03.2017, 19:15
Кусок кода этот. Но простая вставка вместо оригинального приводит к ошибке компиляции. Можете выложить рабочий скетч, если он у вас есть?
Есть много изменений.
Нет удо.Нет режим кормления.
Есть РН управление CO2
Файл LCD5110_Graph вставить "libraries"
#define EXT_FILTER_PIN 17
#define EXT_AIR_PIN 15
#define EXT_HEATER_PIN 16
#define EXT_COOLING_PIN 11
#define EXT_LIGHT_1_PIN 12
#define EXT_LIGHT_2_PIN 13
#define EXT_CO2_PIN 14
#define ALARM_PIN 0
#define PWM_PIN 10
#define Key_PIN 7
LCD5110 myGLCD(8, 7, 6, 4, 5);
OneWire temp(19);
DS1307 rtc(2, 3);
Vitalik_Nic
26.03.2017, 11:00
Прошу помощи, уже все перепробовал, даже не знаю что делать...
Использую платку Arduino PRO Mini ATMEGA328P 5V 16M дисплей красный который на 3,3 вольта, вместо платки DS1307 поставил DS3231
Время показывает температуру тоже, в меню заходит, можно даже настраивать, но в пункт настройки не заходит-несколько полосочек появляется и гаснет экран. Нажимаю кнопку выход включается подсветка а вот на экране пусто.
Витенька
26.03.2017, 15:54
Прошу помощи, уже все перепробовал, даже не знаю что делать...
Использую платку Arduino PRO Mini ATMEGA328P 5V 16M дисплей красный который на 3,3 вольта, вместо платки DS1307 поставил DS3231
Время показывает температуру тоже, в меню заходит, можно даже настраивать, но в пункт настройки не заходит-несколько полосочек появляется и гаснет экран. Нажимаю кнопку выход включается подсветка а вот на экране пусто.
Попробуйте в коде "поиздеваться" над этой строкой
http://i.piccy.info/i9/04f1cfbf42ee4fd5331c0a0fadefa85e/1490532492/9055/1131996/k.png
Вроде что то подобное было и у меня, два одинаковых контроллера с дисплеями на одном 3,3 вольта, на другом 5, по моему на 100 литровом 3,3, но может и наоборот.
http://i.piccy.info/i9/3236efe8b696c77734ca55e58471f1c4/1490532767/7148/1131996/k1.png
Vitalik_Nic
26.03.2017, 18:39
Не помогло...
Попробовал тестовый скетч для калибровки клавиатуры, на экране появляется логотип на одну секунду и все на экране пусто. Может экран немного другой... хотя я проверял другой программой часы на 5110 работает отлично, куда копать ?
Витенька
26.03.2017, 20:26
Получается как бы сам дисплей в порядке, что то связано с яркокостно-нтрастностью, поэксперементируйте еще со строкой
http://i.piccy.info/i9/ab01c8d1e0801dcca50b1358663906f3/1490548840/5315/1131996/k.png
У меня так, но это как бы не критично для такой проблемы
http://i.piccy.info/i9/1e862632c387e7ffa21df9bbc21b4384/1490548904/5976/1131996/k1.png
Вы говорили о красном дисплее, столкнулся и я именно с такой разницей и как оказалось этих красных есть три вида отличающихся по питанию а вот в чем отличие того самого третьего не помню но всё же в чем то есть.
Vitalik_Nic
26.03.2017, 21:28
Стандартная библиотека для LCD5110 скачанная с офф. сайта ардуино работает как положено. Но она не подходит для данной прошивки и отсутствует русский язык. Буду заказывать другой дисплей синий на 5 вольт
Витенька
26.03.2017, 21:44
Стоп Стоп Стоп!
Витенька
26.03.2017, 21:48
Вот, http://www.aquaforum.ua/showpost.php?p=2959806&postcount=221
Витенька
26.03.2017, 21:50
Если вдруг не оно говорите, есть здесь она, Русская.
Витенька
26.03.2017, 22:04
https://cloud.mail.ru/public/979h/UCMwudmTE
steals81
26.03.2017, 22:46
У меня первый на красном дисплее вообще не смог запуститься (точнее ничего не отображал после нескольких секунд от запуска). Установил другой (тоже "красный", но другой серии (номера уже не помню, давно было)) - все пошло. Контроллер "трудится у друга больше года без збоев и "запинок".
Отправлено с моего HUAWEI P7-L00 через Tapatalk
Витенька
27.03.2017, 08:04
Да бывают и механические так сказать проблемы с дисплеями и самая распространенная легко решаемая, но, у Vitalik_Nicа на часах вроде бы как запустился дисплей а на этом коде не захотел, похоже сам код чем то не понравился дисплею. Vitalik_Nic как успехи, есть какие то продвижения?
Vitalik_Nic
27.03.2017, 18:14
Результата ноль пока, прошил проверить дисплей скет часы, прошивал ардуино версия 1,8,0 и стандартная библиотек 5110, часы настраиваются в меню все работает. Прошивал выше данные прошивки разными версиями ардуино 1,8,0 и 1,5,7 результат один и тот же, не заходит в меню настройки ошибки при компиляции выдавала ардуино 1,8,0 за неправильный тип стринг, а версия 1,5,7 ошибок нет. Разници особо между DS1307 и DS3231 нет библиотеки от 1307 хорошо работает с 3231. И если была б разница часы не работали.http://picua.org/][img]http://picua.org/img/2017-03/27/9vdtev6efrzx01o8l9xn9hen1.jpg
http://picua.org/][img]http://picua.org/img/2017-03/27/1ig6d4uw3ctgcbnwfm2n2pzqe.jpg
http://picua.org/?v=2017-03-27_1ig6d4uw3ctgcbnwfm2n2pzqe.jpg
http://picua.org/?v=2017-03-27_f3j41jtkdtybzda8po12o2lbq.jpg
Не могу понять почему в меню настройка не заходит, остальные пункты изменяются.
Искать другой дисплей ?
Витенька
27.03.2017, 18:22
Так у меня часы именно 3231 и всё работает.
Витенька
27.03.2017, 18:29
http://i.piccy.info/i9/9af9e51f723765d96eb418703092028d/1490198709/176987/1130601/aqua_controll_sch.jpg
С кнопками всё по схеме подключено, там в оригинальной вроде не так было назначение кнопок показано.
Витенька
27.03.2017, 18:32
И библиотеку подключите из темы.
mashenkaM
27.03.2017, 18:33
Vitalik_Nic, попробуйте через serial поставить метки об выполнение в нескольких местах входа и при необходимости выводы необходимых значений и узнаете в каком месте кода возможная ошибка, если не заходит в меню, значить невыполняется какая то часть кода по каким то причинам.
Это будет напоминать некий лог.
Serial.print("ваши метки.") ...
Vitalik_Nic
27.03.2017, 18:34
Кнопки подключены правильно, сопротивление точно по схеме, иначе вверг и вниз не переходили бы пункт, но когда попадает выбор на пункт "настройка" появляются бегающие полоски на экране, и тухнет больше нечего не показывает.
По поводу меток Serial.print не совсем подходит у меня платка без юсб прошиваю другой ардуинкой
http://picua.org/img/2017-03/27/1jewhkn295j6fpdei7mbifmhr.jpg
Витенька
27.03.2017, 18:57
Прямо мистика какая то! Попробуйте ещё может почистить контакты под дисплеем, попадали пара дисплеев которые тоже что то непонятное вытворяли, почистил контакты и всё стало на свои места. Отогните лапки которыми рамка дисплея держится за плату и снимите дисплей, он просто лежит на контактных площадках, протрите контакты школьным ластиком, неплохо бы ещё советским красным но можно и имеющимся попробовать.
http://i.piccy.info/i9/e5729bb8c8064e6958599124400897bc/1490629942/100541/1131996/2017327184612.jpg
Vitalik_Nic
27.03.2017, 19:28
Не в дисплее проблема это точно у меня их два и одинаково себя ведут
https://cloud.mail.ru/public/GxhJ/UdYBxP4wW
видео когда выбираю пункт настройка гаснет экран, проходит некоторое время появляются часы.
Два сетча выше скачены на этой странице
Петко Шкодров
27.03.2017, 19:45
Не в дисплее проблема это точно у меня их два и одинаково себя ведут
https://cloud.mail.ru/public/GxhJ/UdYBxP4wW
видео когда выбираю пункт настройка гаснет экран, проходит некоторое время появляются часы.
Проблема с кабелем.Если бы вы припаять их.
Проверить значение кнопки.
Используйте как метка PIN 13
Петко Шкодров
27.03.2017, 19:58
Какой скетч прошиваете?
Витенька
27.03.2017, 20:04
Проблема с кабелем.
Очень даже вариант, но вряд ли в проводах дисплея, хотя ... Была ещё тоже похожая проблема, подключил часы не на прямую в ардуино а через макетку и тоже были чудеса именно в управлении кнопок. На одном из форумов ардуинщиков говорили что провода к часам нужно делать по максимуму короче, какие то помехи могут быть.
Vitalik_Nic
27.03.2017, 20:09
Скетч пробовал на прошлой странице два вида.
Петко Шкодров
27.03.2017, 20:26
Каков размер скетча получается?
mashenkaM
27.03.2017, 20:33
Vitalik_Nic, если вы делали по схеме с первого поста, то там есть ошибка, которая как раз скорее всего влияет на работу дисплея и часов, устройства I2C подключены не правильно.
Витенька
27.03.2017, 20:51
Из устройств 12С как я понимаю там только часы, и то если применять 3231, и в чём ошибка?
Vitalik_Nic
27.03.2017, 20:51
Размер скетча последнего что я пробовал 51 291 байт
Какая схема тогда правильная ? Если поменять местами порт 2 и 3 то часы неправильно отображаются 20 : 88
Ой извиняюсь это размер скетча а сама программа для мк весит 28 314
Петко Шкодров
27.03.2017, 20:55
Размер скетча последнего что я пробовал 51 291 байт
Это не возможно
mashenkaM
27.03.2017, 20:59
Из устройств 12С как я понимаю там только часы, и то если применять 3231, и в чём ошибка?
Лини SDA и SLC необходимо и обязательно подтягивають резисторами 1-10 кОм к питанию. Иначе есть вероятность не стабильной работы часов.
Витенька
27.03.2017, 20:59
Возможно возможно, это наверное тот скетч что я сбрасывал, он отличается более нормальным отображением текста.
Витенька
27.03.2017, 21:03
Лини SDA и SLC необходимо и обязательно подтягивають резисторами 1-10 кОм к питанию. Иначе есть вероятность не стабильной работы часов.
Снова я в з...е, где, кто такое сказал, перелопатил кучу форумов, контроллеры с этой темы уже третьи, до них были и другие но нигде не слышал о подтягивающих резисторах к часам, одно что в приложенном скетче нужно перепрописать если применяются часы 3231
Vitalik_Nic
27.03.2017, 21:05
Лини SDA и SLC необходимо и обязательно подтягивають резисторами 1-10 кОм к питанию. Иначе есть вероятность не стабильной работы часов.
Подтягивающие резисторы на 5 кОм установлены на модуле плате
mashenkaM
27.03.2017, 21:17
Снова я в з...е, где, кто такое сказал, перелопатил кучу форумов, контроллеры с этой темы уже третьи, до них были и другие но нигде не слышал о подтягивающих резисторах к часам, одно что в приложенном скетче нужно перепрописать если применяются часы 3231
А на заборе вы не читали случаем как подключать устройства?
Боже ещё один, когда вы уже научитесь читать даташиты?
Вот даташит на часы с кристаллом DS3231
http://html.alldatasheet.com/html-pdf/112132/DALLAS/DS3231/215/1/DS3231.html
Если перевести взгляд с забора на схему, то можно увидеть там два резистора R pu, которые подтягивают обе линии к питанию.
15 SDA
Serial Data Input/Output. This pin is the data input/output for the I2C serial interface. This open-drain pin requires an external pullup resistor.
Хотя не обращайте внимания, резисторы нарисовали какие то лохи, что бы поднять продажи резисторов, вам конечно виднее, вы же перелопатили форумы и собрали несколько схем!!! :)
AndrewUh
27.03.2017, 21:48
Лини SDA и SLC необходимо и обязательно подтягивають резисторами 1-10 кОм к питанию. Иначе есть вероятность не стабильной работы часов.
Здесь используют готовые сборки часов (судя по фото), а не отдельные микросхемы. Как правило, на сборках уже стоят подтягивающие резисторы.
mashenkaM
27.03.2017, 22:28
AndrewUh, интересная мысль, но к сожалению отсутствует, как вы думаете почему? :)
Витенька
27.03.2017, 22:41
Подтягивающие резисторы на 5 кОм установлены на модуле плате
А на заборе вы не читали случаем как подключать устройства?
Ну не послали и на том спасибо!
ya7sergey
27.03.2017, 22:45
Хватит спорить! Подтягивающие резисторы стоят в самом микроконтроллере (даташит вам в зубы). Из личной практики - собирал два акваконтроллера: этот и с другого форума с цветным экраном и тачскрином. Оба на Меге2560, на обоих модули часов DS3231. Так вот на первом поставил резисторы 10к на линии, на втором не поставил (сознательно). Разницы в работе устройств НИКАКОЙ - работают одинаково стабильно! На обоих устройствах часы подключены проводами длинной примерно 1 - 1.5см.
Витенька
27.03.2017, 22:52
На обоих устройствах часы подключены проводами длинной примерно 1 - 1.5см.
На Меге я часы вставил прямо на пины SDA SCL а короткими проводами подключил питание, длина проводов для часов очень критична.
mashenkaM
27.03.2017, 23:28
Хватит спорить! Подтягивающие резисторы стоят в самом микроконтроллере (даташит вам в зубы). Из личной практики - собирал два акваконтроллера: этот и с другого форума с цветным экраном и тачскрином. Оба на Меге2560, на обоих модули часов DS3231. Так вот на первом поставил резисторы 10к на линии, на втором не поставил (сознательно). Разницы в работе устройств НИКАКОЙ - работают одинаково стабильно! На обоих устройствах часы подключены проводами длинной примерно 1 - 1.5см.
да, есть, но они от 20к Ом и ещё подтягивающие встроенные резисторы нужно включать командой digitalWrite(pin, HIGH);
Смотрим код:
Инициализация часов - DS1307 rtc(3, 2);
И потом нет ни какого включения этих подтягивающих резисторов.
mashenkaM
27.03.2017, 23:29
На Меге я часы вставил прямо на пины SDA SCL а короткими проводами подключил питание, длина проводов для часов очень критична.
Длина каких проводов? питания или SDA SCL?
У меня расстояние от ардуино до часов около 10 см и работают отлично.
mashenkaM
27.03.2017, 23:35
Из личной практики - собирал два акваконтроллера: этот и с другого форума с цветным экраном и тачскрином. Оба на Меге2560, на обоих модули часов DS3231. Так вот на первом поставил резисторы 10к на линии, на втором не поставил (сознательно). Разницы в работе устройств НИКАКОЙ - работают одинаково стабильно!
Из личной практики, ездила с парнем на скоростном байке со шлем и без шлема (сознательно). Разницы в езде НИКАКОЙ - ездит одинаково быстро!
Есть правила подключения тех или иных устройств и их нужно просто выполнять.
Учитесь всё делать правильно, а не "И так сойдёт". Это детей нужно в садиках и школах учить всё делать правильно, но вы вроде взрослые люди, а подход детский...
ya7sergey
28.03.2017, 06:34
Столько флуда... Мне вот до лампочки на чем и как катал тебя парень. Хоть на волосатом мотороллере.
Лучше бы помогли дельным советом человеку, который ни как не может запустить контроллер, раз у вас СТОЛЬКО опыта.
AndrewUh
28.03.2017, 08:11
Где появляется mashenkaM - там флуд :)
Сергій М
28.03.2017, 08:33
Машенька последнее время перегибает палку в общении, а ведь были и хорошие советы когда-то ... Но не сейчас.
У меня 2 контроллера на Меге и Нано, (ещё знакомым собирал), везде использовал часы 1307 и 3231, нигде нет ни одного дополнительного резистора, и ни разу не было проблем с длинной проводов от часов к ардуинке. Может на алиэкспрессе не китайские ардуины и часы мне попались ?!
AndrewUh
28.03.2017, 08:50
Машенька последнее время перегибает палку в общении, а ведь были и хорошие советы когда-то ... Но не сейчас.
У меня 2 контроллера на Меге и Нано, (ещё знакомым собирал), везде использовал часы 1307 и 3231, нигде нет ни одного дополнительного резистора, и ни разу не было проблем с длинной проводов от часов к ардуинке. Может на алиэкспрессе не китайские ардуины и часы мне попались ?!
У меня тоже с ними никогда проблем не было.
AquaGomel
28.03.2017, 11:18
По правде сказать для шины I2C нужны подтягивающие резисторы по линии SDA и SCL. http://student-proger.ru/2014/08/vliyanie-nominala-podtyagivayushhih-rezistorov-na-signal-shiny-i2c/ Вот тут подробно описано. Если честно когда разрабатывал схему я об этом не знал. Пока мне при разводке платы не указали на это. А на монтажном столе все работало и без резисторов. Поэтому это не значит что проблема именно в них. Использую 4.7kOm.
mashenkaM
28.03.2017, 11:26
Столько флуда... Мне вот до лампочки на чем и как катал тебя парень. Хоть на волосатом мотороллере.
Лучше бы помогли дельным советом человеку, который ни как не может запустить контроллер, раз у вас СТОЛЬКО опыта.
А смысл помогать, у вас же всё и так всё работает, вы перелопатили куча форумов, а датащиты читают только лохи, это не для вас :)
Но спрошу, если я правильно поняла, то ардуина работает на логике 5 В, а экран имеет логику 3.3 В, там опять же только для лохов написано прямо по ссылке на али (перевод автоматический):
3 Используйте 3.3 В контроллер, в противном случае дисплей может быть весьма расплывчаты.
Где согласование логических уровней в схеме?
Опять же по прочитанному, что светодиоды подсветки не всегда имеют токоограничивающие резисторы, если его нет, то 5В с выхода экрану тоже могут не понравится, даже если ШИМ, то всё равно напряжение 5В, а меняется только скважность.
Экраны на али бывают разные и сделаны по разному и разведены и разного качества, у кого то могут работать и без согласования, а у кого то нет.
Я сама ESP8266 (3,3 В) к ардуино (5 В) к иногда подключаю без согласования логических уровней и всё работает, но как долго и всех ли так будет не ясно, где то лучше сборка, где то хуже и можно спалить.
mashenkaM
28.03.2017, 11:31
AquaGomel, вы же знаете, ардуино и подобные ... очень капризные штуки, особенно в плане питания и чёрт его знает где и когда всплывёт глюк.
У вас например у ESP8266 все GPIO подтянуты к питанию резисторами 10к Ом, так как это правильное подключение и вы не рискнули сделать по другому, хотя и Я и Вы знаете что отлично работает и без этих резисторов. Потому что видно что вы стараетесь сделать качественную вещь.
AndrewUh
28.03.2017, 11:32
По правде сказать для шины I2C нужны подтягивающие резисторы по линии SDA и SCL. http://student-proger.ru/2014/08/vliyanie-nominala-podtyagivayushhih-rezistorov-na-signal-shiny-i2c/ Вот тут подробно описано. Если честно когда разрабатывал схему я об этом не знал. Пока мне при разводке платы не указали на это. А на монтажном столе все работало и без резисторов. Поэтому это не значит что проблема именно в них. Использую 4.7kOm.
Посмотри внимательно на сборку часов, которая используется в данной схеме: I2C RTC DS1307 AT24C32 Real Time Clock Module for Arduino + Батарейка US $1.15 (с нижней стороны). Там уже у этих линий установлены подтягивающие резисторы. И так практически у всех готовых сборках.
Если делаешь часы сам на микросхеме, а не на готовой сборке, то тогда надо.
ya7sergey
28.03.2017, 11:35
А смысл помогать, у вас же всё и так всё работает, вы перелопатили куча форумов, а датащиты читают только лохи, это не для вас :)
Но спрошу, если я правильно поняла, то ардуина работает на логике 5 В, а экран имеет логику 3.3 В, там опять же только для лохов написано прямо по ссылке на али (перевод автоматический):
Где согласование логических уровней в схеме?
Опять же по прочитанному, что светодиоды подсветки не всегда имеют токоограничивающие резисторы, если его нет, то 5В с выхода экрану тоже могут не понравится, даже если ШИМ, то всё равно напряжение 5В, а меняется только скважность.
Экраны на али бывают разные и сделаны по разному и разведены и разного качества, у кого то могут работать и без согласования, а у кого то нет.
Я сама ESP8266 (3,3 В) к ардуино (5 В) к иногда подключаю без согласования логических уровней и всё работает, но как долго и всех ли так будет не ясно, где то лучше сборка, где то хуже и можно спалить.
Уважаемая, вы вообще читать умеете?
1) В данном случае, помощь нужна не мне.
2) Дабы не разводить дальнейший флуд. Вы имеете данный проект в собранном и рабочем виде? Шилд дисплея Нокиа вы в руках держали, в газа его видели? Если нет, то отвечу - согласующие резисторы стоят на шилде.
3) со своим ESP8266 просьба создать отдельную тему, и трещать без умолка в ней, а мы потрещим над вами.
AquaGomel
28.03.2017, 11:40
Посмотри внимательно на сборку часов, которая используется в данной схеме: I2C RTC DS1307 AT24C32 Real Time Clock Module for Arduino + Батарейка US $1.15 (с нижней стороны). Там уже у этих линий установлены подтягивающие резисторы. И так практически у всех готовых сборках.
Если делаешь часы сам на микросхеме, а не на готовой сборке, то тогда надо.
Да я и не спорю то. Но у меня работают DS3231 + еще внешние 4.7kOm Никаких дополнительных инициализаций для внутренних резисторов я не делаю.
mashenkaM
28.03.2017, 11:43
AndrewUh, я вчера проверяла свою сборку часов DS3231 на них есть 2 резистора, но они не подтягивающие.
На фото я вижу что есть резисторы, но являются ли они подтягивающими вы проверяли? Может они входят в обвязку микросхемы?
Я вам делала подсказку и задавала вопрос, почему там не должны быть подтягивающие резисторы, но пропустили это мимо головы.
Но я всё таки попробую достучаться :) Я правда не знаю даже как, потому что люди только о волосатых мотороллерах думаю, ну у каждого свои мечты :)
Подтягивающие резисторы ставят именно на линии SDA и CLS. Если устройство одно и включает в себя эти резисторы, то всё хорошо будет, но если я повешу 10 устройств и в каждую какие то идиоты запихнут подтягивающие резисторы по 10к Ом, то я в итоге получу подтяжку в 1к Ом, а если везде поставят 4.7к Ом, то я получу 0,47к ОМ или 470 Ом. Надеюсь я понятно объяснила?
AndrewUh
28.03.2017, 11:48
AndrewUh, я вчера проверяла свою сборку часов DS3231 на них есть 2 резистора, но они не подтягивающие.
На фото я вижу что есть резисторы, но являются ли они подтягивающими вы проверяли? Может они входят в обвязку микросхемы?
Я вам делала подсказку и задавала вопрос, почему там не должны быть подтягивающие резисторы, но пропустили это мимо головы.
Но я всё таки попробую достучаться :) Я правда не знаю даже как, потому что люди только о волосатых мотороллерах думаю, ну у каждого свои мечты :)
Подтягивающие резисторы ставят именно на линии SDA и CLS. Если устройство одно и включает в себя эти резисторы, то всё хорошо будет, но если я повешу 10 устройств и в каждую какие то идиоты запихнут подтягивающие резисторы по 10к Ом, то я в итоге получу подтяжку в 1к Ом, а если везде поставят 4.7к Ом, то я получу 0,47к ОМ или 470 Ом. Надеюсь я понятно объяснила?
Вы так любите смотреть даташиты: https://datasheets.maximintegrated.com/en/ds/DS1307.pdf
есть там какая-либо обвязка кроме подтягивающих резисторов?
Здесь используется DS1307 (так в шапке написано).
mashenkaM
28.03.2017, 11:49
AquaGomel, не смогла заметить у вас на схеме DS3231, они снизу платы?
Если вы брали что то подобное https://ru.aliexpress.com/item/1pcs-DS3231-AT24C32-IIC-Module-Precision-Clock-Module-DS3231SN-for-Arduino-Memory-module-Free-Shipping/32719591750.html?spm=2114.13010608.0.0.889oAp
то там нет подтягивающих резисторов
AndrewUh
28.03.2017, 11:52
AquaGomel, не смогла заметить у вас на схеме DS3231, они снизу платы?
Если вы брали что то подобное https://ru.aliexpress.com/item/1pcs-DS3231-AT24C32-IIC-Module-Precision-Clock-Module-DS3231SN-for-Arduino-Memory-module-Free-Shipping/32719591750.html?spm=2114.13010608.0.0.889oAp
то там нет подтягивающих резисторов
На Вашей сборке я насчитал 8 резисторов (как минимум).
AquaGomel
28.03.2017, 12:04
AquaGomel, не смогла заметить у вас на схеме DS3231, они снизу платы?
Если вы брали что то подобное https://ru.aliexpress.com/item/1pcs-DS3231-AT24C32-IIC-Module-Precision-Clock-Module-DS3231SN-for-Arduino-Memory-module-Free-Shipping/32719591750.html?spm=2114.13010608.0.0.889oAp
то там нет подтягивающих резисторов
Да используется именно такой шилд. Я не в курсе что там в нем есть. Потому как если мне завтра захочется подключить еще какой-нибудь девайс, а там не будет этих резисторов, то что делать тогда?
mashenkaM
28.03.2017, 12:23
Вы так любите смотреть даташиты: https://datasheets.maximintegrated.com/en/ds/DS1307.pdf
есть там какая-либо обвязка кроме подтягивающих резисторов?
Здесь используется DS1307 (так в шапке написано).
Да кроме подтягивающих резисторов я вижу справа резистор между SQW/OUT и питанием.
Во вторых - раз в уже начали всё таки читать даташиты, вы заметили что в даташите показана схема с 1 микросхемой, а на плате их ДВЕ, обвязку второй вы знаете?
Я вас изначально спросил, ВЫ ПРОВЕРЯЛИ ЛИЧНО подтягивающие это резисторы или нет?
AndrewUh
28.03.2017, 12:35
Да кроме подтягивающих резисторов я вижу справа резистор между SQW/OUT и питанием.
Во вторых - раз в уже начали всё таки читать даташиты, вы заметили что в даташите показана схема с 1 микросхемой, а на плате их ДВЕ, обвязку второй вы знаете?
Я вас изначально спросил, ВЫ ПРОВЕРЯЛИ ЛИЧНО подтягивающие это резисторы или нет?
Это тоже подтягивающий для выхода SQW.
Вторая микросхема-память, обвязка стандартная. Отдельно 6 контактов (квадратики такие) - выбор адреса для микросхемы памяти (паяют перемычки, если надо). По умолчанию - адрес 0х50 (вроде). Если надо-могу уточнить.
На своем модуле проверял - у меня все нормально.
На этот модуль нет даташита и быть не может :)
mashenkaM
28.03.2017, 12:48
Приношу свои извинения, прозвонила плату часов и нашла что обе линии подтянуты к питанию через сборки резисторов 472.
AndrewUh
28.03.2017, 12:49
mashenkaM, у меня складывается впечатление, что я общаюсь чисто с теоретиком, который паяльник в руках не держал. Сплошные ссылки на даташиты и прочее. Здесь не форум программистов: люди делают конкретные устройства и, при необходимости, пишут программы, как умеют. Больше у меня нет желания вести с Вами дискуссии в чужих темах. Если есть вопросы - пишите в личку. С нетерпением ждем тему с Вашим контроллером!
mashenkaM
28.03.2017, 13:20
AndrewUh, контроллер который у меня сейчас работает больше напоминает лего, потому что собран модулями и думаю ни кто его повторять не будет. Он у меня то изменялся, то добавлялся, то ещё что, я развивалась и он тоже. :) До разведения плат я ещё как то не доросла. Поэтому создавать тему про контроллер который кроме меня ни кому не нужен не имеет смысла. Да и посмотрите - нас любителей совсем мало у AquaGomel в теме всего 13 лайков.
Как показал опыт -каждый делает по своему и двух одинаковых аква контроллеров почти нет.
На новых два контроллера на ESP8266 у меня всё почти есть из деталей, но критически не хватает времени. :(
По схемотехнике нет особо ни чего интересного, что, куда и как и так понятно. Схему можно дать спаять любому технарю-студенту.
А вот программирование контроллера это самое интересное и трудоёмкое, вот тут интересно было бы поделится и перенять опыт :)
vBulletin версії 3.8.7, © 2000-2025, Jelsoft Enterprises Ltd.
Переклад: © Віталій Стопчанський, 2004-2010