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




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

Примітки

Відповідь
 
Параметри теми Параметри перегляду
Старий 17.03.2014, 13:10  
Простой акваконтроллер ARDUINO
 
Аватар для AlexVOK
Живу я тут

Реєстрація: 11.07.2013
Звідки Ви: Киев (Борщаговка)
Дописи: 665
 

сказав Дякую: 106
сказали Дякую 535 раз(и) в 244 повідомленні
AlexVOK AlexVOK поза форумом 17.03.2014, 13:10
Рейтинг: (9 голосов - 5,00 средняя оценка)

Аква контроллер ARDUINO.
(Обратите внимание на доработанный вариант от форумчан. Ссылка внизу!)
( ПродолжениеПростой акваконтроллер ARDUINO v.2 (LED море))

(ГОТОВЫЕ КОНТРОЛЛЕРЫ НЕ ПРОДАЮ)

Решил ознакомиться я с ARDUINO, за одно порадовать своих рыбасей.
Сделать им(себе) доп удобства за минимальную цену и с минимальным напрягом по времени.
На eBay заказал.
Контроллер
Arduino PRO Mini ATMEGA328P 5V 16M (16MHZ) + CP2102 модуль + кабель = полный комплект для программирования - US $3.18

Часы реального времени
I2C RTC DS1307 AT24C32 Real Time Clock Module for Arduino + Батарейка US $1.15
Индикатор 84*48 LCD Module White backlight adapter PCB for Nokia 5110 Arduino US $1.83
Влагозащищенный цифровой датчик температуры
DS18b20 Waterproof Temperature Sensors (5м нормального кабеля) US $3.7

В качестве блока питания зарядка от iPhon там же за 1 бакс.

Еще немного мелочи типа симисторов и опторазвязки для силовой части.

Что вышло в итоге.
Аква контроллер с энергонезависимыми часами реального времени.
Графический экран с регулировкой яркости подсветки и контрастности.
Управление 13-ю нагрузками.
Куча таймеров, ограничил по 25 на канал (памяти хватит на 500).
Поддержка режима «кормление» - отключается фильтр на 20 мин.
Цифровой термометр и управление нагревателем и охладителем(в моем случае кулер).

Органы управления
1 кнопка отмена
2 кнопка вверх
3 кнопка вниз
4 кнопка ОК

Нагрузки
D10 куллер (С регулировкой оборотов)
D11 ЛЕД (Восход/закат)
А0 1W (термометр)
D12 Фильтр
D13 Нагреватель
D1 СО2
D0 Компрессор
А1 Свет1
А2 Свет2
А3 УДО Микро
А4 УДО Макро
А5 УДО Железо
А6 Управление БП
Себестоимость контроллера чуть больше 10 баксов.

На картинке силовая часть в виде готового релейного модуля (такие есть и на 8 каналов - цена около 8 баксов), я использовал свою плату силовой части - схема и печатка во вложении(плату изготавливал по ЛУТ технологии).
Все проверено - работает.

Все комплектующие покупались на ибей и цены ориентировочные доставке везде БЕСПЛАТНАЯ.

ВАЖНО.
соединять ардуино и часы проводниками минимальной длинны !!!

Варианты скетча:

MIHS, скетч с измененными буквами.

Одна из лучших реализаций от форумчан

burnashev https://www.aquaforum.ua/showpost.ph...postcount=1221

Ant0ny https://www.aquaforum.ua/showpost.ph...postcount=1224

Мініатюри долучень
Щоб збільшити малюнок, клацніть по ньому
Назва:  $(KGrHqZ,!rYFG1iISsbLBRzjq2iFV!~~60_12.JPG
Переглядів: 3812
Розмір:  18,8 КБ
ID:	415548   Щоб збільшити малюнок, клацніть по ньому
Назва:  TK0616-2-easydealhere.jpg
Переглядів: 4589
Розмір:  122,2 КБ
ID:	415549   Щоб збільшити малюнок, клацніть по ньому
Назва:  047167-1-03.jpg
Переглядів: 3949
Розмір:  25,3 КБ
ID:	415550   Щоб збільшити малюнок, клацніть по ньому
Назва:  047167-1-02.jpg
Переглядів: 3840
Розмір:  17,8 КБ
ID:	415551   Щоб збільшити малюнок, клацніть по ньому
Назва:  27482.jpg
Переглядів: 4115
Розмір:  63,9 КБ
ID:	416203  

Щоб збільшити малюнок, клацніть по ньому
Назва:  Плата 220.jpg
Переглядів: 5548
Розмір:  88,0 КБ
ID:	451418   Щоб збільшити малюнок, клацніть по ньому
Назва:  aqua_controll_sch.jpg
Переглядів: 11721
Розмір:  55,4 КБ
ID:	457447  

Долучені файли
Тип файлу: rar libraries.rar (225,8 КБ, 5032 переглядів)
Тип файлу: zip aqua_controll_PNG.zip (1,59 МБ, 5047 переглядів)
Тип файлу: rar aqua_controll_spl7.rar (237,5 КБ, 4499 переглядів)
Тип файлу: rar aqua_controll.rar (9,1 КБ, 4902 переглядів)
Тип файлу: rar 220_v3.rar (18,4 КБ, 4537 переглядів)


Востаннє редагував AlexVOK: 01.02.2019 о 23:47..
Переглядів: 551584
Відповісти з цитуванням
Ці 48 користувач(ів) сказали Дякую AlexVOK за це повідомлення:
AkaPain (28.08.2015), Alex Meng (30.10.2017), Andressio (01.02.2015), Ant0ny (08.07.2018), Arduino (03.12.2016), burnashev (16.09.2018), chack (10.12.2014), Denisios (27.05.2014), dimul (29.04.2014), Floyd (09.07.2018), Gorbounov (20.09.2014), h_a_m (12.01.2015), imac2008 (20.12.2015), kolljj (20.11.2014), Litr55 (24.02.2021), LVit (20.01.2016), Mehannik (11.11.2014), MIHS (27.01.2016), Multiman (27.03.2015), nanolab (18.03.2015), Olegvs (25.03.2017), PaninAV (07.09.2018), paradox860 (22.12.2014), pdv1965 (20.03.2014), RozarioAgro (10.03.2015), rusianGrt (09.10.2017), sae74 (22.08.2014), sefr111 (28.04.2016), Sem (22.03.2015), Sikx (30.01.2019), Slesh (18.10.2014), Spiker (12.11.2015), spolyakov (20.06.2015), steals81 (17.03.2014), Toha24510 (22.10.2015), Tvister86 (07.02.2017), ya7sergey (09.02.2017), _Vadim (27.02.2016), _Константин_ (28.03.2016), акв@фанат (23.11.2014), Артур Дент (24.04.2014), Ветал (08.03.2016), Вячеслав Сергеев (14.09.2015), Игорь-1 (30.10.2014), Никола73 (31.03.2017), Петко Шкодров (18.10.2014), Сан Саныч (07.10.2024), Юрий77 (26.02.2016)
Старий 27.02.2015, 09:05   #511
Живу я тут
  
 
Реєстрація: 06.04.2012
Звідки Ви: Санкт-Петербург
Дописи: 176
сказав Дякую: 22
сказали Дякую 30 раз(и) в 26 повідомленні
Re: Простой акваконтроллер ARDUINO ===www.aquaforum.ua===

Вот и я думаю не туда пихаю.

Вячеслав Сергеев поза форумом   Відповісти з цитуванням
Старий 27.02.2015, 09:43   #512
Живу я тут
  
 
Реєстрація: 06.04.2012
Звідки Ви: Санкт-Петербург
Дописи: 176
сказав Дякую: 22
сказали Дякую 30 раз(и) в 26 повідомленні
Re: Простой акваконтроллер ARDUINO ===www.aquaforum.ua===

Получилось, спасибо.
Мініатюри долучень
Щоб збільшити малюнок, клацніть по ньому
Назва:  Безымянный1.jpg
Переглядів: 814
Розмір:  163,9 КБ
ID:	486035  

Вячеслав Сергеев поза форумом   Відповісти з цитуванням
Старий 27.02.2015, 10:56   #513
Придивляюся
  
 
Реєстрація: 20.06.2009
Звідки Ви: Ульяновск
Дописи: 44
сказав Дякую: 16
сказали Дякую 1 раз(и) в 1 повідомленні
Re: Простой акваконтроллер ARDUINO ===www.aquaforum.ua===

Цитата:
Допис від AlexVOK Переглянути допис
AlexNT, а вы посчитайте сколько стоит MEAN WELL по нынешнему курсу
MBI6651 22грн
дросель 100 мкГн 7 грн (кардачи павильон 9В)
танталы 5 - 6 грн
диод 2 грн
резистор + текстолит + флюс + ... 2 грн

всего около 40 - 45 грн.

По поводу резисторов и хитрых номиналов = все просто набираем 2-8 шт параллельно

Да и ток какой нравится - я на некоторых каналах по 800мА выставил
где можно про эти драйверы почитать?

андрей.н поза форумом   Відповісти з цитуванням
Старий 27.02.2015, 12:21   #514
Живу я тут
  
 
Реєстрація: 06.04.2012
Звідки Ви: Санкт-Петербург
Дописи: 176
сказав Дякую: 22
сказали Дякую 30 раз(и) в 26 повідомленні
Re: Простой акваконтроллер ARDUINO ===www.aquaforum.ua===

Цитата:
Допис від андрей.н Переглянути допис
где можно про эти драйверы почитать?
http://www.google.ru/url?url=http://...MWYtTNWKCHPOfw

Вячеслав Сергеев поза форумом   Відповісти з цитуванням
Старий 27.02.2015, 12:23   #515
Живу я тут
  
 
Реєстрація: 06.04.2012
Звідки Ви: Санкт-Петербург
Дописи: 176
сказав Дякую: 22
сказали Дякую 30 раз(и) в 26 повідомленні
Re: Простой акваконтроллер ARDUINO ===www.aquaforum.ua===

индикатор обогревателя сделал а включить не могу.
Мініатюри долучень
Щоб збільшити малюнок, клацніть по ньому
Назва:  Безымянный.jpg
Переглядів: 584
Розмір:  114,0 КБ
ID:	486069  

Вячеслав Сергеев поза форумом   Відповісти з цитуванням
Старий 27.02.2015, 12:44   #516
Придивляюся
  
 
Реєстрація: 12.01.2015
Звідки Ви: Litva
Дописи: 21
сказав Дякую: 0
сказали Дякую 1 раз(и) в 1 повідомленні
Re: Простой акваконтроллер ARDUINO ===www.aquaforum.ua===

Dobryj den, a vy nedumali o takoi podsvetke akvariuma http://www.ebay.com/itm/1W-COB-LED-F...item2ed6f90bc7
dolzno byt udobno, odna palocka 50-60 v. Ja kupil lampocku e27 4w iz 4 palocek ocen prijatnyj svet, gorit kak lampocka i svet dajet na 360 gradusov.

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

Вячеслав Сергеев, так работать не будет

EXT_HEATER_PIN - это просто № ножки и никакой информации о состоянии не несет

AlexVOK поза форумом   Відповісти з цитуванням
Старий 27.02.2015, 13:30   #518
Живу я тут
  
 
Реєстрація: 06.04.2012
Звідки Ви: Санкт-Петербург
Дописи: 176
сказав Дякую: 22
сказали Дякую 30 раз(и) в 26 повідомленні
Re: Простой акваконтроллер ARDUINO ===www.aquaforum.ua===

AlexVOK, Я предполагал это, мне не найти строку в которой хранится состояние D12. Подскажите пожалуйста.

Вячеслав Сергеев поза форумом   Відповісти з цитуванням
Старий 27.02.2015, 17:10   #519
Придивляюся
  
 
Реєстрація: 12.11.2013
Звідки Ви: Болгария
Дописи: 34
сказав Дякую: 107
сказали Дякую 143 раз(и) в 20 повідомленні
Re: Простой акваконтроллер ARDUINO ===www.aquaforum.ua===

В начале
boolean HEATER = false;


if(cur_temp < (float)aquaT){
digitalWrite(EXT_HEATER_PIN, HIGH); // включает нагреватель
HEATER = true;
}else{
digitalWrite(EXT_HEATER_PIN, LOW); // выключает нагреватель
HEATER = false;
}


Востаннє редагував Петко Шкодров: 02.03.2015 о 12:50..
Петко Шкодров поза форумом   Відповісти з цитуванням
cказали "Дякую" Петко Шкодров за цей допис:
Старий 27.02.2015, 21:53   #520
Придивляюся
  
 
Реєстрація: 08.01.2008
Звідки Ви: Pinsk, RB
Дописи: 43
сказав Дякую: 5
сказали Дякую 16 раз(и) в 12 повідомленні
Re: Простой акваконтроллер ARDUINO ===www.aquaforum.ua===

Ну... раз уж пошли бросаться кусками кода, то внесу парочку вредных идеек.
(Да, вот такой я вредный)
Определяем переменные состояния выводов ардуинки что-то типа тагого
// Переменные текущего состояния выводов Arduino
byte pinCoolingState;
byte pinLed1State;
//byte pinLed2State;
//byte pinLed3State;
//byte pinLed4State;
//byte pinLed5State;
//byte pinLed6State;
byte pinAirState;
byte pinCOState;
byte pinLight1State;
byte pinLight2State;
byte pinFilterState;
byte pinHeaterState;
byte pinPowerOnState;
byte pinDispLedState;
//byte pinUdoMacroState;
//byte pinUdoMicroState;
//byte pinUdoFeState;

Затем во всех местах проги, где встречается код типа

analogWrite(LED_LIGHT_PIN, displLedLight);
или
digitalWrite(EXT_HEATER_PIN, HIGH);

пишем:
pinDispLedState = displLedLight;
pinHeaterState = HIGH

Т.е. физически в ножки ардуинки ничего не пишем. Только задаем виртуально их текущее состояние. И только в конце Loop() вызываем функцию записи что-то вроде:

void SetPinState(void)
{ //Устанавливает выходы Arduino в заданное состояние
analogWrite(EXT_COOLING_PIN, pinCoolingState); //Вентилятор
analogWrite(LED_LIGHT_PIN, pinDispLedState); //Подсветка дисплея
analogWrite(EXT_LIGHT_LED1_PIN, pinLed1State); //Светодиодная подсветка
//analogWrite(EXT_LIGHT_LED2_PIN, pinLed1State);
//analogWrite(EXT_LIGHT_LED3_PIN, pinLed1State);
//analogWrite(EXT_LIGHT_LED4_PIN, pinLed1State);
//analogWrite(EXT_LIGHT_LED5_PIN, pinLed1State);
//analogWrite(EXT_LIGHT_LED6_PIN, pinLed1State);

digitalWriteFast(EXT_AIR_PIN, pinAirState);
digitalWriteFast(EXT_CO2_PIN, pinCOState);
digitalWriteFast(EXT_LIGHT_1_PIN, pinLight1State); //Светильник 1
digitalWriteFast(EXT_LIGHT_2_PIN, pinLight2State); //Светильник 2
digitalWriteFast(EXT_FILTER_PIN, pinFilterState); //Фильтр
digitalWriteFast(EXT_HEATER_PIN,); //Нагреватель
digitalWriteFast(EXT_POWER_ON_PIN,);
//digitalWriteFast(EXT_UDO_MACRO_PIN, pinUdoMacroState);
//digitalWriteFast(EXT_UDO_MICRO_PIN, pinUdoMicroState);
//digitalWriteFast(EXT_UDO_Fe_PIN, pinUdoFeState);
}

Таким образом, последовательно читая таймера мы не сталкиваемся с микросекундными бросками напряжения на выходах, когда один таймер включает нагрузку, а следом за ним другой таймер (или возможная подпрограмма обработки аварийных ситуаций) тут-же выключает ее. На выходе мы получаем уже четко сформированное состояние ВСЕХ ножек ардуинки.
Ну и плюс еще один Бонус - широкие возможности для эспериментов. Программа может обсчитывать кучу всяких выходов-нагрузок. Даже тех, которых на самом деле нет например с десяток каналов ледов для которых и выводов не хватит И только на последнем этапе вывести на конкретные ножки ардуинки или ипользовать регистры, расширители, а то и просто проигнорировать их не изменяя основной код программы или как вариант залить в "более ногастую" ардуину.

AlexNT поза форумом   Відповісти з цитуванням
Ці 3 користувач(ів) сказали Дякую AlexNT за це повідомлення:
AQUAPLUS (28.02.2015), icetechno (27.02.2015), paradox860 (02.03.2015)
Старий 27.02.2015, 22:06   #521
Придивляюся
  
 
Реєстрація: 08.01.2008
Звідки Ви: Pinsk, RB
Дописи: 43
сказав Дякую: 5
сказали Дякую 16 раз(и) в 12 повідомленні
Re: Простой акваконтроллер ARDUINO ===www.aquaforum.ua===

Ах да, забыл предупредить. Это не сработает на участках оригинального кода, где есть задержки как в обработке УДО
case 6: // UDO
udo_tim = (byte) (b4 & B00111111);
digitalWriteFast(EXT_POWER_ON_PIN, HIGH);
delay(100); //Время на выход в режим БП
switch ((byte) ((b4 >> 6) & B00000011)) {
case 0:
digitalWriteFast(EXT_UDO_MICRO_PIN, HIGH);
delay(udo_tim * 4.2);
digitalWriteFast(EXT_UDO_MICRO_PIN, LOW);
break;
case 1:
digitalWriteFast(EXT_UDO_MACRO_PIN, HIGH);
delay(udo_tim * 4.2);
digitalWriteFast(EXT_UDO_MACRO_PIN, LOW);
и так далее
Просто мне пока УДО не актуально и я "слегка позволил себе"
И да, у меня подключена библиотека digitalWriteFast.h так что в моем коде
digitalWriteFast()
можно заменить на обычное
digitalWrite()

AlexNT поза форумом   Відповісти з цитуванням
Старий 27.02.2015, 23:28   #522
Бан за нарушения
  
 
Реєстрація: 04.01.2009
Звідки Ви: Полтава
Дописи: 5.494
сказав Дякую: 6.242
сказали Дякую 5.758 раз(и) в 2.264 повідомленні
Надіслати повідомлення для sae74 на ICQ Надіслати повідомлення для sae74 на Skype
Re: Простой акваконтроллер ARDUINO ===www.aquaforum.ua===

AlexVOK,Из сообщения AlexNT я так понял что УДО дозатор вы просто делаете задержку?
Позволю предложить вставить возможность прерывания подачи.
Или это реализовано?


__________________

sae74 поза форумом   Відповісти з цитуванням
Старий 28.02.2015, 00:19   #523
Придивляюся
  
 
Реєстрація: 08.01.2008
Звідки Ви: Pinsk, RB
Дописи: 43
сказав Дякую: 5
сказали Дякую 16 раз(и) в 12 повідомленні
Re: Простой акваконтроллер ARDUINO ===www.aquaforum.ua===

Цитата:
Допис від sae74 Переглянути допис
AlexVOK,Из сообщения AlexNT я так понял что УДО дозатор вы просто делаете задержку?
Позволю предложить вставить возможность прерывания подачи.
Или это реализовано?
Нет. Видать плохо выразился. Как раз у меня дозаторы УДО просто вырезаны за ненадобностью. Участок кода с дозаторами - это целиком Ваш код. Он приведен как пример того участка кода где моя идея с "отложенной" записью в ножки процессора НЕ сработает.

AlexNT поза форумом   Відповісти з цитуванням
Старий 01.03.2015, 14:04   #524
Живу я тут
  
 
Реєстрація: 06.04.2012
Звідки Ви: Санкт-Петербург
Дописи: 176
сказав Дякую: 22
сказали Дякую 30 раз(и) в 26 повідомленні
Re: Простой акваконтроллер ARDUINO ===www.aquaforum.ua===

Цитата:
Допис від Петко Шкодров Переглянути допис
В начале
boolean HEATER = false;


if(cur_temp < (float)aquaT){
digitalWrite(EXT_HEATER_PIN, HIGH); // включает нагреватель
HEATER = true;
}else
digitalWrite(EXT_HEATER_PIN, LOW); // выключает нагреватель
HEATER = false;
Спасибо, завтра попробую.

Вячеслав Сергеев поза форумом   Відповісти з цитуванням
Старий 02.03.2015, 08:31   #525
Придивляюся
  
 
Реєстрація: 01.09.2011
Звідки Ви: Ставропольский краи
Дописи: 78
сказав Дякую: 27
сказали Дякую 49 раз(и) в 28 повідомленні
Re: Простой акваконтроллер ARDUINO ===www.aquaforum.ua===

А кто разобрался как сделать так чтоб при вырубании света задания не проходили невыполненными? Смотрел скетч в этой теме, товарищ выкладывал, но как я понял там просто отдельная менюшка с интервальными таймерами...
__________________
Сообщество аквариумистов КМВ www.aquakmv.com

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


Share/Bookmark

Відповідь

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


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

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

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

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


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


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


no new posts