go to bottom
Посетитель
Аквафорум рыбкаАквафорум рыбка
Аватар пользователя

161 14
Ессентуки
3 года

Простенький акваконтроллер на ARDUINO (страница 2)

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

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

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

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

Акваконтроллер

для форума

для форума

для форума
2011-06-1616/06/2011 11:21:27
#1443198
Нравится Volcan0, KoRvin
Завсегдатай
Аквафорум рыбкаАквафорум рыбкаАквафорум рыбкаАквафорум рыбка
Аватар пользователя

1007 73
Санкт-Петербург
3 года

сообщение cz0
Насчет EEPROM'а - таки да, там есть задержка при записи, которую нужно _обязательно_ выдержать, иначе получится импровизация на тему генератора случайных чисел Смайлик :).


и не только, обязательно использовать BOD и в регистре адреса хранить адрес ячейки с неактуальными данными,
ну и в идеале каждый параметр в 3 ячейках и мажоритарная выборка

если же используются частые записи в eeprom, то необходимо использовать кольцевой буфер (как простой вариант),
также есть в аппноутах, для исключения быстрого "съедания" ресурса памяти (10 000 - 100 000 циклов записи, в зависимости от чипа)
2011-06-2020/06/2011 11:34:43
#1445184
Постоянный посетитель
Аквафорум рыбкаАквафорум рыбкаАквафорум рыбка
Аватар пользователя

521 12
Химки
4 года

Вот и получится у человека "простой" акваконтроллер... Смайлик :)

2011-06-2020/06/2011 12:48:49
#1445215
Завсегдатай
Аквафорум рыбкаАквафорум рыбкаАквафорум рыбкаАквафорум рыбка
Аватар пользователя

1007 73
Санкт-Петербург
3 года

cz0


Смайлик :)

зы: поэтому я и стараюсь использовать готовые уже опробованные решения, и быстрее и дешевле, ну если конечно приспичит и готового не подобрать, тогда уже своими ручками приходится ...
зызы: а топикстартеру желаю успехов в его начинаниях.
2011-06-2020/06/2011 12:54:03
#1445220
Постоянный посетитель
Аквафорум рыбкаАквафорум рыбкаАквафорум рыбка
Аватар пользователя

521 12
Химки
4 года

Угу.
А к успеху еще и упорства. У меня меги порой по пол сотни перепрошивок в день переживали, и так неделями. Хотя оффтоп, конечно.

2011-06-2020/06/2011 13:21:33
#1445242
Малёк
Аквафорум рыбка
Аватар пользователя

44
Шахты
11 года

сообщение Kiraso

сообщение cz0
Насчет EEPROM'а - таки да, там есть задержка при записи, которую нужно _обязательно_ выдержать, иначе получится импровизация на тему генератора случайных чисел Смайлик :).


и не только, обязательно использовать BOD и в регистре адреса хранить адрес ячейки с неактуальными данными,
ну и в идеале каждый параметр в 3 ячейках и мажоритарная выборка

если же используются частые записи в eeprom, то необходимо использовать кольцевой буфер (как простой вариант),
также есть в аппноутах, для исключения быстрого "съедания" ресурса памяти (10 000 - 100 000 циклов записи, в зависимости от чипа)


А можно ещё проще, зачем нам eeprom с его ограничениями по числу циклов? Я так понял у топикастера есть RTC таймер+батарейка, а в RTC есть RAM с неограниченным числом Write! Я думаю вы меня поняли))) Это все таки не електроних.ru
2011-06-2020/06/2011 14:18:01
#1445281
Завсегдатай
Аквафорум рыбкаАквафорум рыбкаАквафорум рыбкаАквафорум рыбка
Аватар пользователя

1007 73
Санкт-Петербург
3 года

сообщение vlad61
А можно ещё проще, зачем нам eeprom с его ограничениями по числу циклов? Я так понял у топикастера есть RTC таймер+батарейка, а в RTC есть RAM с неограниченным числом Write! Я думаю вы меня поняли))) Это все таки не електроних.ru


конечно можно Смайлик :), просто автор упомянул о том что хранит данные в eeprom, а я только лишь пояснил о подводных камнях, возможно в несколько параноидальном исполнении Смайлик :) ...
кстати, я так и не понял RTC в этих ардуинах не встроен? надо внешний "цеплять"? если так, то могли бы и поставить.
2011-06-2020/06/2011 15:16:36
#1445309
Посетитель
Аквафорум рыбкаАквафорум рыбка
Аватар пользователя

161 14
Ессентуки
3 года

сообщение vlad61

сообщение Kiraso

сообщение cz0
Насчет EEPROM'а - таки да, там есть задержка при записи, которую нужно _обязательно_ выдержать, иначе получится импровизация на тему генератора случайных чисел Смайлик :).


и не только, обязательно использовать BOD и в регистре адреса хранить адрес ячейки с неактуальными данными,
ну и в идеале каждый параметр в 3 ячейках и мажоритарная выборка

если же используются частые записи в eeprom, то необходимо использовать кольцевой буфер (как простой вариант),
также есть в аппноутах, для исключения быстрого "съедания" ресурса памяти (10 000 - 100 000 циклов записи, в зависимости от чипа)


А можно ещё проще, зачем нам eeprom с его ограничениями по числу циклов? Я так понял у топикастера есть RTC таймер+батарейка, а в RTC есть RAM с неограниченным числом Write! Я думаю вы меня поняли))) Это все таки не електроних.ru

Не могу найти пока как писать в рам RTC
2011-06-2020/06/2011 19:56:02
#1445456
Посетитель
Аквафорум рыбкаАквафорум рыбка
Аватар пользователя

161 14
Ессентуки
3 года

сообщение cz0

Думаю cz0 имеет в виду все делать через прерывания, а основной цикл программы должен быть пустым.
Да на счет eeprom, обязательно почитайте, если еще не сделали, аппноуты атмеловские на эту тему, да и на другие, там много полезного есть.

Именно так. Впрочем, у меня основной цикл не пустой, как правило, а содержит вызовы процедур, которые обрабатывают события, что-то типа:
int main(void)
{
for(;Смайлик ;)
{
проверить_клавиатуру();
проверить_буфер_usart();
проверить_что-то_еще();
установить_режим_сна(режим);
заснуть();
}
return(0);
}
Контроллер, получив пинка от прерывания проснется, обработает прерывание (засунет что-то в буфер клавиатуры, добавит в буфер USART'а, ...), а затем вернется туда, откуда заснул - на начало цикла for, где ему будет предоставлена чудесная возможность разгрести все то, что он получил в прерываниях, после чего благополучно заснет до очередного пинка. Полезненько бывает сделать счетчик-таймер, который будет будить контроллер по переполнению даже если событий не было.

Насчет EEPROM'а - таки да, там есть задержка при записи, которую нужно _обязательно_ выдержать, иначе получится импровизация на тему генератора случайных чисел Смайлик :).

Это все конечно красиво и замечательно. Хотелось все сделать проще. Я согласен конечно с вами по поводу прерываний , но пока мне это тяжеловато...
А на счет EEPROM'а задержку я сделал 300мс думаю хватит.У меня значения пишутся только когда я их изменяю т.е. не часто.
2011-06-2020/06/2011 20:00:35
#1445458
Посетитель
Аквафорум рыбкаАквафорум рыбка
Аватар пользователя

161 14
Ессентуки
3 года

сообщение cz0

Думаю cz0 имеет в виду все делать через прерывания, а основной цикл программы должен быть пустым.
Да на счет eeprom, обязательно почитайте, если еще не сделали, аппноуты атмеловские на эту тему, да и на другие, там много полезного есть.

Именно так. Впрочем, у меня основной цикл не пустой, как правило, а содержит вызовы процедур, которые обрабатывают события, что-то типа:
int main(void)
{
for(;Смайлик ;)
{
проверить_клавиатуру();
проверить_буфер_usart();
проверить_что-то_еще();
установить_режим_сна(режим);
заснуть();
}
return(0);
}
Контроллер, получив пинка от прерывания проснется, обработает прерывание (засунет что-то в буфер клавиатуры, добавит в буфер USART'а, ...), а затем вернется туда, откуда заснул - на начало цикла for, где ему будет предоставлена чудесная возможность разгрести все то, что он получил в прерываниях, после чего благополучно заснет до очередного пинка. Полезненько бывает сделать счетчик-таймер, который будет будить контроллер по переполнению даже если событий не было.

Насчет EEPROM'а - таки да, там есть задержка при записи, которую нужно _обязательно_ выдержать, иначе получится импровизация на тему генератора случайных чисел Смайлик :).

Это все конечно красиво и замечательно. Хотелось все сделать проще. Я согласен конечно с вами по поводу прерываний , но пока мне это тяжеловато...
А на счет EEPROM'а задержку я сделал 300мс думаю хватит.У меня значения пишутся только когда я их изменяю т.е. не часто.
2011-06-2020/06/2011 20:01:29
#1445459
Посетитель
Аквафорум рыбкаАквафорум рыбка
Аватар пользователя

161 14
Ессентуки
3 года
для форума

Вот первый раз в жизни попытался развести плату.
2011-06-2020/06/2011 20:09:48
#1445466
Малёк
Аквафорум рыбка
Аватар пользователя

44
Шахты
11 года

сообщение Paradox860

сообщение vlad61

сообщение Kiraso

сообщение cz0
Насчет EEPROM'а - таки да, там есть задержка при записи, которую нужно _обязательно_ выдержать, иначе получится импровизация на тему генератора случайных чисел Смайлик :).


и не только, обязательно использовать BOD и в регистре адреса хранить адрес ячейки с неактуальными данными,
ну и в идеале каждый параметр в 3 ячейках и мажоритарная выборка

если же используются частые записи в eeprom, то необходимо использовать кольцевой буфер (как простой вариант),
также есть в аппноутах, для исключения быстрого "съедания" ресурса памяти (10 000 - 100 000 циклов записи, в зависимости от чипа)


А можно ещё проще, зачем нам eeprom с его ограничениями по числу циклов? Я так понял у топикастера есть RTC таймер+батарейка, а в RTC есть RAM с неограниченным числом Write! Я думаю вы меня поняли))) Это все таки не електроних.ru

Не могу найти пока как писать в рам RTC

А какой RTC?
2011-06-2020/06/2011 20:12:58
#1445469
Посетитель
Аквафорум рыбкаАквафорум рыбка
Аватар пользователя

161 14
Ессентуки
3 года

vlad61

DS 1307
2011-06-2020/06/2011 20:32:52
#1445478
Постоянный посетитель
Аквафорум рыбкаАквафорум рыбкаАквафорум рыбка
Аватар пользователя

521 12
Химки
4 года

Paradox860

Для первого раза неплохо. Сразу замечания - нельзя таскать землю ЧЕРЕЗ контроллер, у Вас земля на кондеры тактового генератора идет не из земли платы, а из ноги контроллера. Вот конкретно в Вашем случае страшного в этом ничего нет (частоты не те), но так лучше не делать, потому что только богу известно каких гадостей наползет в эту землю, которая идет еще и в генератор. По хорошему землю от генератора нужно взять от точки, куда она пришла на плату, либо с толстого земляного полигона, но я обычно скрещиваю пальцы, закрываю глаза и тащу землю от ближайшей земляной дорожки (открещиваясь от встроенного в меня занудства словами "ну оно же цифровоо-о-ое, ну чего ему будет.."). Чуть правее по центру под контроллером у Вас не дорожка - а целый лабиринт. Я бы так делать не стал, а пустил бы дорожку по центру, а от нее сделал бы отводы на нужные ноги.
2011-06-2020/06/2011 21:00:15
#1445493
Малёк
Аквафорум рыбка
Аватар пользователя

44
Шахты
11 года

сообщение Paradox860
для форума

Вот первый раз в жизни попытался развести плату.


Цепи земли от кондеров генератора не хватает. А что за контроллер? может у него есть внутренний генератор так используйте его.
И ещё коллектора транзисторов включены на +12 в через светодиоды, так низя, нужны резисторы по 680-1000 Ом.
Плата будет делатся по ЛУТ технологии, поэтому односторонняя? Тгда делайте перемычки на верхней стороне , там где не можете провести дорожки.
2011-06-2121/06/2011 05:46:47
#1445600
Завсегдатай
Аквафорум рыбкаАквафорум рыбкаАквафорум рыбкаАквафорум рыбка
Аватар пользователя

1007 73
Санкт-Петербург
3 года

сообщение Paradox860
Вот первый раз в жизни попытался развести плату.


странная разводка какая-то....
сразу вопрос: у вас корпус есть куда все это ставить? т.к. всегда надо начинать с корпуса и под него плату делать.
ну и если честно, не могу понять зачем вообще стали эту плату разводить, у вас же есть готовая качественная плата с контроллером, достаточно было сделать дополнительно плату силовых каскадов плюс ртс с батареей ну и что там у вас еще планировалось...

зы: для разводки под ЛУТ и домашнего применения вообще рекомендую программку Sprint-Layout. В ручную можно очень душевные вещи сделать в ней и быстро.
2011-06-2121/06/2011 09:00:54
#1445635
Посетитель
Аквафорум рыбкаАквафорум рыбка
Аватар пользователя

161 14
Ессентуки
3 года

сообщение cz0

Paradox860

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


Земля на кондеры идет от преремычки (контакт чуть выше кондеров -> и напротив, справа от контроллера).Я даже и не знал что землю можно через контроллер кинуть))))
А дорожка которая как лабиринт это авторассировщик такое мутит)))
2011-06-2121/06/2011 19:26:25
#1445895
Посетитель
Аквафорум рыбкаАквафорум рыбка
Аватар пользователя

161 14
Ессентуки
3 года

vlad61

Про цепь земли ответил выше.
Контроллер ATmega168
Это не светодиоды это просто диоды(защитные) - там рядом пара контактов к ним вентиляторы на 12в подключаются.
Да плата Лутом будет делатся, перемычки есть я их просто не отметил.
2011-06-2121/06/2011 19:38:13
#1445903
Посетитель
Аквафорум рыбкаАквафорум рыбка
Аватар пользователя

161 14
Ессентуки
3 года

сообщение Kiraso

сообщение Paradox860
Вот первый раз в жизни попытался развести плату.


странная разводка какая-то....
сразу вопрос: у вас корпус есть куда все это ставить? т.к. всегда надо начинать с корпуса и под него плату делать.
ну и если честно, не могу понять зачем вообще стали эту плату разводить, у вас же есть готовая качественная плата с контроллером, достаточно было сделать дополнительно плату силовых каскадов плюс ртс с батареей ну и что там у вас еще планировалось...

зы: для разводки под ЛУТ и домашнего применения вообще рекомендую программку Sprint-Layout. В ручную можно очень душевные вещи сделать в ней и быстро.


Разводка как раз такая странная зделанна в Sprint-Layout. Корпус есть. А плату стал разводить потому что мне нужно оставить ардуину для других подвигов)))
2011-06-2121/06/2011 19:42:24
#1445906
Посетитель
Аквафорум рыбкаАквафорум рыбка
Аватар пользователя

161 14
Ессентуки
3 года

Тааак давно ничего не писал небыло времени)))))
Вот набросал внешний вид корпуса...Осталось довести шпатлевкой загрунтовать и покрасить все!

для форума

для форума
2011-06-3030/06/2011 09:13:51
#1449880
Посетитель
Аквафорум рыбкаАквафорум рыбка
Аватар пользователя

161 14
Ессентуки
3 года

Платка))))

для форума

для форума

для форума
2011-07-0808/07/2011 10:58:49
#1453069
Посетитель
Аквафорум рыбкаАквафорум рыбка
Аватар пользователя

161 14
Ессентуки
3 года

Вот наконец все доделал!Работает уже месяц пока без проблем)))))))

для форума

для форума

для форума
2011-09-1111/09/2011 18:08:49
#1479513
Новичок

Аватар пользователя

1
Russian Federation Moscow
12 года

расскажите по подробней как писалась программа или где то брали готовый код ?
я тоже давно хочу собрать контроллер для аквариума, но познаний в программировании очень мало можно даже сказать что их совсем нет (

2012-02-1616/02/2012 11:06:05
#1573040
Посетитель
Аквафорум рыбкаАквафорум рыбка
Аватар пользователя

109 1
Долгопрудный
10 года

Подробную схему потом показать сможете? И по цене во сколько обошлось всё.
Хотя метры аквариумистики и говорят, что лучше всё ручками делать в банке, чем автоматике довериться, но уж очень идея заманчивая)))

2012-02-1616/02/2012 12:09:31
#1573085
Посетитель
Аквафорум рыбкаАквафорум рыбка
Аватар пользователя

57 6
Королёв
4 года

Как Ваш контроллер ? Какие выявились баги?

2012-07-1919/07/2012 20:04:38
#1650040
Посетитель
Аквафорум рыбкаАквафорум рыбка
Аватар пользователя

161 14
Ессентуки
3 года

Мой контроллер отлично! Работает без передыху в моем домашнем аквариуме. Багов никаких не выявленно, все работает штатно. На данный момент почти готова новая версия. Контроллер стал модульным - основной модуль, силовой 220V, силовой 12V, модуль PH, модуль расширения портов на сдвиговых регистрах 4 -> 16.
Некоторые изменения в прошивке
- внесение удо по дням недели, в любой назначенный час
- 4 канала света с почасовой регулеровкой
- настройка даты
- системный сброс
- работа с PH датчиком.

для форума

Так что проект не заброшен, потехоньку развиваемся)))
У кого какие вопросы, помогу чем смогу!
2012-07-2424/07/2012 16:05:13
#1651551



Польвователь
Польвователь
Польвователь
Польвователь
Польвователь
Польвователь
Польвователь
Польвователь
Польвователь
Польвователь
Польвователь
Top