Терморегулятор на микроконтроллере PIC16F84 датчикe DS18B20

Поклонники продукции Microchip Technology Inc тусуются тут.
Аватара пользователя
nvz
Электрический кот
Сообщения: 1056
Зарегистрирован: Чт ноя 25, 2010 16:58:42
Откуда: Средний Урал

Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18

Сообщение nvz »

To Soir: дождался таки я - сдох термостат на холодильнике. Решил приспособить твою разработку http://www.radiokot.ru/forum/viewtopic. ... 15#p731615 для охлаждения. При проверке в протеусе после нажатия кнопки выбора на индикаторе высвечивается 40, при длительном нажатии на минус или плюс - через несколько секунд всё виснет. Это заложено в программе или глючат мой комп с пртеусом? И неплохо бы четвёртый вывод приспособить для выбора индикаторов ОА или ОК.
Soir
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18

Сообщение Soir »

nvz писал(а):При проверке в протеусе после нажатия кнопки выбора на индикаторе высвечивается 40, при длительном нажатии на минус или плюс - через несколько секунд всё виснет. Это заложено в программе или глючат мой комп с пртеусом?

Там все нормально, на симуляцию не обращай внимание. Чтобы не тормозил Proteus, а вместе с ним и компьютер, надо исключить из симуляции все "лишнее". В данном проекте это транзисторы и реле. В их свойствах поставь галочку "Exclude from Simulation" или вобще удали из проекта.
nvz писал(а):И неплохо бы четвёртый вывод приспособить для выбора индикаторов ОА или ОК.

Если сильно надо - сделаю.
Soir
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18

Сообщение Soir »

Soir писал(а):
nvz писал(а):И неплохо бы четвёртый вывод приспособить для выбора индикаторов ОА или ОК.

Если сильно надо - сделаю.

Проект в том виде не нашелся, видно что-то дорабатывал, надеюсь улучшал. Логика работы должна быть та же, я не проверял. Добавил выбор индикатора (в схеме для демонстрации два, устанавливать надо один). Работу в железе не проверял. Если что - пиши.

**************
Вс июн 17, 2012 19:10:00
Исправлен баг с отображением отрицательных значений.
Вложения
Termometr_v6_Cool_CA_CC.zip
(18.88 КБ) 386 скачиваний
Последний раз редактировалось Soir Вс июн 17, 2012 20:10:54, всего редактировалось 1 раз.
Аватара пользователя
nvz
Электрический кот
Сообщения: 1056
Зарегистрирован: Чт ноя 25, 2010 16:58:42
Откуда: Средний Урал

Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18

Сообщение nvz »

Не подумай, что издеваюсь: а почему уставка температуры начинается с 40 градусов? Может я просто не дочитал оригинальный пост... Да ладно, для холодильника хватит и проще сделанного: уставка с нуля, 1 выход, индикатор с тремя цифрами (там вроде гистерезис примерно от -17 до +4,5 градусов, точно не помню, термостат ТАМ133-1М), ну и выбор индикатора конечно.
Как то так.
Soir
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18

Сообщение Soir »

nvz писал(а):Не подумай, что издеваюсь: а почему уставка температуры начинается с 40 градусов?

Уже подумал. Но хорошо, что ты спросил. Выявил баг: потерял индикацию минуса в отрицательных значениях. Исправил, перезалил в предыдущий пост.
А начинается уставка почти со случайной величины. Сначала это был нагреватель воды, кажется, потом переделывался под охладитель, охладители тоже бывают разные... Настройки по умолчанию здесь не особо важны, так как можно установить свои и они запишутся в память. При включении питания будут считываться уже с нее. Также и диапазон установки может вызвать аналогичный вопрос, пределы нереальные, тем более для холодильника, старался сделать устройство для широкого потребления. Мало ли что кому надо. Но тем не менее, могу все параметры ограничить и установить по умолчанию какие скажешь. Для первой уставки сделал -10, так нормально?
nvz писал(а):Да ладно, для холодильника хватит и проще сделанного: уставка с нуля, 1 выход, индикатор с тремя цифрами (там вроде гистерезис примерно от -17 до +4,5 градусов, точно не помню, термостат ТАМ133-1М), ну и выбор индикатора конечно. Как то так.

Тут я не понял. Это ТЗ под новый термостат? Такие уже были...
Аватара пользователя
nvz
Электрический кот
Сообщения: 1056
Зарегистрирован: Чт ноя 25, 2010 16:58:42
Откуда: Средний Урал

Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18

Сообщение nvz »

На моём Стиноле сдох ТАМ133-1М-72. Его характеристики: температура включения +4 градуса и выше, отключения (в зависимости от положения регулятора) -18....-30 градусов.

После первого нажатия SET можно выставить уставку отключения от 0 до -30гр. через градус, после второго - уставку включения от 0 до +10гр. с десятыми. Такая конфигурация подойдёт почти к любому типу холодильников, кроме морозилок. Индикатор с тремя цифрами, с выбором.
Вторая уставка выставляется 1 раз и больше не меняется, качество холода меняется только первой уставкой. Вот только пока не знаю, смогу ли засунуть термодатчик вместо сильфона, там целый метр до испарителя...проведу эксперимент.
Аватара пользователя
nvz
Электрический кот
Сообщения: 1056
Зарегистрирован: Чт ноя 25, 2010 16:58:42
Откуда: Средний Урал

Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18

Сообщение nvz »

Ладно, раз не отвечаешь - глянул перезалитую прошивку. Второе реле, конечно, можно не ставить. По уставкам: первая уставка - температура включения. В моём случае это +4гр. Если надо выставить температуру отключения -22гр, гистерезис надо ставить 26, что невозможно (у тебя он max 25).
В предыдущем сообщении я написал как хотел бы видеть принцип работы, но видно он сложен.
Вопрос закрыт. Пока холодильник работает от таймера с регулируемыми работой и паузой. Буду искать штатный термостат.
Извини за беспокойство.
Soir
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18

Сообщение Soir »

nvz писал(а):Ладно, раз не отвечаешь...

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

Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18

Сообщение Soir »

Soir писал(а):...проект несложный, до обеда будет.

Вот что получилось. Все во вложении: прошивка, схема, описание работы.
Вложения
TAM133_1M_72.ZIP
(21.38 КБ) 398 скачиваний
Аватара пользователя
nvz
Электрический кот
Сообщения: 1056
Зарегистрирован: Чт ноя 25, 2010 16:58:42
Откуда: Средний Урал

Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18

Сообщение nvz »

Может я придираюсь, но замечания есть:
1. при уставке, к примеру, -12гр. отключение происходит при -11,5. и так во всём минусовом диапазоне сдвиг на 0,5 градуса. Нематематического округления здесь не надо.
2. Нет возможности оперативного изменения минусовой уставки: температура дошла до -20 (реле отключилось), показалось что мало - уставку сменил на -22 - реле молчит. Надо кратковременно снимать напряжение со схемы?
3. 6. При сбое в работе датчика нагрузка выключается. На индикаторе прочерки. можно добавить: на выходе 2 МК появляется плюс? Т.е. при появлении прочерков на индикаторе активируется 2 вывод МК. (сигнализация)
А так вроде всё ОК.
Soir
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18

Сообщение Soir »

nvz писал(а):Может я придираюсь, но замечания есть:
1. при уставке, к примеру, -12гр. отключение происходит при -11,5. и так во всём минусовом диапазоне сдвиг на 0,5 градуса. Нематематического округления здесь не надо.

Не понял, про "нематематическое округление". Когда температура отображается в целых, то десятые округляются. -11,5;-11,6...-12,3;-12,4 округляются до -12 и дальше в алгоритме участвует уже округленное значение. По крайней мере, так задумывалось. Работает как-то не так? Или надо по-другому? А как надо?
nvz писал(а):2. Нет возможности оперативного изменения минусовой уставки: температура дошла до -20 (реле отключилось), показалось что мало - уставку сменил на -22 - реле молчит. Надо кратковременно снимать напряжение со схемы?

Реле включается, когда температура достигнет предела t2. Так было в ТЗ:
nvz писал(а):...По уставкам: первая уставка - температура включения. В моём случае это +4гр...

nvz писал(а):...после второго - уставку включения от 0 до +10гр. с десятыми...

Напиши как надо, переделаю.
nvz писал(а): Т.е. при появлении прочерков на индикаторе активируется 2 вывод МК. (сигнализация).

Добавлю.
Аватара пользователя
nvz
Электрический кот
Сообщения: 1056
Зарегистрирован: Чт ноя 25, 2010 16:58:42
Откуда: Средний Урал

Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18

Сообщение nvz »

Про округление, как бы веселее объяснить? несколько примеров: я, к примеру, не смогу математически доказать что 11,7 равняется 12; кому когда зарплату округляли в бОльшую сторону?; и что я скажу продавщице в магазине подавая ей 11,7 руб за товар стоимостью 12руб? Округли до 12? Представляю, что услышу в ответ... В общем с 11 до 11,9 - это 11, а с 12 до 12,9 - это 12. Просто надо оперировать целыми числами.
Про оперативное изменение уставки: подумал - вряд ли получится, замяли.
Ничего переделывать не надо, просто добавь сигналку.
Как то так.
PS когда уезжаешь?
Soir
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18

Сообщение Soir »

nvz писал(а):...Просто надо оперировать целыми числами.

Хозяин - барин. Десятые при индикации просто отбрасываются, а в обработке алгоритма управления реле участвуют.
nvz писал(а):Ничего переделывать не надо, просто добавь сигналку.

Добавил.
nvz писал(а):PS когда уезжаешь?

Сегодня ночью.
Вложения
TAM133_1M_72.zip
(18.13 КБ) 306 скачиваний
Аватара пользователя
nvz
Электрический кот
Сообщения: 1056
Зарегистрирован: Чт ноя 25, 2010 16:58:42
Откуда: Средний Урал

Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18

Сообщение nvz »

В протеусе всё работает без нареканий, большое спасибо.
Удачи!
tbogdan
Открыл глаза
Сообщения: 66
Зарегистрирован: Сб ноя 12, 2011 15:22:01
Откуда: Тернопіль

Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18

Сообщение tbogdan »

Здравствуйте!
Soir, был такой регулятор на ATMega8, для печи (viewtopic.php?p=1089628#p1089628) последняя прошивка,
отработал отлично, за что хочу сказать спасибо и еще раз спасибо!
Но, если у Вас сохранились исходники и есть возможность, очень нужно переделать на трехпозиционый регулятор (меньше-норма-больше), надо управлять горелкой.
оставив алгоритм и программу прежней, можно сократить количество программ до 4-5.
С уважением!
Вложения
Termo_ATMEGA8_1.zip
(118.6 КБ) 279 скачиваний
Soir
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18

Сообщение Soir »

tbogdan писал(а):очень нужно переделать на трехпозиционый регулятор (меньше-норма-больше), надо управлять горелкой.
оставив алгоритм и программу прежней, можно сократить количество программ до 4-5.

Опишите подробнее, как должен работать "трехпозиционый регулятор"?
tbogdan
Открыл глаза
Сообщения: 66
Зарегистрирован: Сб ноя 12, 2011 15:22:01
Откуда: Тернопіль

Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18

Сообщение tbogdan »

Soir писал(а):Опишите подробнее, как должен работать "трехпозиционый регулятор"?

Все оставив так как есть, добавив еще один канал регулирования (на pin10), для уменьшения мощности горелки при достижении температуры (SP) на величину гистерезиса (h)
И, желательно, уменьшить число ступеней регулирования с 100 до 60, увеличив время одной ступени с 0.02 сек. до 1 сек.
Количество программ тоже можно уменьшить до 5 (0-4).
С уважением!
Вложения
reg.JPG
(43.4 КБ) 398 скачиваний
Soir
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18

Сообщение Soir »

tbogdan писал(а):Все оставив так как есть, добавив еще один канал регулирования (на pin10), для уменьшения мощности горелки при достижении температуры (SP) на величину гистерезиса (h)
И, желательно, уменьшить число ступеней регулирования с 100 до 60, увеличив время одной ступени с 0.02 сек. до 1 сек.

Пока так и не понял принцип работы..
1. Правильно я понял, что в случае если температура ниже заданной на величину гистерезиса, то через определенное время подается импульс на открытие заслонки? В случае если температура выше..., то импульс на закрытие заслонки?
2. Какая длительность импульсов? 1 сек?
3. Действительно ли должно быть ограничение числа ступеней? Каким образом будет идти управление горелкой? Это заслонка на линии подачи газа? Управляется актуатором (шаговым двигателем)? Заслонка будет открываться/закрываться по счету ступеней, или пока не дойдет до крайнего положения? Сколько она вообще положений (ступеней) может занимать?
4. На диаграмме во вложении сигналы на выводах при отклонении от SP прописаны как постоянные величины (тогда какие ступени могут быть?), так и надо или все-таки импульсы?
tbogdan
Открыл глаза
Сообщения: 66
Зарегистрирован: Сб ноя 12, 2011 15:22:01
Откуда: Тернопіль

Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18

Сообщение tbogdan »

1. Правильно я понял, что в случае если температура ниже заданной на величину гистерезиса, то через определенное время подается импульс на открытие заслонки? В случае если температура выше..., то импульс на закрытие заслонки?

Да, правильно, только импульсы на открытие или закрытие подаются так как было и раньше, чтоб ничего не изменять.
(из описания работы .....Перерасчет SP производится через время, заданное параметром c. Текущая температура сравнивается с SP. Корректировка выходной мощности производится через время, заданное параметром d на величину, заданную
параметром St.
St корректируется коэффициентом пропорциональности n, который также задается в сервисных настройках и может принимать значения от 0 до 1 с шагом в 0,1

2. Какая длительность импульсов? 1 сек?

(из описания.....Мощность регулируется ступенчато, соотношением количества периодов сетевого напряжения включенного симистора и выключенного. Всего 100 ступеней регулировки мощности. Одна ступень – 0,02 сек, таким образом, полный цикл составляет 2 сек. Включение симистора производится при переходе сетевого напряжения через 0.)

их как раз и желательно изменить и уменьшить количество, как будет проще.
3.....Каким образом будет идти управление горелкой? Это заслонка на линии подачи газа?...

Мощность горелки управляется воздушной заслонкой и регулятором давления топлива (солярка) положение может быть любое ограниченное концевыми выключателями, подав короткий импульс на двигатель он откроет на какой то угол, (увеличив или уменьшив мощность) и там остановится до прихода следующего импульса.
Таким образом, изменяя (из описания..... шаг регулирования (St) от 1 до 50%, период коррекции мощности (d) от 1 до 240 сек, время между перерасчетом SP (с) от 1 до 60 сек, коэффициент пропорциональности n от 0 до 1.) можно будет получить любую мощность в диапазоне регулирования.
4. На диаграмме во вложении сигналы на выводах при отклонении от SP прописаны как постоянные величины (тогда какие ступени могут быть?), так и надо или все-таки импульсы?

не знаю как обозначить.
Вложения
Описание работы.doc
(52.5 КБ) 304 скачивания
Soir
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18

Сообщение Soir »

tbogdan, в целом понятно. Только длительность импульсов я так для себя и не уяснил. Ладно, начну что-то писать, потом разберемся что и как, надо от чего-то отталкиваться...
Ответить

Вернуться в «PIC»