Посетитель
|
Простенький акваконтроллер на ARDUINO |
Всем привет вот за пару дней наваял контроллер. |
|
#1443198 |
Постоянный посетитель
|
|
Доброго дня (тяжелый вдох..). |
|
#1443225 |
|
Посетитель
|
|
Paradox860 Предлагаю добавить(замутить) датчик протечек с отправкой емайла или смс, или вот - все показатели в твиттер!(как чайник который по закипанию отдавал твит о закипании). Чем будешь мерить кислотность? Как будешь выставлять во внешний мир?. Как будешь добавлять удо?(мотор и счетчик оборотов/концевой/...) cz0 Код на С++ Изменено 16.6.11 автор fc Антон |
|
#1443230 |
Посетитель
|
|
cz0 А что такой тяжелый вздох? Ответы: 1.С++ 2.I2C 3.Все настройки сохраняются в ПЗУ. Зачем ему резервное питание?Вырубится свет вырубится весь аквас(хотя у меня для этого ИБП). 4. Кнопков 3 . 5. Все в цикле (канечно не правильно но просто не знаю как по другому). PS. Навесного ничего не будет, это пока только макет. Как все отлажу сделаю плату ЛУТом и заменю контроллер на Мегу8 с загрузчиком Ардуино. |
|
#1443245 |
Посетитель
|
|
fc Антон Отправка смс очень дорого выйдет если по GSM делать но возможно...(нужно будет шилд купить).А вот по интернету дешевле шилд всего 20$ стоит прикрутить очень легко будет))) На счет PH надеялся ктото подскажет как замутить . Есть мысль купить на ибэе мерилку за 13$ раскурочить ее и прикрутить сюда , но это пока только мысли..... С удо еще не придумал впринципе можно делать как душа пожелает. |
|
#1443250 |
Посетитель
|
|
Кстате как лучше замутить датчик протечки кто подскажет? |
|
#1443253 |
|
Малёк
44
Шахты 12 года |
|
сообщение Paradox860 Я использовал HIH4000-001, но нужно ацп он чисто аналоговый. При намокании на выходе мгновенно появляется +5в. http://www.gaw.ru/ht... |
|
#1443280 |
Посетитель
|
|
vlad61 АЦП имеетса... Хм а сколько ты за него отдал?Хорошая тема. Но хотелось бы что нибудь из подручных материалов зделать. |
|
#1443287 |
Посетитель
|
|
#1443296 |
|
Посетитель
|
|
Paradox860 Ну нагуглил - надо разбираться http://code.google.c... - собственно измерение ПШ http://www.arduino.c... - форум где у парня контроллер измеряетTemp (heater, fan, kills lights if too hot) Water level (uses float switch) Power heads (kills pumps for 5 min for feeding) Displays pH Собственно покурив проект(и форум), нашел как делается PH метр http://reefprojects.... А датчик протечки/перелива http://www.arduino.c... с кодом Изменено 16.6.11 автор fc Антон |
|
#1443302 |
Посетитель
|
|
сообщение fc Антон Спасибо будим курить.... |
|
#1443331 |
Постоянный посетитель
|
|
В первую очередь я бы рекомендовал бы заткнуть обработку часов во внешнее прерывание от RTC. От циклов избавиться, загоняться контроллер в IDLE, просыпаться по прерыванию от таймера (хоть внутреннего пустого) пускай 10 раз в секунду по пустому прерыванию что бы управление передалось в main или откуда было прервано (скорее всего от предыдущего слипа в конце мейна). В мейне пройтись про процедуркам (с) на предмет опроса времени, выявления сделать операцию по таймеру (сравнить установленное время по расписанию с текущим) и снова уснуть. Это чуть сложнее сделать, но бесконечный цикл - это кладезь багов и глюков в долгосрочной перспективе. Все будет работать на коленке в тестовом режиме, неделю-две-три, но потом обязательно заглючит. Не выключить свет из-за зависшего контроллера - пол беды, а вот не выключить клапан CO2 или заклинить в момент работы перистальтического насоса, подающего макро/микро (особенно нитраты с фосфатами) - результат не заставит себя долго ждать. |
|
#1443335 |
|
Завсегдатай
|
|
Paradox860 есть же готовые недорогие решения, или хотелось немного ручками? |
|
#1443356 |
Постоянный посетитель
|
|
Paradox860 Ручками: 1. функциональней, потому что железяка будет решать именно данную конкретную задачу в окружении автора 2. интереснее, потому что развивает Это я за себя ответил |
|
#1443359 |
Посетитель
|
|
сообщение Kiraso Ручки чешутся)))) |
|
#1443527 |
|
Посетитель
|
|
Прикрутил выключение света при критическом перегреве.Оч кстате клевая штука. |
|
#1443528 |
Постоянный посетитель
|
|
сообщение Paradox860 Не забудьте прикрутить отключение подачи CO2 сразу при выключении света, если подаете свыше 20 мг/л. |
|
#1443536 |
Посетитель
|
|
сообщение cz0 Ага , спасибо, это уже сделанно)) |
|
#1443546 |
|
Посетитель
|
|
Кто подскажет по Ph датчикам есть ли принципиальна разница между ними?Или можно любой брать? |
|
#1443551 |
Постоянный посетитель
|
|
Paradox860 Они в общем и целом взаимозаменяемы. Бывают "твердотельными" и с раствором. Первые имеют срок годности, и чаще нуждаются в калибровке, во вторых надо менять раствор, но само тело вечное, по крайней мере когда я задал вопрос о ресурсе зав. лабой одного из научных институтов РФ, на что получил ответ "не задумывалась об этом". Либо они их чаще бьют (Ph электрод в лабах - расходник), либо действительно вечные. Еще бывают термокомпенсированные, бывают со встроенным термодатчиком, бывают на разные диапазоны температур. От себя могу добавить, что у научников в лабах наиболее котируются электроды от Hana и Meter. Очень много годных электродов выпускает наша в вами необъятная в силу немалого количества различных хим. процессов и производств. Изменено 16.6.11 автор cz0 |
|
#1443585 |
Постоянный посетитель
|
|
Paradox860 Избавьтесь от циклов, мой Вам совет. Посмотрите треды в HOWTO на avrfreaks, там нет ничего сложного. |
|
#1443885 |
|
Посетитель
|
|
сообщение cz0 Да на Arduine впринципе любая программа это цикл voide loop{}. |
|
#1444092 |
Посетитель
|
|
сообщение cz0 Спасибо за развернутый ответ!!!!! |
|
#1444093 |
Завсегдатай
|
|
сообщение Paradox860 Думаю cz0 имеет в виду все делать через прерывания, а основной цикл программы должен быть пустым. Да на счет eeprom, обязательно почитайте, если еще не сделали, аппноуты атмеловские на эту тему, да и на другие, там много полезного есть. Изменено 20.6.11 автор Kiraso |
|
#1445159 |
|
Постоянный посетитель
|
|
Думаю cz0 имеет в виду все делать через прерывания, а основной цикл программы должен быть пустым. Именно так. Впрочем, у меня основной цикл не пустой, как правило, а содержит вызовы процедур, которые обрабатывают события, что-то типа: int main(void) { for(; { проверить_клавиатуру(); проверить_буфер_usart(); проверить_что-то_еще(); установить_режим_сна(режим); заснуть(); } return(0); } Контроллер, получив пинка от прерывания проснется, обработает прерывание (засунет что-то в буфер клавиатуры, добавит в буфер USART'а, ...), а затем вернется туда, откуда заснул - на начало цикла for, где ему будет предоставлена чудесная возможность разгрести все то, что он получил в прерываниях, после чего благополучно заснет до очередного пинка. Полезненько бывает сделать счетчик-таймер, который будет будить контроллер по переполнению даже если событий не было. Насчет EEPROM'а - таки да, там есть задержка при записи, которую нужно _обязательно_ выдержать, иначе получится импровизация на тему генератора случайных чисел . |
|
#1445171 |