Терморегулятор на микроконтроллере PIC16F84 датчикe DS18B20
- nvz
- Электрический кот
- Сообщения: 1056
- Зарегистрирован: Чт ноя 25, 2010 16:58:42
- Откуда: Средний Урал
Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18
To Soir: дождался таки я - сдох термостат на холодильнике. Решил приспособить твою разработку http://www.radiokot.ru/forum/viewtopic. ... 15#p731615 для охлаждения. При проверке в протеусе после нажатия кнопки выбора на индикаторе высвечивается 40, при длительном нажатии на минус или плюс - через несколько секунд всё виснет. Это заложено в программе или глючат мой комп с пртеусом? И неплохо бы четвёртый вывод приспособить для выбора индикаторов ОА или ОК.
Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18
nvz писал(а):При проверке в протеусе после нажатия кнопки выбора на индикаторе высвечивается 40, при длительном нажатии на минус или плюс - через несколько секунд всё виснет. Это заложено в программе или глючат мой комп с пртеусом?
Там все нормально, на симуляцию не обращай внимание. Чтобы не тормозил Proteus, а вместе с ним и компьютер, надо исключить из симуляции все "лишнее". В данном проекте это транзисторы и реле. В их свойствах поставь галочку "Exclude from Simulation" или вобще удали из проекта.
nvz писал(а):И неплохо бы четвёртый вывод приспособить для выбора индикаторов ОА или ОК.
Если сильно надо - сделаю.
Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18
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
Не подумай, что издеваюсь: а почему уставка температуры начинается с 40 градусов? Может я просто не дочитал оригинальный пост... Да ладно, для холодильника хватит и проще сделанного: уставка с нуля, 1 выход, индикатор с тремя цифрами (там вроде гистерезис примерно от -17 до +4,5 градусов, точно не помню, термостат ТАМ133-1М), ну и выбор индикатора конечно.
Как то так.
Как то так.
Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18
nvz писал(а):Не подумай, что издеваюсь: а почему уставка температуры начинается с 40 градусов?
Уже подумал. Но хорошо, что ты спросил. Выявил баг: потерял индикацию минуса в отрицательных значениях. Исправил, перезалил в предыдущий пост.
А начинается уставка почти со случайной величины. Сначала это был нагреватель воды, кажется, потом переделывался под охладитель, охладители тоже бывают разные... Настройки по умолчанию здесь не особо важны, так как можно установить свои и они запишутся в память. При включении питания будут считываться уже с нее. Также и диапазон установки может вызвать аналогичный вопрос, пределы нереальные, тем более для холодильника, старался сделать устройство для широкого потребления. Мало ли что кому надо. Но тем не менее, могу все параметры ограничить и установить по умолчанию какие скажешь. Для первой уставки сделал -10, так нормально?
nvz писал(а):Да ладно, для холодильника хватит и проще сделанного: уставка с нуля, 1 выход, индикатор с тремя цифрами (там вроде гистерезис примерно от -17 до +4,5 градусов, точно не помню, термостат ТАМ133-1М), ну и выбор индикатора конечно. Как то так.
Тут я не понял. Это ТЗ под новый термостат? Такие уже были...
- nvz
- Электрический кот
- Сообщения: 1056
- Зарегистрирован: Чт ноя 25, 2010 16:58:42
- Откуда: Средний Урал
Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18
На моём Стиноле сдох ТАМ133-1М-72. Его характеристики: температура включения +4 градуса и выше, отключения (в зависимости от положения регулятора) -18....-30 градусов.
После первого нажатия SET можно выставить уставку отключения от 0 до -30гр. через градус, после второго - уставку включения от 0 до +10гр. с десятыми. Такая конфигурация подойдёт почти к любому типу холодильников, кроме морозилок. Индикатор с тремя цифрами, с выбором.
Вторая уставка выставляется 1 раз и больше не меняется, качество холода меняется только первой уставкой. Вот только пока не знаю, смогу ли засунуть термодатчик вместо сильфона, там целый метр до испарителя...проведу эксперимент.
После первого нажатия SET можно выставить уставку отключения от 0 до -30гр. через градус, после второго - уставку включения от 0 до +10гр. с десятыми. Такая конфигурация подойдёт почти к любому типу холодильников, кроме морозилок. Индикатор с тремя цифрами, с выбором.
Вторая уставка выставляется 1 раз и больше не меняется, качество холода меняется только первой уставкой. Вот только пока не знаю, смогу ли засунуть термодатчик вместо сильфона, там целый метр до испарителя...проведу эксперимент.
- nvz
- Электрический кот
- Сообщения: 1056
- Зарегистрирован: Чт ноя 25, 2010 16:58:42
- Откуда: Средний Урал
Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18
Ладно, раз не отвечаешь - глянул перезалитую прошивку. Второе реле, конечно, можно не ставить. По уставкам: первая уставка - температура включения. В моём случае это +4гр. Если надо выставить температуру отключения -22гр, гистерезис надо ставить 26, что невозможно (у тебя он max 25).
В предыдущем сообщении я написал как хотел бы видеть принцип работы, но видно он сложен.
Вопрос закрыт. Пока холодильник работает от таймера с регулируемыми работой и паузой. Буду искать штатный термостат.
Извини за беспокойство.
В предыдущем сообщении я написал как хотел бы видеть принцип работы, но видно он сложен.
Вопрос закрыт. Пока холодильник работает от таймера с регулируемыми работой и паузой. Буду искать штатный термостат.
Извини за беспокойство.
Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18
nvz писал(а):Ладно, раз не отвечаешь...
Без обид, делаю, когда есть свободное время. Готовлюсь к сложной и неприятной командировке на пару дней. Но если так срочно надо, проект несложный, до обеда будет.
Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18
Soir писал(а):...проект несложный, до обеда будет.
Вот что получилось. Все во вложении: прошивка, схема, описание работы.
- Вложения
-
- TAM133_1M_72.ZIP
- (21.38 КБ) 398 скачиваний
- nvz
- Электрический кот
- Сообщения: 1056
- Зарегистрирован: Чт ноя 25, 2010 16:58:42
- Откуда: Средний Урал
Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18
Может я придираюсь, но замечания есть:
1. при уставке, к примеру, -12гр. отключение происходит при -11,5. и так во всём минусовом диапазоне сдвиг на 0,5 градуса. Нематематического округления здесь не надо.
2. Нет возможности оперативного изменения минусовой уставки: температура дошла до -20 (реле отключилось), показалось что мало - уставку сменил на -22 - реле молчит. Надо кратковременно снимать напряжение со схемы?
3. 6. При сбое в работе датчика нагрузка выключается. На индикаторе прочерки. можно добавить: на выходе 2 МК появляется плюс? Т.е. при появлении прочерков на индикаторе активируется 2 вывод МК. (сигнализация)
А так вроде всё ОК.
1. при уставке, к примеру, -12гр. отключение происходит при -11,5. и так во всём минусовом диапазоне сдвиг на 0,5 градуса. Нематематического округления здесь не надо.
2. Нет возможности оперативного изменения минусовой уставки: температура дошла до -20 (реле отключилось), показалось что мало - уставку сменил на -22 - реле молчит. Надо кратковременно снимать напряжение со схемы?
3. 6. При сбое в работе датчика нагрузка выключается. На индикаторе прочерки. можно добавить: на выходе 2 МК появляется плюс? Т.е. при появлении прочерков на индикаторе активируется 2 вывод МК. (сигнализация)
А так вроде всё ОК.
Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18
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
Про округление, как бы веселее объяснить? несколько примеров: я, к примеру, не смогу математически доказать что 11,7 равняется 12; кому когда зарплату округляли в бОльшую сторону?; и что я скажу продавщице в магазине подавая ей 11,7 руб за товар стоимостью 12руб? Округли до 12? Представляю, что услышу в ответ... В общем с 11 до 11,9 - это 11, а с 12 до 12,9 - это 12. Просто надо оперировать целыми числами.
Про оперативное изменение уставки: подумал - вряд ли получится, замяли.
Ничего переделывать не надо, просто добавь сигналку.
Как то так.
PS когда уезжаешь?
Про оперативное изменение уставки: подумал - вряд ли получится, замяли.
Ничего переделывать не надо, просто добавь сигналку.
Как то так.
PS когда уезжаешь?
Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18
nvz писал(а):...Просто надо оперировать целыми числами.
Хозяин - барин. Десятые при индикации просто отбрасываются, а в обработке алгоритма управления реле участвуют.
nvz писал(а):Ничего переделывать не надо, просто добавь сигналку.
Добавил.
nvz писал(а):PS когда уезжаешь?
Сегодня ночью.
- Вложения
-
- TAM133_1M_72.zip
- (18.13 КБ) 306 скачиваний
- nvz
- Электрический кот
- Сообщения: 1056
- Зарегистрирован: Чт ноя 25, 2010 16:58:42
- Откуда: Средний Урал
Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18
В протеусе всё работает без нареканий, большое спасибо.
Удачи!
Удачи!
Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18
Здравствуйте!
Soir, был такой регулятор на ATMega8, для печи (viewtopic.php?p=1089628#p1089628) последняя прошивка,
отработал отлично, за что хочу сказать спасибо и еще раз спасибо!
Но, если у Вас сохранились исходники и есть возможность, очень нужно переделать на трехпозиционый регулятор (меньше-норма-больше), надо управлять горелкой.
оставив алгоритм и программу прежней, можно сократить количество программ до 4-5.
С уважением!
Soir, был такой регулятор на ATMega8, для печи (viewtopic.php?p=1089628#p1089628) последняя прошивка,
отработал отлично, за что хочу сказать спасибо и еще раз спасибо!
Но, если у Вас сохранились исходники и есть возможность, очень нужно переделать на трехпозиционый регулятор (меньше-норма-больше), надо управлять горелкой.
оставив алгоритм и программу прежней, можно сократить количество программ до 4-5.
С уважением!
- Вложения
-
- Termo_ATMEGA8_1.zip
- (118.6 КБ) 279 скачиваний
Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18
tbogdan писал(а):очень нужно переделать на трехпозиционый регулятор (меньше-норма-больше), надо управлять горелкой.
оставив алгоритм и программу прежней, можно сократить количество программ до 4-5.
Опишите подробнее, как должен работать "трехпозиционый регулятор"?
Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18
Soir писал(а):Опишите подробнее, как должен работать "трехпозиционый регулятор"?
Все оставив так как есть, добавив еще один канал регулирования (на pin10), для уменьшения мощности горелки при достижении температуры (SP) на величину гистерезиса (h)
И, желательно, уменьшить число ступеней регулирования с 100 до 60, увеличив время одной ступени с 0.02 сек. до 1 сек.
Количество программ тоже можно уменьшить до 5 (0-4).
С уважением!
- Вложения
-
- reg.JPG
- (43.4 КБ) 398 скачиваний
Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18
tbogdan писал(а):Все оставив так как есть, добавив еще один канал регулирования (на pin10), для уменьшения мощности горелки при достижении температуры (SP) на величину гистерезиса (h)
И, желательно, уменьшить число ступеней регулирования с 100 до 60, увеличив время одной ступени с 0.02 сек. до 1 сек.
Пока так и не понял принцип работы..
1. Правильно я понял, что в случае если температура ниже заданной на величину гистерезиса, то через определенное время подается импульс на открытие заслонки? В случае если температура выше..., то импульс на закрытие заслонки?
2. Какая длительность импульсов? 1 сек?
3. Действительно ли должно быть ограничение числа ступеней? Каким образом будет идти управление горелкой? Это заслонка на линии подачи газа? Управляется актуатором (шаговым двигателем)? Заслонка будет открываться/закрываться по счету ступеней, или пока не дойдет до крайнего положения? Сколько она вообще положений (ступеней) может занимать?
4. На диаграмме во вложении сигналы на выводах при отклонении от SP прописаны как постоянные величины (тогда какие ступени могут быть?), так и надо или все-таки импульсы?
Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18
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 скачивания
Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18
tbogdan, в целом понятно. Только длительность импульсов я так для себя и не уяснил. Ладно, начну что-то писать, потом разберемся что и как, надо от чего-то отталкиваться...