На головну сторінку Аквафорум
На головну сторінку




Назад   Аквафорум - форум акваріумістів та тераріумістів > Акваріум та обладнання > "Самоделкин" > Аквариумная автоматика
Аукцион Реєстрація ЧаПи Учасники Календар Нинішні дописи

Примітки

Відповідь
 
Параметри теми Параметри перегляду
Старий 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 - замыкается.


__________________

spolyakov поза форумом   Відповісти з цитуванням
Старий 25.04.2015, 18:07   #2
Живу я тут
  
 
Аватар для AlexVOK
 
Реєстрація: 11.07.2013
Звідки Ви: Киев (Борщаговка)
Дописи: 665
сказав Дякую: 106
сказали Дякую 535 раз(и) в 244 повідомленні
Re: Простой акваконтроллер ARDUINO ===www.aquaforum.ua===

spolyakov,
вы все правильно описали !

так и действуйте

AlexVOK поза форумом   Відповісти з цитуванням
cказали "Дякую" AlexVOK за цей допис:
spolyakov (25.04.2015)
Старий 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 =

^

Ошибка компиляции.


__________________

spolyakov поза форумом   Відповісти з цитуванням
Старий 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 =

Скетч загрузился, все собрал - работает. Большое спасибо разработчику и Всем кто отвечал в теме.


__________________

spolyakov поза форумом   Відповісти з цитуванням
Старий 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..
spolyakov поза форумом   Відповісти з цитуванням
Ці 5 користувач(ів) сказали Дякую spolyakov за це повідомлення:
AlexVOK (06.06.2015), Multiman (26.07.2015), RozarioAgro (06.06.2015), Sem (16.06.2015), Toha24510 (19.10.2015)
Старий 06.06.2015, 17:13   #6
Живу я тут
  
 
Аватар для AlexVOK
 
Реєстрація: 11.07.2013
Звідки Ви: Киев (Борщаговка)
Дописи: 665
сказав Дякую: 106
сказали Дякую 535 раз(и) в 244 повідомленні
Re: Простой акваконтроллер ARDUINO ===www.aquaforum.ua===

spolyakov,
Отличная работа
Особенно мне понравился держатель для трубочек, сам гнул?

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

AlexVOK поза форумом   Відповісти з цитуванням
cказали "Дякую" AlexVOK за цей допис:
spolyakov (06.06.2015)
Старий 06.06.2015, 19:58   #7
Живу я тут. Мохоманьяк
  
 
Аватар для RozarioAgro
 
Реєстрація: 12.07.2014
Звідки Ви: Киев, Позняки сити
Дописи: 1.975
сказав Дякую: 1.151
сказали Дякую 2.542 раз(и) в 955 повідомленні
Re: Простой акваконтроллер ARDUINO ===www.aquaforum.ua===

spolyakov, у меня клапана стоят на выходе, для предотвращения попадания воздуха. Кстати используемые вами вибро насосы конструктивно выполнены так, что имеют встроенные обратные клапана.

__________________
АКВАРИУМНАЯ АВТОМАТИКА И СВЕТОДИОДНОЕ ОСВЕЩЕНИЕ AQUAPLANNER
+38 095 249-77-51 моб.тел\вайбер Наш сайт
Роман


__________________

RozarioAgro поза форумом   Відповісти з цитуванням
Старий 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 , только пришлось немного рассверлить отверстия.
Скетч вроде прикрепил.
Долучені файли
Тип файлу: rar aqua_controll_2.rar (9,1 КБ, 274 переглядів)


__________________

spolyakov поза форумом   Відповісти з цитуванням
cказали "Дякую" spolyakov за цей допис:
kolljj (06.06.2015)
Старий 06.06.2015, 22:09   #9
Живу я тут. Мохоманьяк
  
 
Реєстрація: 01.10.2010
Звідки Ви: Одесса
Дописи: 95
сказав Дякую: 33
сказали Дякую 24 раз(и) в 11 повідомленні
Re: Простой акваконтроллер ARDUINO ===www.aquaforum.ua===

Они имеют даже 2 клапана, но в 2 из 3 насосов вода постепенно уходит назад в банки с удо.


__________________

spolyakov поза форумом   Відповісти з цитуванням
Старий 06.06.2015, 22:14   #10
Живу я тут. Мохоманьяк
  
 
Аватар для RozarioAgro
 
Реєстрація: 12.07.2014
Звідки Ви: Киев, Позняки сити
Дописи: 1.975
сказав Дякую: 1.151
сказали Дякую 2.542 раз(и) в 955 повідомленні
Re: Простой акваконтроллер ARDUINO ===www.aquaforum.ua===

Оффтоп


__________________


Востаннє редагував RozarioAgro: 06.06.2015 о 22:30..
RozarioAgro поза форумом   Відповісти з цитуванням
cказали "Дякую" RozarioAgro за цей допис:
_Vadim (28.02.2016)
Старий 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..
spolyakov поза форумом   Відповісти з цитуванням
Старий 16.06.2015, 22:28   #12
Живу я тут
  
 
Аватар для AlexVOK
 
Реєстрація: 11.07.2013
Звідки Ви: Киев (Борщаговка)
Дописи: 665
сказав Дякую: 106
сказали Дякую 535 раз(и) в 244 повідомленні
Re: Простой акваконтроллер ARDUINO ===www.aquaforum.ua===

spolyakov,
был не прав

патч ниже


Востаннє редагував AlexVOK: 17.06.2015 о 10:34..
AlexVOK поза форумом   Відповісти з цитуванням
cказали "Дякую" AlexVOK за цей допис:
spolyakov (16.06.2015)
Старий 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.


__________________

spolyakov поза форумом   Відповісти з цитуванням
cказали "Дякую" spolyakov за цей допис:
AlexVOK (17.06.2015)
Старий 17.06.2015, 10:29   #14
Живу я тут
  
 
Аватар для AlexVOK
 
Реєстрація: 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 микроконтроллеров!!)

Внимание для тех кто повторил контроллер ОБЯЗАТЕЛЬНО ОБНОВИТЕ скетчь
(есть вероятность залипона, хоть и очень маленькая но она есть)

AlexVOK поза форумом   Відповісти з цитуванням
Ці 2 користувач(ів) сказали Дякую AlexVOK за це повідомлення:
AlexNT (04.07.2015), spolyakov (17.06.2015)
Старий 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 в секунду (чтобы точки на часах мигли )
Ошибки срабатывания таймеров управления будут не больше секунды, что вполне достаточно.
Не ??

AlexNT поза форумом   Відповісти з цитуванням


Share/Bookmark

Відповідь

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


Тут присутні: 7 (учасників - 0 , гостей - 7)
 

Ваші права у розділі
Ви не можете створювати теми
Ви не можете писати дописи
Ви не можете долучати файли
Ви не можете редагувати дописи

BB-код є Увімк.
Усмішки Увімк.
[IMG] код Увімк.
HTML код Вимк.

Швидкий перехід


Часовий пояс GMT +3. Поточний час: 16:54.


vBulletin 3.8.7 ; Copyright © 2000-2026 Jelsoft Enterprises Limited
Переклад: © Віталій Стопчанський, 2004-2010
(с)Бешлега Олександр Анатолійович, 2002-2025. Використання матеріалів сайту без посилання на джерело заборонено.
Дякуємо за ліцензійну версію форума компанію Барбус, представника торгової марки Sera в Україні.


no new posts