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


Посетитель




132 4
Пятигорск
10 дн. назад
Простенький акваконтроллер на ARDUINO
Всем привет вот за пару дней наваял контроллер.

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

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

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




2011-06-16 добавлено 16/06/2011 11:21:27#1443198
Нравится KoRvin

Посетитель




132 4
Пятигорск
10 дн. назад
сообщение AquaCross
Paradox860

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

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

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

Посетитель




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

Новичок




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

Новичок




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

Посетитель




108 4
Волгоград
3 г. назад
romku


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

Посетитель




132 4
Пятигорск
10 дн. назад
сообщение 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-28 добавлено 28/08/2012 13:23:46#1664406

Свой на Aqa.ru




2011 198
Москва
2 мес. назад
Paradox860
Кто нибудь сделал внесение удобрений?

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

Изменено 28.8.12 автор AquaCross
2012-08-28 добавлено 28/08/2012 22:43:52#1664578

Посетитель




108 4
Волгоград
3 г. назад
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-29 добавлено 29/08/2012 08:15:38#1664677

Посетитель




132 4
Пятигорск
10 дн. назад
Интересна логика работы. Я вот думаю сделать на сервах.
2012-08-29 добавлено 29/08/2012 10:51:41#1664731

Свой на Aqa.ru




2011 198
Москва
2 мес. назад
Paradox860

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

Изменено 29.8.12 автор AquaCross
2012-08-29 добавлено 29/08/2012 11:00:51#1664737

Посетитель




132 4
Пятигорск
10 дн. назад
" class="alink" target="_blank">Вот! Качает ровно полтора кубика за раз.

Изменено 29.8.12 автор Paradox860
2012-08-29 добавлено 29/08/2012 12:04:31#1664759

Свой на Aqa.ru




2011 198
Москва
2 мес. назад
Paradox860

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

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

Изменено 29.8.12 автор AquaCross
2012-08-29 добавлено 29/08/2012 13:14:31#1664785

Посетитель




132 4
Пятигорск
10 дн. назад
Наполнение както так.

2012-08-29 добавлено 29/08/2012 13:25:42#1664791

Свой на Aqa.ru




2011 198
Москва
2 мес. назад
Paradox860

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

Посетитель




132 4
Пятигорск
10 дн. назад
AquaCross

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

Свой на Aqa.ru




2011 198
Москва
2 мес. назад
Paradox860

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

Изменено 29.8.12 автор AquaCross
2012-08-29 добавлено 29/08/2012 14:17:12#1664815

Посетитель




132 4
Пятигорск
10 дн. назад
сообщение AquaCross
Paradox860

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

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

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

Свой на Aqa.ru




2011 198
Москва
2 мес. назад
Paradox860

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

Посетитель




132 4
Пятигорск
10 дн. назад
AquaCross

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

Свой на Aqa.ru




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


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

Посетитель




132 4
Пятигорск
10 дн. назад
AquaCross

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

for(int i=0;i<5;i++){
myservo.write(180);
delay(1000);
myservo.write(0);
delay(1000);
2012-08-29 добавлено 29/08/2012 15:35:29#1664856

Свой на Aqa.ru




2011 198
Москва
2 мес. назад
Paradox860

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

Посетитель




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

Посетитель




108 4
Волгоград
3 г. назад
AquaCross


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

Посетитель




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

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

<< 1234567 >> Создать новую темуБыстрый ответ