Посетитель


148 8
Пятигорск
2 дн.

Простенький акваконтроллер на ARDUINO

Всем привет вот за пару дней наваял контроллер.

Что умеет:
1. Включать выключать свет по таймеру
2. Включать выключать Co2 по таймеру
3. Ну и включать кулеры в крышке или обогреватель - термоконтроллер
4. Показывать время и температуру))).

Что еще хотелось бы прикрутить:
1. измерение PH.
2. Добавление удо 1 раз в X минут или часов.
Проект пока не доделан. Может кто поможет оптимизировать код ну или поправить если что не красиво зделанно.
Корпуса пока нет))).

Щас жду некоторые запчастюльки для силовой части схемы потом продолжу если кому интересно.




2011-06-1616/06/2011 11:21:27
#1443198
Нравится Volcan0, KoRvin
Посетитель


148 8
Пятигорск
2 дн.

сообщение AquaCross

Paradox860

Вот на сайте производителя такие и такие - посмотри даташит, там с лихвой вся инфа. А вот тут цены и конечный вид СД на теплоотводящей подложке.
Как ко мне все придет и я соберу, дам знать подробной темкой. Я тоже не 1 махом купил, откладывал 2 месяца, да и жене сказал, что всего 3к потратил

Изменено 27.8.12 автор AquaCross

Ага спасибо, почитаем!
Ждем твою тему по ЛЕД!
2012-08-2727/08/2012 09:06:08
#1663899
Посетитель


108 4
Волгоград
4 года
Вот тут добавил автоматическую регулировку яркости дисплея от освещенности (Чтобы ночью в глаза не била).
2012-08-2727/08/2012 18:49:05
#1664119
Посетитель


51 2
Королёв
4 мес.

wattnik
круто,а можно подробнее? Я думал у такого экранчика только перем. резистором что на нем распаян можно регулировпть? На какой же ноге яркость?
2012-08-2727/08/2012 21:35:33
#1664195
Новичок


8
Russian Federation Novosibirsk
6 года
Димер я имел виду для светодиодов, а по силовой развяски понятно почитал в инети да пишут что иногда залипают, буду собирать на симистрах.
Ура первая посылка пришла, камни для моего цихлидника:
2012-08-2828/08/2012 05:06:42
#1664268
Посетитель


108 4
Волгоград
4 года

romku


Переменным резистором регулируется контрастность экрана, а яркость подсветки на 10 ноге. Обнаружил чисто случайно, когда присвоил 10 ногу внешнему светодиоду.
2012-08-2828/08/2012 07:26:45
#1664283
Посетитель


148 8
Пятигорск
2 дн.

сообщение wattnik

romku


Переменным резистором регулируется контрастность экрана, а яркость подсветки на 10 ноге. Обнаружил чисто случайно, когда присвоил 10 ногу внешнему светодиоду.

Круть! Недокументированные возможности!Во всех даташитах 10-просто нога данных. Утебя я смотю дисплей с кнопками сразу?I2C?
Может поэтому регулировка подсветки?
У меня подсветка вот так работает:
switch(LCD_LED)
{
case 0:
n6=0; //Выключенно
break;
case 1:
n6=1; //Включенно
break;
case 2: // Авто
if (n1==0 && n2==0 && n3==0 && n4==0)
{ n6=0;}
else {n6=1;}
break;
Три положения ON OFF AUTO. Последнее работает по принципу если хоть одна лампа горит горит и подсветка.
Кто нибудь сделал внесение удобрений?

Изменено 28.8.12 автор Paradox860
2012-08-2828/08/2012 13:23:46
#1664406
Свой на Aqa.ru


2012 203
Москва
2 года

Paradox860
Кто нибудь сделал внесение удобрений?

вот на этом движке можно сделать, главное придумать редуктор к шприцу или его аналогу.

Изменено 28.8.12 автор AquaCross
2012-08-2828/08/2012 22:43:52
#1664578
Посетитель


108 4
Волгоград
4 года

Paradox860


У меня идет сразу LCD shield с кнопками.


LiquidCrystal lcd(8, 9, 4, 5, 6, 7);


int photosense = 15;
int backLed = 10;
pinMode(backLed, OUTPUT);


int val = analogRead(photosense);
val = constrain(val, 0, 200);
int ledLevel = map(val, 0, 200, 0, 255);
analogWrite(backLed, ledLevel);


это вырезки из кода отвечающие за инициализацию дисплея и подсветка его через фоторезистор.

Изменено 29.8.12 автор wattnik
2012-08-2929/08/2012 08:15:38
#1664677
Посетитель


148 8
Пятигорск
2 дн.
Интересна логика работы. Я вот думаю сделать на сервах .
2012-08-2929/08/2012 10:51:41
#1664731
Свой на Aqa.ru


2012 203
Москва
2 года

Paradox860

Серва в несколько раз слабее, и может не продавить, да и шаг у нее маловат(для колена, но много для крутящего шага), основываюсь на собственном опыте из владения RC машинкой 1:10 для дрифта.

Изменено 29.8.12 автор AquaCross
2012-08-2929/08/2012 11:00:51
#1664737
Посетитель


148 8
Пятигорск
2 дн.
" target="_blank" rel="nofollow">Вот! Качает ровно полтора кубика за раз.

Изменено 29.8.12 автор Paradox860
2012-08-2929/08/2012 12:04:31
#1664759
Свой на Aqa.ru


2012 203
Москва
2 года

Paradox860

Ого! Не плохо ))) но это каждый раз заряжать шприц надо.
Есть у кого-нить мысли о многозарядности?
У меня есть мысль о самопополнении:


Главное, чтоб в шлангах и обр. клапанах не было пузырьков воздуха. А так можно рассчитать концентрацию раствора, исходя из потребности и возможности залить за 1 раз, или конкретное кол-во раз по программе: 1-3-5 пшика(ов) за 30 мин до вкл света.

Изменено 29.8.12 автор AquaCross
2012-08-2929/08/2012 13:14:31
#1664785
Посетитель


148 8
Пятигорск
2 дн.
Наполнение както так.

2012-08-2929/08/2012 13:25:42
#1664791
Свой на Aqa.ru


2012 203
Москва
2 года

Paradox860

А серва аналоговая с 2я каналами или цифровая? Как реализована привязка к Арду? Можно-ли сделать полный круг плеча, а не маятник?
2012-08-2929/08/2012 14:04:30
#1664805
Посетитель


148 8
Пятигорск
2 дн.

AquaCross

Используется бибилиотека SERVO, подключение цифровое, возможность регулировки от 0 до 180 градусов с шагом 1 градус.
Если немного доработать серву можно делать полный оборот, только зачем?
2012-08-2929/08/2012 14:10:36
#1664810
Свой на Aqa.ru


2012 203
Москва
2 года

Paradox860

в принципе не зачем, но я сразу продумываю оптимизацию: лучше одна команда на круг(пополнение и впрыск или наоборот, зависит от раположения и подсоединения), чем 2 команды по отдельности, хотя судя по реализации, разницы нет, раз это цифра с полной и тонкой настройкой )) Все больше и больше начинаю влюбляться в Ардуино - это ж столько всего можно наворотить с "больной" головой-то, и не только для аквы.

Изменено 29.8.12 автор AquaCross
2012-08-2929/08/2012 14:17:12
#1664815
Посетитель


148 8
Пятигорск
2 дн.

сообщение AquaCross

Paradox860

в принципе не зачем, но я сразу продумываю оптимизацию: лучше одна команда на круг(пополнение и впрыск или наоборот, зависит от раположения и подсоединения), чем 2 команды по отдельности, хотя судя по реализации, разницы нет, раз это цифра с полной и тонкой настройкой )) Все больше и больше начинаю влюбляться в Ардуино - это ж столько всего можно наворотить с "больной" головой-то, и не только для аквы.

Изменено 29.8.12 автор AquaCross

Да прикольная штуковина))). Проблемка только в реализации кода, пока не придумал как впихнуть команды на выполнения для сервы, чтоб все остальное не тормозило когда выполняется эта команда(((.Приходит в голову только второй контроллер для управления, ну допустип 4 сервами подключенный к основной плате по 2 проводам (Soft Serial).Главное сервы, относительно других насосов дешевы)
2012-08-2929/08/2012 14:28:38
#1664823
Свой на Aqa.ru


2012 203
Москва
2 года

Paradox860

т.е. при выполнении команды для серво все остальное падает, или просто зависает до окончении команды? Я тоже продумывал спариваение 2х матерей, только как это сделать, синхронно/субсидиарно или автономно?
2012-08-2929/08/2012 14:34:12
#1664828
Посетитель


148 8
Пятигорск
2 дн.

AquaCross

Зависает на время выполнения, тут хорошо бы с прерываниями побаловаться.Соеденить два контроллера можно по 2 проводам.Использовать библиотеку софт сериал и слать команды как с компа на дуину шлеш.Причем работает туда и обратно. Можно допустим послать команду там - выполнить два оборота на серве один, и потом получить ответ что выполнено. Ну думаю как то так. Кстате в качестве второго контроллера я выбрал Мегу8 в смдшном корпусе, прошил ей загрузчик дуиновский)).
2012-08-2929/08/2012 14:48:13
#1664833
Свой на Aqa.ru


2012 203
Москва
2 года

Paradox860
Можно допустим послать команду там - выполнить два оборота на серве один, и потом получить ответ что выполнено.


я так понимаю разные библиотеки "подгружают" по разному, и команда на выполнение там "легче" чем ее выполнение "в себе"? А может в коде синтакс/арфо ошибка, посмотри, может просто глаз замылился и не видишь банального? - такое тоже бывает.
2012-08-2929/08/2012 15:04:40
#1664847
Посетитель


148 8
Пятигорск
2 дн.

AquaCross

Смысл в том чтоб с основной платы послать только
Serial.print(5);
А вторая платка уже получив команду будет неспеша выполнять цикл

for(int i=0;i<5;i++){
myservo.write(180);
delay(1000);
myservo.write(0);
delay(1000);
2012-08-2929/08/2012 15:35:29
#1664856
Свой на Aqa.ru


2012 203
Москва
2 года

Paradox860

Ну а сама библиотека SerialSoft/ с выполнением команды будет меньше грузить, чем servo с командой? Или я не правильно выразился? Я пока шарю только в теории, но общая картина проста и понятна как 2 копейки, осталось понять алгоритм и его вариации подачи команд и ответов и изучить язык, хотя он больше английский, но со специфичными вкроплениями.
2012-08-2929/08/2012 16:03:05
#1664873
Посетитель


148 8
Пятигорск
2 дн.
Тут прикол в том что нужно делать цикл и ставить в каждой итерации делей хотябы на 1 сек, чтоб серва успела повернуться. Вот эта конструкция и грузит проц. А просто посыл команды в порт никак на скорость не влияет, никаких задержек.
2012-08-2929/08/2012 17:42:12
#1664909
Посетитель


108 4
Волгоград
4 года

AquaCross


Цикл, который указал Paradox860 подвесит контроллер на 10 секунд. В это время контроллер не будет выполнять остальной код. А если задействовать только посыл команды Serial.print, то контроллер ее обработает в считанные доли миллисекунд и будет выполнять дальше код программы без зависания.
2012-08-2929/08/2012 22:40:59
#1665056
Посетитель


108 4
Волгоград
4 года
Вопрос чайника: как одновременно задействовать аналоговый вход A1 и цифровой 1?
Суть в том что если я указываю допустим ledpin=1 и затем pinmode(ledpin, OUTPUT) то как после этого обращаться к аналоговому входу A1?

Изменено 30.8.12 автор wattnik
2012-08-3030/08/2012 13:14:45
#1665254



Top