 |
|
25.04.2015, 17:51
|
#1
|
|
Живу я тут. Мохоманьяк
Реєстрація: 01.10.2010
Звідки Ви: Одесса
Дописи: 95
сказав Дякую: 33
сказали Дякую 24 раз(и) в 11 повідомленні
|
Re: Простой акваконтроллер ARDUINO ===www.aquaforum.ua===
Релейный модуль: 8 канальный релейный модуль 5В 10А
Фото:
Описание: Может управляться непосредственно с выводов микроконтроллера (Arduino и подобным).
Максимальный ток нагрузки 10А при напряжении 250В, размеры: 13.9см x 5.2см x 1.7см
Если вам нужна полная оптическая изоляция подключите "Vcc" к выходу +5В Arduino, но не подключайтесь к Gnd. Уберите джампер Vcc to JD-Vcc. Подключите отдельные +5В к выводу "JD-Vcc" и отдельные Gnd. Это даст питание для транзисторов и обмотки реле.
Если же вам достаточно изоляции реле то можно просто запитать модуль от выводов Arduino +5В и Gnd и оставить джампер Vcc to JD-Vcc на своем месте.
Важно: для замыкания реле нужно подать на управляющий вход низкий логический уровень (LOW), тогда реле замыкается и светодиод загорается, для размыкания реле нужно подать уровень логической единицы (HIGH).
Планирую подключать в обход оптрона следующим образом:
VCC релейного модуля на питание ардуинки
GND релейного модуля на ноль ардуинки
Выходы релейного модуля подключить к соответсвующим пинам ардуины
Джампер Vcc to JD-Vcc оставить на своем месте.
В скетче в местах управления пинами поменять High на Low , т.к. этот модуль при значении High размыкается, при значении Low - замыкается.
__________________ 
|
|
|
25.04.2015, 18:07
|
#2
|
|
Живу я тут
Реєстрація: 11.07.2013
Звідки Ви: Киев (Борщаговка)
Дописи: 665
сказав Дякую: 106
сказали Дякую 535 раз(и) в 244 повідомленні
|
Re: Простой акваконтроллер ARDUINO ===www.aquaforum.ua===
spolyakov,
вы все правильно описали !
так и действуйте
|
|
|
|
cказали "Дякую" AlexVOK за цей допис:
|
|
03.05.2015, 13:22
|
#3
|
|
Живу я тут. Мохоманьяк
Реєстрація: 01.10.2010
Звідки Ви: Одесса
Дописи: 95
сказав Дякую: 33
сказали Дякую 24 раз(и) в 11 повідомленні
|
Re: Простой акваконтроллер ARDUINO ===www.aquaforum.ua===
Наконец пришел микроконтроллер, спаял. Скачал программу Ардуино 1.6.3. Поставил библиотеки из шапки, установил драйвер, а при заливке скетча пишет:
Arduino: 1.6.2 (Windows 7), Плата"Arduino Nano, ATmega328"
Изменена опция сборки, пересобираем все
Используем библиотеку LCD5110 в папке: C:\Users\Анатолий\Documents\Arduino\libraries\LCD5 110 (legacy)
Используем библиотеку EEPROM в папке: C:\Users\Анатолий\AppData\Roaming\Arduino15\packag es\arduino\hardware\avr\1.6.2\libraries\EEPROM
Используем библиотеку OneWire в папке: C:\Users\Анатолий\Documents\Arduino\libraries\OneW ire (legacy)
Используем библиотеку DS1307 в папке: C:\Users\Анатолий\Documents\Arduino\libraries\DS13 07 (legacy)
C:\Users\Анатолий\AppData\Roaming\Arduino15\packag es\arduino\tools\avr-gcc\4.8.1-arduino2/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10602 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR -IC:\Users\Анатолий\AppData\Roaming\Arduino15\packa ges\arduino\hardware\avr\1.6.2\cores\arduino -IC:\Users\Анатолий\AppData\Roaming\Arduino15\packa ges\arduino\hardware\avr\1.6.2\variants\eightanalo ginputs -IC:\Users\Анатолий\Documents\Arduino\libraries\LCD 5110 -IC:\Users\Анатолий\AppData\Roaming\Arduino15\packa ges\arduino\hardware\avr\1.6.2\libraries\EEPROM -IC:\Users\Анатолий\Documents\Arduino\libraries\One Wire -IC:\Users\Анатолий\Documents\Arduino\libraries\DS1 307 C:\Users\E393~1\AppData\Local\Temp\build5037175306 117761921.tmp\aqua_controll.cpp -o C:\Users\E393~1\AppData\Local\Temp\build5037175306 117761921.tmp\aqua_controll.cpp.o
C:\Users\Анатолий\AppData\Roaming\Arduino15\packag es\arduino\tools\avr-gcc\4.8.1-arduino2/bin/avr-gcc -c -g -Os -w -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10602 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR -IC:\Users\Анатолий\AppData\Roaming\Arduino15\packa ges\arduino\hardware\avr\1.6.2\cores\arduino -IC:\Users\Анатолий\AppData\Roaming\Arduino15\packa ges\arduino\hardware\avr\1.6.2\variants\eightanalo ginputs -IC:\Users\Анатолий\Documents\Arduino\libraries\LCD 5110 -IC:\Users\Анатолий\AppData\Roaming\Arduino15\packa ges\arduino\hardware\avr\1.6.2\libraries\EEPROM -IC:\Users\Анатолий\Documents\Arduino\libraries\One Wire -IC:\Users\Анатолий\Documents\Arduino\libraries\DS1 307 -IC:\Users\Анатолий\Documents\Arduino\libraries\LCD 5110\utility C:\Users\Анатолий\Documents\Arduino\libraries\LCD5 110\DefaultFonts.c -o C:\Users\E393~1\AppData\Local\Temp\build5037175306 117761921.tmp\LCD5110\DefaultFonts.c.o
C:\Users\Анатолий\Documents\Arduino\libraries\LCD5 110\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:\Users\Анатолий\Documents\Arduino\libraries\LCD5 110\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 =
^
Ошибка компиляции.
__________________ 
|
|
|
03.05.2015, 20:35
|
#4
|
|
Живу я тут. Мохоманьяк
Реєстрація: 01.10.2010
Звідки Ви: Одесса
Дописи: 95
сказав Дякую: 33
сказали Дякую 24 раз(и) в 11 повідомленні
|
Re: Простой акваконтроллер ARDUINO ===www.aquaforum.ua===
Разобрался, надо в библиотеке к экрану заменить fontdatatype SmallFont[] PROGMEM = на fontdatatype const SmallFont[] PROGMEM = и fontdatatype BigNumbers[] PROGMEM = на fontdatatype const BigNumbers[] PROGMEM =
Скетч загрузился, все собрал - работает. Большое спасибо разработчику и Всем кто отвечал в теме.
__________________ 
|
|
|
06.06.2015, 16:32
|
#5
|
|
Живу я тут. Мохоманьяк
Реєстрація: 01.10.2010
Звідки Ви: Одесса
Дописи: 95
сказав Дякую: 33
сказали Дякую 24 раз(и) в 11 повідомленні
|
Re: Простой акваконтроллер ARDUINO ===www.aquaforum.ua===
Прошло две недели испытания акваконтроллера разработанного AlexVOK. Отдельное спасибо за такую полезную разработку, и помощь в процессе его сборки. Должен сказать, что до этой статьи никогда не работал ни с ардуино ни с другими контроллерами. Также огромное спасибо пользователю AlexNT за его подсказки =)
Вот что получилось:
Приборная панель
Вид изнутри
Блок дозирующих насосов ULKA
Ввод шлангов в аквариум
Немного поменял скетч:
- добавил меню настройки дозатора в котором внес меню калибровки насосов, а также добавил возможность ручной прокачки насосов.
- вывел на главный экран состояние работы всех таймеров, а также состояние работы систем нагрева/охлаждения
- вырезал за ненадобностью управление блоком питания, а также рассвет закат
- вместо рассвета/заката добавлен таймер ночной подсветки, который просто включает светодиодную ленту в заданное время.
- убрал таймер для отключения фильтра во время кормления.
Если кому будет интересно вышлю скетч - не понимаю как сюда его выложить....
__________________ 
Востаннє редагував spolyakov: 06.06.2015 о 16:46..
|
|
|
|
Ці 5 користувач(ів) сказали Дякую spolyakov за це повідомлення:
|
|
06.06.2015, 17:13
|
#6
|
|
Живу я тут
Реєстрація: 11.07.2013
Звідки Ви: Киев (Борщаговка)
Дописи: 665
сказав Дякую: 106
сказали Дякую 535 раз(и) в 244 повідомленні
|
Re: Простой акваконтроллер ARDUINO ===www.aquaforum.ua===
spolyakov,
Отличная работа
Особенно мне понравился держатель для трубочек, сам гнул?
По поводу скетча выкладывай.
заархивируй его, (внизу под окном сообщения форума есть кнопка расширенный режим, там можно прикреплять файлы)
|
|
|
|
cказали "Дякую" AlexVOK за цей допис:
|
|
06.06.2015, 19:58
|
#7
|
|
Живу я тут. Мохоманьяк
Реєстрація: 12.07.2014
Звідки Ви: Киев, Позняки сити
Дописи: 1.975
сказав Дякую: 1.151
сказали Дякую 2.542 раз(и) в 955 повідомленні
|
Re: Простой акваконтроллер ARDUINO ===www.aquaforum.ua===
spolyakov, у меня клапана стоят на выходе, для предотвращения попадания воздуха. Кстати используемые вами вибро насосы конструктивно выполнены так, что имеют встроенные обратные клапана.

__________________
АКВАРИУМНАЯ АВТОМАТИКА И СВЕТОДИОДНОЕ ОСВЕЩЕНИЕ AQUAPLANNER
+38 095 249-77-51 моб.тел\вайбер Наш сайт
Роман
__________________ 
|
|
|
06.06.2015, 18:52
|
#8
|
|
Живу я тут. Мохоманьяк
Реєстрація: 01.10.2010
Звідки Ви: Одесса
Дописи: 95
сказав Дякую: 33
сказали Дякую 24 раз(и) в 11 повідомленні
|
Re: Простой акваконтроллер ARDUINO ===www.aquaforum.ua===
Нет держатель для трубочек это работа местного умельца http://www.aquaforum.ua/showthread.php?t=193084 , только пришлось немного рассверлить отверстия.
Скетч вроде прикрепил.
__________________ 
|
|
|
|
cказали "Дякую" spolyakov за цей допис:
|
|
06.06.2015, 22:09
|
#9
|
|
Живу я тут. Мохоманьяк
Реєстрація: 01.10.2010
Звідки Ви: Одесса
Дописи: 95
сказав Дякую: 33
сказали Дякую 24 раз(и) в 11 повідомленні
|
Re: Простой акваконтроллер ARDUINO ===www.aquaforum.ua===
Они имеют даже 2 клапана, но в 2 из 3 насосов вода постепенно уходит назад в банки с удо.
__________________ 
|
|
|
06.06.2015, 22:14
|
#10
|
|
Живу я тут. Мохоманьяк
Реєстрація: 12.07.2014
Звідки Ви: Киев, Позняки сити
Дописи: 1.975
сказав Дякую: 1.151
сказали Дякую 2.542 раз(и) в 955 повідомленні
|
Re: Простой акваконтроллер ARDUINO ===www.aquaforum.ua===
Оффтоп
Извините за то что пишу не по теме автора. Долгое время использовал вибронасосы, не понравилось (шум, протечки). Перешел на такие помпочки, пока доволен.

__________________ 
Востаннє редагував RozarioAgro: 06.06.2015 о 22:30..
|
|
|
|
cказали "Дякую" RozarioAgro за цей допис:
|
|
16.06.2015, 21:12
|
#11
|
|
Живу я тут. Мохоманьяк
Реєстрація: 01.10.2010
Звідки Ви: Одесса
Дописи: 95
сказав Дякую: 33
сказали Дякую 24 раз(и) в 11 повідомленні
|
Re: Простой акваконтроллер ARDUINO ===www.aquaforum.ua===
Ребят при создании своего проекта обратил внимание на одну особенность, полез в скетч и возник следующий вопрос с данным куском кода:
currentTime = millis();
key = getPressedButton();
if((currentTime >= (loopTime + 250))||(key != prev_key)){ // проверяем каждые 5мс (20 Гц)
А что будет приблезительно через 50 дней когда millis() обнулится (при условии, что за это время ни разу не выключали свет, у меня к примеру устройство подключено к УПС).
Тоесть условие currentTime >= (loopTime + 250) перестанет выполняться, а key в случае простоя будет равен prev_key (поидее 0). По идее программа тупо зависнет, пока пользователь не нажмет какую либо из кнопок. Или я не прав?
Если я прав то можно либо сделать контроль переполнения функции millis() , что добавит кусок кода и будет занимать дополнительно память контроллера.
Или переписать условие как-то так:
if((abs(currentTime - loopTime) >= 250)||(key != prev_key)){ // проверяем каждые 5мс (20 Гц)
да такое условие будет давать ошибку на один пропуск, но по идее это не критично....
__________________ 
Востаннє редагував spolyakov: 16.06.2015 о 21:22..
|
|
|
16.06.2015, 22:28
|
#12
|
|
Живу я тут
Реєстрація: 11.07.2013
Звідки Ви: Киев (Борщаговка)
Дописи: 665
сказав Дякую: 106
сказали Дякую 535 раз(и) в 244 повідомленні
|
Re: Простой акваконтроллер ARDUINO ===www.aquaforum.ua===
spolyakov,
был не прав
патч ниже
Востаннє редагував AlexVOK: 17.06.2015 о 10:34..
|
|
|
|
cказали "Дякую" AlexVOK за цей допис:
|
|
16.06.2015, 23:12
|
#13
|
|
Живу я тут. Мохоманьяк
Реєстрація: 01.10.2010
Звідки Ви: Одесса
Дописи: 95
сказав Дякую: 33
сказали Дякую 24 раз(и) в 11 повідомленні
|
Re: Простой акваконтроллер ARDUINO ===www.aquaforum.ua===
не пойму почему так. millis () сбросился и равен пусть 0 в этот момент loopTime равен максимальному значению функции millis (). Следовательно условие currentTime >= (loopTime + 250) не выполнимо. Далее key будет равен prev_key и равен 0 так как контроллер в простое. Соответсвенно эта часть условия key != prev_key тоже не выполняется. Следовательно все что внутри функции if((currentTime >= (loopTime + 250))||(key != prev_key)){ не будет выполнено пока пользователь не нажмет какую либо кнопку и не выполнится условие key != prev_key.
__________________ 
|
|
|
|
cказали "Дякую" spolyakov за цей допис:
|
|
17.06.2015, 10:29
|
#14
|
|
Живу я тут
Реєстрація: 11.07.2013
Звідки Ви: Киев (Борщаговка)
Дописи: 665
сказав Дякую: 106
сказали Дякую 535 раз(и) в 244 повідомленні
|
Re: Простой акваконтроллер ARDUINO ===www.aquaforum.ua===
spolyakov, мысли у вас конечно правильные
хотя за год никаких залипаний не было
но всетаки вы правы
предлагаю патчь
if((abs(currentTime-loopTime) >= 250)||(key != prev_key)){ // проверяем каждые 5мс (20 Гц)
Еще для полной отказоустойчивости нужно было б прошить новый бутлоадер в ардуинку с поддержкой WatchDog таймера
я использовал optiboot. (но сразу предупреждаю нужен програматор для AVR микроконтроллеров!!)
Внимание для тех кто повторил контроллер ОБЯЗАТЕЛЬНО ОБНОВИТЕ скетчь
(есть вероятность залипона, хоть и очень маленькая но она есть)
|
|
|
|
Ці 2 користувач(ів) сказали Дякую AlexVOK за це повідомлення:
|
|
04.07.2015, 01:00
|
#15
|
|
Придивляюся
Реєстрація: 08.01.2008
Звідки Ви: Pinsk, RB
Дописи: 43
сказав Дякую: 5
сказали Дякую 16 раз(и) в 12 повідомленні
|
Re: Простой акваконтроллер ARDUINO ===www.aquaforum.ua===
Цитата:
Допис від spolyakov
Следовательно все что внутри функции if((currentTime >= (loopTime + 250))||(key != prev_key)){ не будет выполнено пока пользователь не нажмет какую либо кнопку и не выполнится условие key != prev_key.
|
|| - это ИЛИ
Так что условие сработает если разница в таймингах больше заданной (5мс) ИЛИ пользователь нажал кнопку (тогда плюем на тайминг и срочно обрабатываем весь цикл)
Кстати, вот только подумал. Ведь с таким условием можно запускать обработку и гораздо реже, раза 2 в секунду (чтобы точки на часах мигли  )
Ошибки срабатывания таймеров управления будут не больше секунды, что вполне достаточно.
Не ??
|
|
|
 |
|
|
Тут присутні: 7 (учасників - 0 , гостей - 7)
|
|
|
Ваші права у розділі
|
Ви не можете створювати теми
Ви не можете писати дописи
Ви не можете долучати файли
Ви не можете редагувати дописи
HTML код Вимк.
|
|
|
Часовий пояс GMT +3. Поточний час: 16:54.
|