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

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

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

Сообщение nvz »

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

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

Сообщение Soir »

nvz писал(а):Проверил новые прошивки, вместо незначащего выскакивает минус

Выскакивает правильно?
nvz писал(а):дальше проверить не могу - за окном минус пять градусов.

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

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

Сообщение nvz »

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

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

Сообщение Soir »

nvz писал(а):Выскакивает правильно. Холодильника у меня на работе нет (есть микроволновка), а что, в холодильнике температура ниже 10 градусов?

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

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

Сообщение nvz »

Блин, про установку температуры не догадался. Проверю, но уже послезавтра, я все конструкции делаю на работе. А пока буду разрабатывать печатку, схемы и печатные платы делаю в ACAD14.
NoMaD
Родился
Сообщения: 14
Зарегистрирован: Сб дек 11, 2010 22:18:35

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

Сообщение NoMaD »

Добрый всем вечер :) Перечитал всю тему в ввиду надобности подобного устройства, и малость запутался с возможностями каждой из прошивок. Собственно говоря у меня проблема следующего характера: в холодильнике сломался контроллер, и найти родной весьма затруднительно, к тому же интерес к МК(мне конечно ближе AVR, с них начинал) побудил меня создать контроллер своими силами. Вообщем устройство должно как минимум контроллировать и поддерживать температуру в холодильной камере(их 2) и включать копрессор, т.е. по сути подходит вариант предложеный в начале темы, с отключенной функцией нагревателя. Но вот есть желание использовать 2 датчика (для холодильной и морозильной камеры отдельно) и по возможности переключать источник контроля. Можно было бы добавить четвертую кнопку для переключения контролируемой камеры и сохронять этот выбор после выключения, с возможностью установок поддерживаемой температуры и гистерезиса для каждой камеры. Компрессор к сожалению один.
Помогите чем можете, ибо отсутсвие постоянной практики в создании устройств на мк дает о себе знать, последнее устройство делал года 3 назад, и навыки написания программ почти утеряны :(
Soir
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

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

Сообщение Soir »

NoMaD писал(а):...мне конечно ближе AVR, с них начинал...

Могу помочь только с PIC.
NoMaD
Родился
Сообщения: 14
Зарегистрирован: Сб дек 11, 2010 22:18:35

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

Сообщение NoMaD »

Soir писал(а):
NoMaD писал(а):...мне конечно ближе AVR, с них начинал...

Могу помочь только с PIC.


Это для меня не принципиально, просто я с ними не работал :)
Я тут набрасал схемку, немного изменив вашу. Кнопка XK/MK/OFF переключает контролируемую камеру. Долгое нажатие на эту кнопку выключает компрессор(режим разморозки). Реле RL1 должно быть включено всегда кроме режима OFF.
Буду благодарен любой помощи :)
Вложения
TErmo.png
(40.12 КБ) 583 скачивания
Soir
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

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

Сообщение Soir »

NoMaD писал(а):Я тут набрасал схемку, немного изменив вашу. Кнопка XK/MK/OFF переключает контролируемую камеру. Долгое нажатие на эту кнопку выключает компрессор(режим разморозки). Реле RL1 должно быть включено всегда кроме режима OFF.

Вопросы по схеме.
1. Назначение кнопок в цепях датчиков. Это выбор активного датчика?
2. Если нет и выбор датчика осуществляется кнопкой XK/MK/OFF, то каким образом будет индицироваться активный датчик?
3. Если установки для XK и MK разные, опять же, как их различать на индикаторе?
4. Тип индикатора: общий анод или катод.
5. Нужны ли в схеме ключи (инверторы) U3-U6?
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

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

Сообщение Аlex »

1. Назначение кнопок в цепях датчиков. Это выбор активного датчика?
Soir, это он наверное взял с моего проекта. Я этими переключателями эмитировал обрыв датчика.
NoMaD
Родился
Сообщения: 14
Зарегистрирован: Сб дек 11, 2010 22:18:35

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

Сообщение NoMaD »

Вообщем хотелось бы видеть это примерно так:
-При включении должен быть режим OFF, т.е. на 15 и 16 ноге ноль, при этом индикация температур должна работать. При кратковременном нажатии на кнопку XK/MK/OFF мы меняем индицируемую температуру. В этом же режиме(т.е. OFF) при нажатии на кнопку SET мы выставляем 5 пунктов:
-контролируемую камеру( примерно так С__1 или С__2) при этом 1 это ХК а 2 это МК.
-выставляем температуру 1 камеры(примерно так 1 XX)
-выставляем гистерезис 1 камеры(примерно так d1 X)
-выставляем температуру 2 камеры(примерно так 2-XX)
-выставляем гистерезис 2 камеры(примерно так d2 X)
и так по кольцу. По истечении 5 сек если не трогать клавиши все сохраняется и возвращаемся в режим индикации. Настройку температур и гистерезиса производим без десятых долей. Вместо 1 и 2 я бы поставил просто светодиоды но видимо ног на контроллере уже нет.
-При длительном нажатии на XK/MK/OFF включаем RL1(т.е. оно должно быть включенно постоянно пока режим ON) и управление компрессором.
Вообщем как то так :) Может я малость намудрил конечно
Кнопки я взял видимо со схемы ALex, они там не нужны, просто они не мешают :)
Аватара пользователя
nvz
Электрический кот
Сообщения: 1056
Зарегистрирован: Чт ноя 25, 2010 16:58:42
Откуда: Средний Урал

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

Сообщение nvz »

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

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

Сообщение nvz »

Soir! Индикацию минусовой температуры проверил - всё работает правильно. У меня просьба, если не трудно:
имеются PIC16C622-04/P, кварц 14.318 МГц.
При достижении на входе 10 импульсов/сек и выше - на выходе плюс, при снижении до 9 импульсов и ниже - выдержка времени 10 секунд - на выходе минус. Если во время выдержки времени число импульсов повышается до 10 и выше - на выходе плюс. Как-то так.
С уважением NVZ.
Soir
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

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

Сообщение Soir »

nvz писал(а):У меня просьба, если не трудно:
имеются PIC16C622-04/P, кварц 14.318 МГц.
При достижении на входе 10 импульсов/сек и выше - на выходе плюс, при снижении до 9 импульсов и ниже - выдержка времени 10 секунд - на выходе минус. Если во время выдержки времени число импульсов повышается до 10 и выше - на выходе плюс. Как-то так.
С уважением NVZ.

Чуть освобожусь, тогда подумаю, как это реализовать.
NoMaD
Родился
Сообщения: 14
Зарегистрирован: Сб дек 11, 2010 22:18:35

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

Сообщение NoMaD »

nvz писал(а):Извините, конечно, но я не понимаю, зачем такие сложности? По моему проще поставить переключатель типа тумблера для переключения датчиков и сигнализации ХК и МК. Уставки температуры выставлять отдельно для камеры, индикация которой включена, всё равно это делать надо будет редко.


Ну в принципе я это и предлагаю, только вместо тумблера кнопка XK/MK/OFF, в остальном полностью согласен. Во время работы компрессора должна быть зашита от переключения контролируемой камеры, только в режиме OFF.

Вообщем подумал и решил отказаться от второго датчика, оставил контроль только холодильной камерой.
Принцип работы такой:
При включении на индикаторе реальная температура, при кратковременном нажатии на Set/On выставляем рабочую температуру и гистерезис, 15 и 16 ноги по нулям. При длительном нажатии на кнопку Set/On включаем компрессор и Лампу. В режиме On лампа горит постоянно, а компрессор соответственно регулируется. При повторном длительном нажатии на Set/On компрессор и лампа выключаются. Настройки температуры работают и в режиме off и в режиме on. По сути устройство такое же как и в начале темы, за исключением отсутсвия управление обогревателем и наличием выключателя On/Off.
Внизу предпологаемая схема. Люди добри помогите пжлста, бо без холодильника дуже тяжко :)
Вложения
Termo.rar
(39.22 КБ) 260 скачиваний
Аватара пользователя
nvz
Электрический кот
Сообщения: 1056
Зарегистрирован: Чт ноя 25, 2010 16:58:42
Откуда: Средний Урал

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

Сообщение nvz »

Осмелюсь ответить и на этот раз. Моё мнение - выход команды на компрессор надо всё-таки задавать вручную (выключателем), а не программно. В память микропроцессора записываются уставки температуры, но вряд ли там же находятся команды ON/OFF. После кратковременного прерывания электроэнергии термометр будет показывать температуру, будут обрабатываться уставки температуры, а выхода на компрессор не будет.
Soir
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

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

Сообщение Soir »

NoMaD писал(а):Внизу предпологаемая схема. Люди добри помогите пжлста, бо без холодильника дуже тяжко :)

Это уже окончательный вариант, или... Не успеваю за Вами. :)
Вечером, если ничего не помешает, напишу прошивку.
По схеме, добавьте ограничительные резисторы в цепи управления кнопок. Или хотя бы один на все, при условии, что одновременно на две и более кнопки не нажимать.
И еще. Подключение кнопок сделайте к выводам 6, 7, 8. Диоды нужно развернуть анодами к выводам МК.
NoMaD
Родился
Сообщения: 14
Зарегистрирован: Сб дек 11, 2010 22:18:35

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

Сообщение NoMaD »

Учел все рекомендации и в итоге окончательный вариант.
При подаче питания компрессор и лампа работатют, все работает нормально. (лампа горит постоянно)
Все настройки работают, вообщем нормальная работа устройства.
При долговременном нажатии на кнопку Set/Off компрессор и лампа выключаются, режим не сохраняем в памяти, т.е. при снятии питания и подаче заново опять все работает, защита от выключения энергии :)
NVZ спасибо за подсказку насчет On/off.
Думаю это окончательный вариант, я понял что простота гарант надежности :)
Вложения
Termo.rar
(21.25 КБ) 253 скачивания
Soir
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

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

Сообщение Soir »

NoMaD писал(а):Учел все рекомендации и в итоге окончательный вариант.
При подаче питания компрессор и лампа работатют, все работает нормально. (лампа горит постоянно)
Все настройки работают, вообщем нормальная работа устройства.
При долговременном нажатии на кнопку Set/Off компрессор и лампа выключаются, режим не сохраняем в памяти, т.е. при снятии питания и подаче заново опять все работает, защита от выключения энергии :)
NVZ спасибо за подсказку насчет On/off.
Думаю это окончательный вариант, я понял что простота гарант надежности :)

Смотрите вложение, проверяйте.
Схема Ваша, я лишь чуть изменил для корректной работы симуляции в Proteus. То есть, моя схема для демонстрации и отладки. Единственное что - резистор R4 рекомендуется 4,7 кОм.
Работает следующим образом. При включении питания лампа включена. До первого измерения температуры - компрессор выключен. После измерения, если температура оказалась выше установленной, включается компрессор. После снижения температуры на величину дельта ниже установленной, компрессор выключается.
Кратковременное нажатие на кнопку SET приводит к миганию установленной температуры. Кратковременное нажатие на кнопки PLUS/MINUS увеличивает/уменьшает десятые доли градуса. Длинное нажатие ускоряет процесс установки. Повторное нажатие на SET переводит устройство в режим установки дельты. Тут все аналогично. После завершения установки, примерно через 5 сек, данные заносятся в EEPROM и будут оттуда считаны при последующем включении устройства.
Длинное нажатие на кнопку SET в режиме отображения измеренной температуры приводит к выключению лампы и компрессора. Повторное включение только после снятия питания.
Вроде все как Вы просили. Если что не так - пишите.
Вложения
Termo_1.zip
(24.28 КБ) 292 скачивания
NoMaD
Родился
Сообщения: 14
Зарегистрирован: Сб дек 11, 2010 22:18:35

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

Сообщение NoMaD »

Soir большое спасибо за программу, но все же есть 2 момента:
-Извиняюсь если неправильно сформулировал назначение режима on/off; при длительном нажатии на кнопку set выключаем и включаем также, просто мы не сохраняем это значение в память. Эта функция для оперативного включения выключения компрессора (ну и лампы тоже), просто чтобы при размарозке ни лезть вытыкать втыкать вилку из розетки (она у меня далеко) :)
-И второй маленький моментик, компрессор включаем при температуре равной установленая + дельта, т.е. если допустим установленая 5, дельта 2 а реальная 7 то мы включаем компрессор и доводим до 5 и выключаем. У вас помойму наоборот :)
В остальном пожалуй все отлично, спасибо
Ах да, нельзя ли как нибудь избавится от 85 при запуске и что в реально схеме мы ставим на место инвентора? Транзисторы или МС? Или не важно?
Ответить

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