 |
|
17.03.2014, 13:10
|
|
Простой акваконтроллер ARDUINO
Живу я тут
Реєстрація: 11.07.2013
Звідки Ви: Киев (Борщаговка)
Дописи: 665
сказав Дякую: 106
сказали Дякую 535 раз(и) в 244 повідомленні

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
Мініатюри долучень
Долучені файли
 |
libraries.rar (225,8 КБ, 5032 переглядів) |
 |
aqua_controll_PNG.zip (1,59 МБ, 5047 переглядів) |
 |
aqua_controll_spl7.rar (237,5 КБ, 4499 переглядів) |
 |
aqua_controll.rar (9,1 КБ, 4902 переглядів) |
 |
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===
Получилось, спасибо.
|
|
|
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===
индикатор обогревателя сделал а включить не могу.
|
|
|
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.
|
|
|
27.02.2015, 12:53
|
#517
|
Живу я тут
Реєстрація: 11.07.2013
Звідки Ви: Киев (Борщаговка)
Дописи: 665
сказав Дякую: 106
сказали Дякую 535 раз(и) в 244 повідомленні
|
Re: Простой акваконтроллер ARDUINO ===www.aquaforum.ua===
Вячеслав Сергеев, так работать не будет
EXT_HEATER_PIN - это просто № ножки и никакой информации о состоянии не несет 
|
|
|
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);
}
Таким образом, последовательно читая таймера мы не сталкиваемся с микросекундными бросками напряжения на выходах, когда один таймер включает нагрузку, а следом за ним другой таймер (или возможная подпрограмма обработки аварийных ситуаций) тут-же выключает ее. На выходе мы получаем уже четко сформированное состояние ВСЕХ ножек ардуинки.
Ну и плюс еще один Бонус - широкие возможности для эспериментов. Программа может обсчитывать кучу всяких выходов-нагрузок. Даже тех, которых на самом деле нет  например с десяток каналов ледов для которых и выводов не хватит  И только на последнем этапе вывести на конкретные ножки ардуинки или ипользовать регистры, расширители, а то и просто проигнорировать их не изменяя основной код программы или как вариант залить в "более ногастую" ардуину.
|
|
|
Ці 3 користувач(ів) сказали Дякую AlexNT за це повідомлення:
|
|
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()
|
|
|
27.02.2015, 23:28
|
#522
|
Бан за нарушения
Реєстрація: 04.01.2009
Звідки Ви: Полтава
Дописи: 5.494
сказав Дякую: 6.242
сказали Дякую 5.758 раз(и) в 2.264 повідомленні
|
Re: Простой акваконтроллер ARDUINO ===www.aquaforum.ua===
AlexVOK,Из сообщения AlexNT я так понял что УДО дозатор вы просто делаете задержку?
Позволю предложить вставить возможность прерывания подачи.
Или это реализовано?
__________________ 
|
|
|
28.02.2015, 00:19
|
#523
|
Придивляюся
Реєстрація: 08.01.2008
Звідки Ви: Pinsk, RB
Дописи: 43
сказав Дякую: 5
сказали Дякую 16 раз(и) в 12 повідомленні
|
Re: Простой акваконтроллер ARDUINO ===www.aquaforum.ua===
Цитата:
Допис від sae74
AlexVOK,Из сообщения 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
|
|
|
 |
|
Тут присутні: 1 (учасників - 0 , гостей - 1)
|
|
Ваші права у розділі
|
Ви не можете створювати теми
Ви не можете писати дописи
Ви не можете долучати файли
Ви не можете редагувати дописи
HTML код Вимк.
|
|
|
Часовий пояс GMT +3. Поточний час: 09:00.
|