Контроллер бака воды для кёрхера

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
velant77
Вымогатель припоя
Сообщения: 538
Зарегистрирован: Пн ноя 16, 2009 13:31:29
Откуда: Томск

Контроллер бака воды для кёрхера

Сообщение velant77 »

Добрый день уважаемые форумчане! Возникло предложение по написанию программы для МК, если кого заинтересует. Собственно суть: есть бак для воды для кёрхера (чтоб остужать, ибо в гараже только горячая вода).
Входы:
1) датчик температуры DS18B20
2) датчик нижнего уровня (герконовый, на замыкание)
3) датчик верхнего уровня (герконовый на замыкание)
4) кнопка наполнения водой
5) кнопка стоп
Выходы:
1) индикация на четырехразрядном семисегментнике, ОА, четыре – исходя из того что большие индикаторы были только сдвоенные, поэтому пришлось купить две штуки по два элемента.
2) зуммер с встроенным генератором
3) выход 1 включения питания керхера
4) выход 2 на электроклапан подачи воды.
Меню и настройки в программе считаю избыточными, всё прописываем в программе, в крайнем случае проще исправить в проге и перекомпилировать, чем городить кнопки и меню.
Логика работы (может будет много дури, но пока как есть) :)))
1. Включаем, выходы 1 и 2 в 0. Флаг 1=0 (разрешение на вкл керхера по температуре), Флаг 2=0 (разрешение на вкл керхера по уровню воды), Fill=0 (процесс набора воды).
2. Инициализируем датчик t:
2.1 при неудачной инициализации выводим «Errt», протяжно пикаем зуммером «п-и-и-и-и, п-и-и-и-и». Всё это продолжается в течение 5 сек, далее уходим в начало инициализации датчика. Что делать дальше – Не знаю (честно).
2.2 при удачной инициализации выводим значение температуры в формате «101°», первые незначащие нули гасим. Инициализацию подтверждаем коротким пиком(один раз при включении). Значение выводим в течение 5 сек, замер температуры – думаю раз в 5 сек достаточно. Процедура циклическая, далее её не касаемся. Если температура попадает в диапазон +5..+36, то Флаг1=1. Здесь думаю надо ввести гистерезис по срабатыванию, чтоб на граничной температуре не было включений/выключений. Например включаем при t=36, выключаем при t=37, и нижний предел соответственно вкл при t=5, выкл при t=4.
3. Опрашиваем датчики уровня
3.1 верх=1, низ=0. После вывода температуры в течение 5 сек выводим «ErrL», ну и так же пищим как и при ошибки температуры. Уходим на опрос датчиков. Чтоб избежать дребезга, считать срабатыванием, если датчик принимает одинаковое значение, скажем, в течение 3 сек.
Далее, как и в следующих пунктах значения выводим циклично, 5 сек – по температуре, 5 сек – по остальной индикации, в данном пункте – сообщение об ошибке и состояние Выхода1=0 как “StOP». Опрос думаю сделать раз в 1 сек.
3.2 верх=1, низ=1. Fill=0. Выход2=0. Флаг2=1. Если Флаг1=0 и Флаг2=1, выводим циклически по 5 сек надписи «знач.температуры», «FULL», «StOP». Стоп подтверждаем тремя короткими пиками(один раз до изменения значения). При падении температуры до Флаг1=1, Выход1=1, выводим «знач.темп», «FULL», «Act» (не самый удачный вариант, но больше ничего не придумал)+ один длинный сигнал . Уходим на опрос датчиков (температуру мы зациклили и дальше не трогаем).
3.3 верх=0, низ=0. Выводим «знач.температуры», «ПУС» с тремя длинными сигналами, «StOP». Выход2=1.Делаем задержку на опрос датчиков в течение 10 сек.(чтоб заполнить бак до нижнего уровня). Ставим флаг Fill=1(заполняем водой). Выводим «знач.температуры», «FILL» с тремя длинными сигналами, «StOP». Уходим на опрос датчиков.
3.4 самое гемморойное. Верх=0, низ=1.
Если Fill=1 и Флаг1=1, Флаг2=1 => Выход1 =1, Выход2=1 (заполняем бак до полного, тогда флаг Fill скинется в =0). Выводим «знач.темп», «FiLL», «Act»+ один длинный если до этого был стоп(при смене состояния). Уходим на опрос. Если Флаг1=0, то выводим «знач.темп», «FILL», «StOP»+сигнал при смене состояния.
Если Fill=0 и Флаг1=1, Флаг2=1 => Выход1=1, Выход2=0. Выводим «знач.темп», «---- »(тоже не придумал что вывести при промежуточном значении между верхом и низом», «Act»+сигн.при смене состояния. Eсли Флаг1=0, Выводим «знач.темп», «---- », «StOP»с сигн.при смене состояния.
Теперь в общем. Система вывода на индикатор состоит из трех последовательных значений по 5 сек каждое. Первое – температура либо ошибка инициализации, второе – уровень бака (ErrL, FULL, ПУС, ----, FILL), третье – состояние Выхода1 (StOP, Act). Если бак в состоянии 3.4, при нажатии на кнопку наполнения водой переводим Fill=1 и далее по циклу наполняем бак до полного. При нажатии на кнопку стоп, выходы 1 и 2 скидываем в 0, выводим непрерывно «StOP», непрерывно пищим длинными сигналами, висим до сброса питания.
Керхер включается в заданном диапазоне температур и при наличии воды(Выход1=1 при Флаг1=1 и Флаг2=1). Водой заполняем либо принудительно кнопкой, либо до срабатывания нижнего уровня.
За сумбур не пинайте :beer:
Имеются программаторы для pic и avr, поэтому выбор МК не имеет значения, всё равно покупать, хотелось бы только определиться с моделью чтоб назначить выходы и нарисовать схему в Протеусе.
С уважением, velant77.
Реклама
Аватара пользователя
Jack_A
Друг Кота
Сообщения: 6312
Зарегистрирован: Вт апр 24, 2007 07:45:40
Откуда: Minsk

Re: Контроллер бака воды для кёрхера

Сообщение Jack_A »

Так подробно прописан алгоритм - думаю, 50% уже сделано, автор и сам сможет добить остальное . Томск - далеко...
Кстати - а кто какой кёрхер - про вторую часть я в курсе, первая сущает :)
Реклама
velant77
Вымогатель припоя
Сообщения: 538
Зарегистрирован: Пн ноя 16, 2009 13:31:29
Откуда: Томск

Re: Контроллер бака воды для кёрхера

Сообщение velant77 »

Последний раз редактировалось velant77 Вт апр 17, 2012 10:47:12, всего редактировалось 1 раз.
Аватара пользователя
Jack_A
Друг Кота
Сообщения: 6312
Зарегистрирован: Вт апр 24, 2007 07:45:40
Откуда: Minsk

Re: Контроллер бака воды для кёрхера

Сообщение Jack_A »

Спасибо. Классная вещь! Жаль, что не надо.
Реклама
Эиком - электронные компоненты и радиодетали
Soir
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

Re: Контроллер бака воды для кёрхера

Сообщение Soir »

velant77 писал(а):Собственно суть: есть бак для воды для кёрхера...
Хорошо когда подробно описано, только пока дочитал до конца, забыл что в начале.
Подобное устройство я когда-то разрабатывал, с небольшими переделками под Ваши запросы во вложении проект, описание, прошивка. Не все, как описано у Вас, но Вы посмотрите. Если в принципе вариант подходит, я могу его доработать.
Вложения
Termometr_Karcher.zip
(22.03 КБ) 307 скачиваний
Реклама
velant77
Вымогатель припоя
Сообщения: 538
Зарегистрирован: Пн ноя 16, 2009 13:31:29
Откуда: Томск

Re: Контроллер бака воды для кёрхера

Сообщение velant77 »

Спасибо, очень похожий проект, погоняю в Протеусе.
Реклама
velant77
Вымогатель припоя
Сообщения: 538
Зарегистрирован: Пн ноя 16, 2009 13:31:29
Откуда: Томск

Re: Контроллер бака воды для кёрхера

Сообщение velant77 »

Soir писал(а):Если в принципе вариант подходит, я могу его доработать.
В принципе почти то что доктор прописал :)) MCLR можно будет назначить на четвертый сегмент? Индикаторы уже куплены. Если есть возможность реализовать на f628a, то могу схему подправить под разводку имеющихся индикаторов, если нет, скажите какой МК Вам удобнее использовать?
P.S. Датчики будут поплавкового типа, т.е. при наполнении (срабатывании/замыкании) остаются нормально замкнутыми, при опустошении - нормально разомкнутыми, но это уже детали, если возьметесь за доработку по описанному функционалу (по большому счету индикация, т.к. основой функционал уже реализован) буду премного благодарен. :))
Soir
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

Re: Контроллер бака воды для кёрхера

Сообщение Soir »

velant77 писал(а):MCLR можно будет назначить на четвертый сегмент?
Нет. Он может быть только входом.
velant77 писал(а):скажите какой МК Вам удобнее использовать?
Поскольку проект уже на PIC, то лучше на PIC. А какой именно - не знаю. Что Вам доступно для приобретения и программирования. С 628-ым упираемся в количество выводов. Так что нужен следующий типоразмер. Можно и 628, только для вывода на индикатор понадобится еще регистр сдвига. Можно и какой-нибудь дешевый AVR, например, ATMEGA8...
velant77
Вымогатель припоя
Сообщения: 538
Зарегистрирован: Пн ноя 16, 2009 13:31:29
Откуда: Томск

Re: Контроллер бака воды для кёрхера

Сообщение velant77 »

Soir писал(а):Поскольку проект уже на PIC, то лучше на PIC.
Есть в продаже
PIC16F690-I/SO (17 портов)
PIC16F870-I/SO (22 порта)
PIC16F876A-I/SO (22 порта)

Скажите какой Вам удобней, мне не принципиально, вроде все программируются как и 628й пятью проводками.
Soir
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

Re: Контроллер бака воды для кёрхера

Сообщение Soir »

velant77 писал(а):Есть в продаже
PIC16F690-I/SO (17 портов)
PIC16F870-I/SO (22 порта)
PIC16F876A-I/SO (22 порта)
Что-то из этого и выберем, полистаю даташиты, тогда точно скажу.
Soir
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

Re: Контроллер бака воды для кёрхера

Сообщение Soir »

velant77 писал(а):Есть в продаже
PIC16F690-I/SO (17 портов)
PIC16F870-I/SO (22 порта)
PIC16F876A-I/SO (22 порта)
Пока остановился на PIC16F690 (иду по списку). Этих МК у меня нет, так что вся моя работа будет чисто виртуальной, проверять в железе придется Вам.
Прошивку переделал, добавил гистерезис и четвертый разряд на индикатор. Проверьте логику.
Нереализована пока пищалка. Так как от ТЗ из первого сообщения я отклонился, Вы подумайте когда ее включать.
Вложения
Termometr_Karcher_690.zip
(23.78 КБ) 282 скачивания
velant77
Вымогатель припоя
Сообщения: 538
Зарегистрирован: Пн ноя 16, 2009 13:31:29
Откуда: Томск

Re: Контроллер бака воды для кёрхера

Сообщение velant77 »

Спасибо! Вечером погоняю!
Посмотрел, я так понял добавился разряд и гистерезис, новый МК, логика не изменилась. Немного напрягает что кнопки и датчики висят на индикаторных выводах, может взять МК с большим количеством портов?
Больше изменений не заметил, я так понял больше ничего и не меняли.Меню для ввода температуры хотелось бы убрать и просто зашить в программу, чтоб не было возможности менять. Работа датчиков осталась та же, т.е. на нормально замкнутых/разомкнутых не работает, ну и по индикации только температура, не понятно бак полный/пустой, наполняется или нет и т.д. :)))
velant77
Вымогатель припоя
Сообщения: 538
Зарегистрирован: Пн ноя 16, 2009 13:31:29
Откуда: Томск

Re: Контроллер бака воды для кёрхера

Сообщение velant77 »

Ни у кого нет желания взяться за разумное вознаграждение?
Soir
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

Re: Контроллер бака воды для кёрхера

Сообщение Soir »

Извините, как я пропустил Ваше сообщение о замечаниях к проекту. Или я невнимательный, или Вы правили его после моего прочтения.
velant77 писал(а):Немного напрягает что кнопки и датчики висят на индикаторных выводах, может взять МК с большим количеством портов
Такая реализация никак не влияет на функциональность и надежность. Если нужен другой вариант - давайте Ваш МК, Вашу схему, я посмотрю и тогда уже буду переделывать прошивку под него. Сам выбирать МК я больше не буду, так как это мне каждый раз придется переписывать прошивку, если Вас что-то не устроит.
velant77 писал(а):Работа датчиков осталась та же, т.е. на нормально замкнутых/разомкнутых не работает
Не понял, датчики вообще не работают? Как-то сформулируйте по-другому, а то "замкнутых/разомкнутых" я не понял.
velant77 писал(а):Посмотрел, я так понял добавился разряд и гистерезис, новый МК, логика не изменилась.
Логику я буду дорабатывать, когда мы согласуем схему и МК. Не хочется делать дурную работу.

P.S.
На вознаграждение лично я не претендую.
velant77
Вымогатель припоя
Сообщения: 538
Зарегистрирован: Пн ноя 16, 2009 13:31:29
Откуда: Томск

Re: Контроллер бака воды для кёрхера

Сообщение velant77 »

Спасибо за ответ! Вечером обдумаю все Ваши замечания и выложу ответы.
velant77
Вымогатель припоя
Сообщения: 538
Зарегистрирован: Пн ноя 16, 2009 13:31:29
Откуда: Томск

Re: Контроллер бака воды для кёрхера

Сообщение velant77 »

Soir писал(а):Такая реализация никак не влияет на функциональность и надежность. Если нужен другой вариант - давайте Ваш МК, Вашу схему, я посмотрю и тогда уже буду переделывать прошивку под него. Сам выбирать МК я больше не буду, так как это мне каждый раз придется переписывать прошивку, если Вас что-то не устроит.
Логику я буду дорабатывать, когда мы согласуем схему и МК. Не хочется делать дурную работу.
Абсолютно с вами согласен, просто я недопонимаю как на одном порте висит вывод на индикатор и кнопка :dont_know: Тем более не хотелось бы тратить Ваше время на переделки.
По быстрому развел ноги под индикатор, получилась схема во вложении, взял F870, у меня его тоже нет, завтра поеду покупать.
Soir писал(а):Не понял, датчики вообще не работают? Как-то сформулируйте по-другому, а то "замкнутых/разомкнутых" я не понял.
Наверное не очень дачно сформулировал. При пустом баке оба датчика в разомкнутом состоянии. При наполнении водой сначала замыкается нижний датчик, и далее находится в замкнутом состоянии. Когда вода доходит до верха, замыкается верхний датчик, и тоже находится в замкнутом состоянии, т.е. при полном баке оба датчика постоянно находятся в замкнутом состоянии. Также при опустошении, сначала размыкается верхний и висит в разомкнутом состоянии, затем нижний размыкается. Как то так. В последней прошивке при двух замкнутых датчиках прога выдавала ошибку, вот что я имел ввиду.

Вчера уже привезли монстра на 160 литров :))
Вложения
PIC16F870 DS18B20.rar
(20.07 КБ) 288 скачиваний
Soir
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

Re: Контроллер бака воды для кёрхера

Сообщение Soir »

velant77 писал(а):По быстрому развел ноги под индикатор, получилась схема во вложении, взял F870, у меня его тоже нет, завтра поеду покупать.
Я с этим МК не работал, но думаю проблем не будет. Полистаю даташит, потом может придется уточнить схему и назначение выводов.
velant77 писал(а):При пустом баке оба датчика в разомкнутом состоянии. При наполнении водой сначала замыкается нижний датчик, и далее находится в замкнутом состоянии. Когда вода доходит до верха, замыкается верхний датчик, и тоже находится в замкнутом состоянии, т.е. при полном баке оба датчика постоянно находятся в замкнутом состоянии...
Теперь понятно.
velant77 писал(а):В последней прошивке при двух замкнутых датчиках прога выдавала ошибку.
Так и задумывалось. Программа анализирует состояние датчиков. Я просто взял не те состояния датчиков. Теперь ошибкой будет если нижний датчик будет с разомкнутыми контактами, а верхний с замкнутыми. Нужно определить, как должна вести себя программа в этом случае. Я думаю, должна выключать все.
velant77
Вымогатель припоя
Сообщения: 538
Зарегистрирован: Пн ноя 16, 2009 13:31:29
Откуда: Томск

Re: Контроллер бака воды для кёрхера

Сообщение velant77 »

удалено из-за дублирования, только я не вижу кнопки удалить сообщение?
Последний раз редактировалось velant77 Пт апр 27, 2012 16:38:40, всего редактировалось 1 раз.
velant77
Вымогатель припоя
Сообщения: 538
Зарегистрирован: Пн ноя 16, 2009 13:31:29
Откуда: Томск

Re: Контроллер бака воды для кёрхера

Сообщение velant77 »

Soir писал(а):Теперь ошибкой будет если нижний датчик будет с разомкнутыми контактами, а верхний с замкнутыми. Нужно определить, как должна вести себя программа в этом случае. Я думаю, должна выключать все.
Да, этот вариант я описывал: 3.1 верх=1, низ=0. Всё отключаем, после вывода температуры выводим «ErrL», дальше "StOP" ну и так же пищим как при нажатии кнопки Stop и висим до сброса питания (чтоб при случайном выдергивании разъема верхнего датчика прога не решила что бак пустой и надо наполнять).
Soir
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

Re: Контроллер бака воды для кёрхера

Сообщение Soir »

Soir писал(а):
velant77 писал(а):По быстрому развел ноги под индикатор, получилась схема во вложении, взял F870, у меня его тоже нет, завтра поеду покупать.
Я с этим МК не работал, но думаю проблем не будет. Полистаю даташит, потом может придется уточнить схему и назначение выводов.
Да, в схему надо вносить изменения. Первое, это в данном МК нет встроенного тактового генератора, то есть нужен внешний кварц. Второе, порты A и C не имеют внутренних подтягивающих резисторов. Это означает, что, или выводы идущие к кнопкам и датчикам должны быть подтянуты резисторами к +5V, или перенести кнопки и датчики на порт B. И скажите, какую пищалку Вы предполагаете использовать (с внутренним генератором или на нее нужно подавать переменку).
Пока все... Если это не препятствует применению PIC16F870, я начинаю разрабатывать прошивку.
Ответить

Вернуться в «Разные вопросы по МК»