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

Поклонники продукции Microchip Technology Inc тусуются тут.
Pavel84
Открыл глаза
Сообщения: 59
Зарегистрирован: Ср апр 06, 2011 13:50:40

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

Сообщение Pavel84 »

Вопрос к форумчанам. Как подключить симистор через МОС3021. Во вложении МОС1 схема из даташита к МОС и еще где-то встречал схему подключения как во вложении МОС2. Как правильней? Ни разу до сегодняшнего дня не сталкивался.
Вложения
MOC2.rar
(2.47 КБ) 386 скачиваний
MOC1.rar
(2.51 КБ) 278 скачиваний
Soir
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

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

Сообщение Soir »

Pavel84 писал(а):Вопрос к форумчанам. Как подключить симистор через МОС3021. Во вложении МОС1 схема из даташита к МОС и еще где-то встречал схему подключения как во вложении МОС2. Как правильней? Ни разу до сегодняшнего дня не сталкивался.

Я подключал по схеме МОС2, но это был МОС3063 и в даташите была именно эта схема включения. Думаю, включать надо по схеме из даташит МОС3021.
pai
Встал на лапы
Сообщения: 136
Зарегистрирован: Вт мар 01, 2011 19:13:15

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

Сообщение pai »

Здравствуйте уважаемые форумчане!

В начале 90 х годов в ремонт попадалась муфельная печь с микроконтролерным управлением на МП КР1820ВЕ,
работающей по примерно такому алгоритму:
-нагреть до температуры Т1 за время В1
-выдержать эту Т1 в течение времени В2
-увеличить Т1 доТ2 в течении В3
-выдержать эту Т2 в течение времени В4
-Уменьшить Т2 до Т3 за В5
-Выдержать Т3 в течении В6
-Остудить в течениеВ7
Контроль температуры-термопара, усилитель термопары- отдельный
Вопрос спецам форума: возможно ли реализовать этот алгоритм на пик контролере и сложно ли это будет?
Soir
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

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

Сообщение Soir »

pai писал(а):...возможно ли реализовать этот алгоритм на пик контролере и сложно ли это будет?

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

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

Сообщение nvz »

pai писал(а):-нагреть до температуры Т1 за время В1
-выдержать эту Т1 в течение времени В2
-увеличить Т1 доТ2 в течении В3
-выдержать эту Т2 в течение времени В4
-Уменьшить Т2 до Т3 за В5
-Выдержать Т3 в течении В6
-Остудить в течениеВ7

Простите что вмешиваюсь, но алгоритм уж очень оригинальный. Взять первый пункт, к примеру: нагреть до температуры Т1=300гр. естественным нагревом - это понятно. А если время В1 установить 5 часов? Это ж как надо умудриться чтобы температура к концу пяти часов только подошла к 300 градусам? Второй пункт вроде проще - включается таймер, хотя и гистерезис нужен по температуре. Ну и так далее... или я что-то не то сказал?
Soir
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

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

Сообщение Soir »

nvz писал(а):...Взять первый пункт, к примеру: нагреть до температуры Т1=300гр. естественным нагревом - это понятно. А если время В1 установить 5 часов? Это ж как надо умудриться чтобы температура к концу пяти часов только подошла к 300 градусам?

Все это реализуемо. Программа контролирует скорость нагрева и корректирует выходную мощность нагревателя. Если фазоимпульсный регулятор, то угол открывания симистора. Если вкл/выкл или ШИМ, то соотношение по времени между включенным и выключенным состоянием нагревателя (скажем одну секунду (или минуту...) включен, а две выключен, если рост температуры слишком большой - одну секунду включен, а три выключен и т.д.).
Аватара пользователя
nvz
Электрический кот
Сообщения: 1056
Зарегистрирован: Чт ноя 25, 2010 16:58:42
Откуда: Средний Урал

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

Сообщение nvz »

Извини, Soir, всё равно не понял: какая температура должна быть через (к примеру) 3 часа, и какая должна быть через 4 часа 45 минут 32 секунды, если к 5 часам она должна быть 300 градусов, да ещё температура не воздуха в печке, а объекта, который там находится.
pai
Встал на лапы
Сообщения: 136
Зарегистрирован: Вт мар 01, 2011 19:13:15

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

Сообщение pai »

Soir писал(а):
pai писал(а):...возможно ли реализовать этот алгоритм на пик контролере и сложно ли это будет?

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


Понятно
Итак, по порядку
1 преобразование температуры и компенсация холодного спая ОУ температура от комнатной до 1200 градусов после преобразователя-линейное изменение напряжения 0 до 3,5 В
2 органы управления- кнопки
две кнопки увеличения и уменьшения показаний и кнопка программирования
алгоритм примерно такой:
длительное нажатие на кнопку програм переводит термостат в режим программирования загорается первая программа П1
загорается Т1 нижняя температура не устанавливается нажимаем кнопку П загорается Т2 верхняя меняется от 50 до 1200 с шагом 10 град
нажимаем П загорается В устанавливаем время
время устанавливается в зависимости от приращения темп от 10 мин при 50 град и от 1 часа при 1200 с шагом 5 мин
нажимаем кнопку П загорается П2 высвечивается верхняя температура из предидущей программы
нажимаем кнопку П загорается Т2 устанавливаем температуру
аналогично первой программе, при превышении Т1 Т2 идет охлаждение иначе нагрев при Т1=Т2 стабилизация температуры в течение заданного времени
И Т Д
после длительного нажатия на кнопку П программы записываются в энергонезависимую память
3 программ желательно 10-15
4 точность поддержания Т плюс минус 10 град
5 индикация цифровая четырёхразрядная любая светодиодная, ИВЛ, ЖКИ
установка нескольких корпусов мелкой логики не пугает
6 охлаждение естественное
7 управление фазоимпульсное но можно и дискретное
8 После сбоя напряжения сети более 10 мин выполнение программы прекращается, нагреватель отключается
Насчёт МК несколько сложнее В наличии имеется ПИК16Ф84А
и ПИК12Ф675
может быть посоветуете какой нибудь ПИК с АЦП?
От применённого МК как я понимаю и зависит схема?
Или я ошибаюсь?
Soir
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

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

Сообщение Soir »

pai писал(а):...
Насчёт МК несколько сложнее В наличии имеется ПИК16Ф84А
и ПИК12Ф675
может быть посоветуете какой нибудь ПИК с АЦП?
От применённого МК как я понимаю и зависит схема?
Или я ошибаюсь?

В логику пока не вникал, нужно сначала определиться с железом.
16F84A не подходит, нет АЦП и мало памяти.
12F625 АЦП есть, мало памяти, мало выводов. Запихнуть в него такое количество программ будет затруднительно.
Из тех, с которыми работал, могу посоветовать PIC16F873A, PIC16F874A, PIC16F876A, PIC16F877A. Можно AVR. Индикаторы мне ближе светодиодные семисегментные, но выбрать Вы должны сами. Можно и ЖКИ. ИВЛ не советую. Мороки с ними много, именно в железе, программе все равно.
Регулировка мощности, если не принципиально, лучше дискретная. Проще реализуется и программно и в железе, надежнее. Выбор зависит от типа нагревателя, требуемой точности и равномерности разогрева и поддержания температуры. Подозреваю, что нагреватель будет мощным, соответственно при фазоимпульсном регулировании будет высокий уровень помех.
Soir
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

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

Сообщение Soir »

nvz писал(а):Извини, Soir, всё равно не понял: какая температура должна быть через (к примеру) 3 часа, и какая должна быть через 4 часа 45 минут 32 секунды, если к 5 часам она должна быть 300 градусов, да ещё температура не воздуха в печке, а объекта, который там находится.

Температура объекта принимается равной температуре воздуха в печке, конечно при правильном расположении датчика и достаточно медленном разогреве.
Если за 5 часов (300 минут) нагреть нужно с 20 oC до 300 oC, то через 3 часа (180 минут) температура должна быть: (300-20)/300*180+20=188 oC. Скорость разогрева будет составлять: (300-20)/300=0,93 oC/мин. Отсюда и все расчеты. Можно (если нужно) высчитать приращение в секунду: (300-20)/300/60=0,015(5) oC. Тогда через 4 часа 45 минут 32 секунды (4*3600+45*60+32=17132 сек) температура должна быть 17132*0,015(5)+20=286,5 oC.
pai
Встал на лапы
Сообщения: 136
Зарегистрирован: Вт мар 01, 2011 19:13:15

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

Сообщение pai »

Soir писал(а):
pai писал(а):...
Насчёт МК несколько сложнее В наличии имеется ПИК16Ф84А
и ПИК12Ф675
может быть посоветуете какой нибудь ПИК с АЦП?
От применённого МК как я понимаю и зависит схема?
Или я ошибаюсь?

В логику пока не вникал, нужно сначала определиться с железом.
16F84A не подходит, нет АЦП и мало памяти.
12F625 АЦП есть, мало памяти, мало выводов. Запихнуть в него такое количество программ будет затруднительно.
Из тех, с которыми работал, могу посоветовать PIC16F873A, PIC16F874A, PIC16F876A, PIC16F877A. Можно AVR. Индикаторы мне ближе светодиодные семисегментные, но выбрать Вы должны сами. Можно и ЖКИ. ИВЛ не советую. Мороки с ними много, именно в железе, программе все равно.
Регулировка мощности, если не принципиально, лучше дискретная. Проще реализуется и программно и в железе, надежнее. Выбор зависит от типа нагревателя, требуемой точности и равномерности разогрева и поддержания температуры. Подозреваю, что нагреватель будет мощным, соответственно при фазоимпульсном регулировании будет высокий уровень помех.


Уж больно они эти пик громоздкие опять же програматор под них переделывать да и цена кусается... А ПИК16Ф676 подойдёт?
Soir
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

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

Сообщение Soir »

pai писал(а):Уж больно они эти пик громоздкие опять же програматор под них переделывать да и цена кусается... А ПИК16Ф676 подойдёт?

Громоздкость компенсируется количеством выводов. Соответственно можно обойтись без внешней логики и в результате габариты будут меньше...
PIC16F676 почти тоже самое, что и PIC12F675, только выводов больше...
Можно AVR, например, ATMEGA8. Программатор, конечно, потребуется другой. Но ничего сложного в его изготовлении нет, детали копеечные и не дефицитные. Могу поделиться схемой и печаткой под COM-порт. Делают на LPT, там вообще четыре резистора весь программатор.
pai
Встал на лапы
Сообщения: 136
Зарегистрирован: Вт мар 01, 2011 19:13:15

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

Сообщение pai »

Soir писал(а):
pai писал(а):Уж больно они эти пик громоздкие опять же програматор под них переделывать да и цена кусается... А ПИК16Ф676 подойдёт?

Громоздкость компенсируется количеством выводов. Соответственно можно обойтись без внешней логики и в результате габариты будут меньше...
PIC16F676 почти тоже самое, что и PIC12F675, только выводов больше...
Можно AVR, например, ATMEGA8. Программатор, конечно, потребуется другой. Но ничего сложного в его изготовлении нет, детали копеечные и не дефицитные. Могу поделиться схемой и печаткой под COM-порт. Делают на LPT, там вообще четыре резистора весь программатор.


Поделитесь, пожалуйста!
Начинал разводить печатки с миллиметровой бумаги и, чтобы поменьше было исправлений, по схеме сразу прикидывал, как расположить детали
ИМХО, две 14 ножки для меня проще развсти, чем одну 28-ми
Хотя понимаю,что МК можно выводы подогнать под печатку
В любом случае завтра схожу прозондирую почву насчёт атмеги если нет в наличии, придётся 2-3 недели ждать
Ещё небольшой вопрос: атмегу с частотой 8МГц можно использовать или надо 16МГц?
Спасибо,Soir, за терпение и подробные объяснения
Soir
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

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

Сообщение Soir »

pai писал(а):Начинал разводить печатки с миллиметровой бумаги и, чтобы поменьше было исправлений, по схеме сразу прикидывал, как расположить детали

Если Вы дружите с Proteus, то разводить очень удобно в ARES.
Схема (в ISIS) и печатная плата (в ARES) программатора во вложении. Кроме того, там фото внешнего вида и 3d модели элементов, которые я создавал сам, так как в Proteus их нет. Они для 3d визуализации в ARES, должны быть или в папке с проектом или в папке LIBRARY. Можно и без них, это для красоты и наглядности. COM разъем на плате "папа". Соединяется с компьютером удлинителем "мама"-"мама". Что не понятно - спрашивайте. Можно обойтись без диодов D5 - D7, С4 и U2, но тогда надо внешний источник питания +5V. Проверен на ATMEGA8.
Прошивал программой PONYPROG2000.
pai писал(а):Ещё небольшой вопрос: атмегу с частотой 8МГц можно использовать или надо 16МГц?

4МГц с головой хватит для такого устройства. AVR можно и другой, это я для примера из того, что дешевое и с чем работал.
Вложения
Programer_AVR.zip
(180.54 КБ) 288 скачиваний
pai
Встал на лапы
Сообщения: 136
Зарегистрирован: Вт мар 01, 2011 19:13:15

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

Сообщение pai »

Soir писал(а):
pai писал(а):Начинал разводить печатки с миллиметровой бумаги и, чтобы поменьше было исправлений, по схеме сразу прикидывал, как расположить детали

Если Вы дружите с Proteus, то разводить очень удобно в ARES.
Схема (в ISIS) и печатная плата (в ARES) программатора во вложении. Кроме того, там фото внешнего вида и 3d модели элементов, которые я создавал сам, так как в Proteus их нет. Они для 3d визуализации в ARES, должны быть или в папке с проектом или в папке LIBRARY. Можно и без них, это для красоты и наглядности. COM разъем на плате "папа". Соединяется с компьютером удлинителем "мама"-"мама". Что не понятно - спрашивайте. Можно обойтись без диодов D5 - D7, С4 и U2, но тогда надо внешний источник питания +5V. Проверен на ATMEGA8.
Прошивал программой PONYPROG2000.
pai писал(а):Ещё небольшой вопрос: атмегу с частотой 8МГц можно использовать или надо 16МГц?

4МГц с головой хватит для такого устройства. AVR можно и другой, это я для примера из того, что дешевое и с чем работал.


Очень симпатично!

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

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

Сообщение Soir »

pai писал(а):протеусом не пользуюсь

Устанавливайте, осваивайте, иначе сотрудничество у нас не получится.
Pavel84
Открыл глаза
Сообщения: 59
Зарегистрирован: Ср апр 06, 2011 13:50:40

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

Сообщение Pavel84 »

протеусом не пользуюсь

pai, Proteus действительно программка нужная. Без помощи Soir и этой программы небыло бы победы в моем проекте! У Soir прошу прощения за то что пропал. Работа. Очень уж много для меня было сделано, но вот испытания прошли еще не все, за отсутствием времени. Еще и выяснилось что даттчик температуры по диаметру не входит в посадочное место (раньше термопарой пользовался). Придется переделывать :(
pai
Встал на лапы
Сообщения: 136
Зарегистрирован: Вт мар 01, 2011 19:13:15

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

Сообщение pai »

Soir писал(а):
pai писал(а):протеусом не пользуюсь

Устанавливайте, осваивайте, иначе сотрудничество у нас не получится.


Установил, запустил, но при включении симуляции выдает ошибку, пока курю описание
Как и ожидал, атмеги в наличии нет, заказал, жду
Вопрос по программатору:
как он себя ведёт с длинным кабелем?
Когда собирал JDM, длинный кабель вызывал сбои пришлось укоротить
Pavel84, думаю, протеус далеко не самый важный компонент в любом проекте
Главное- голова и руки
Soir
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

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

Сообщение Soir »

pai писал(а):Вопрос по программатору:
как он себя ведёт с длинным кабелем?
Когда собирал JDM, длинный кабель вызывал сбои пришлось укоротить

У меня длина кабеля 0,8 м, работает стабильно в т.ч. и JDM.
pai писал(а):думаю, протеус далеко не самый важный компонент в любом проекте

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

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

Сообщение Soir »

pai писал(а):...Как и ожидал, атмеги в наличии нет, заказал, жду...

Раз дело сдвинулось с нуля, пора что-то рисовать и писать.
Вот, набросал схему для ATMEGA8, согласно Вашему описанию.
Так как не все вопросы оговорены, кое-что делал по своему усмотрению, давайте обсуждать.
1. Индикатор светодиодный с общим катодом. Уточните тип индикатора и потребляемую мощность.
2. Кнопок 3, я бы добавил еще 4-ую. При таком индикаторе будет недостаточно информативности и неудобства в пользовании прибором. 4-ой кнопкой можно по кругу просматривать текущую информацию: температура, номер текущей программы, оставшееся время до завершения текущей программы, выходная мощность.
3. Нужно определиться с принципом регулирования мощности. Варианты такие:
а). Дискретный, реле. Часто включать/выключать наверно не стоит. Нужно задаться диапазоном времени регулирования. То есть, например, весь диапазон 100 секунд, дискретность регулирования 1 сек, число ступеней 100. Регулировка: мощность 1% - 1 сек нагреватель включен, 99 сек выключен и т.д.
б). Дискретный, симистор. Вопрос тот же, но еще есть один. В какие моменты включать нагрузку. Тут есть возможность управлять нагрузкой при переходе сетевого напряжения через 0. Можно при помощи МК (несколько усложнит схему и прошивку) отслеживать переход, а можно использовать специальные оптопары (MOC), кроме всего прочего, будет еще и гальваническая развязка. Пример такой реализации - файл Power_1.DSN.
в). Фазоимпульсный, симистор. Нужен формирователь импульсов перехода сетевого напряжения через 0, схема подавления помех.
P.S. Гальваническая развязка желательна в любом случае.
4. Питание схемы - стабилизированное, можно распространенный 7805. Должна быть схема отслеживания наличия питания (POWER GOOD). И резервный источник питания на 10 минут работы устройства. Тут я не понял, как должно вести себя устройство, но это пока не вопрос №1. Вариант схемы - файл Power_2.DSN.
5. Вопрос по частоте измерения температуры. Как часто ее мерять и как часто корректировать мощность? Ответ на это вопрос зависит от конкретных характеристик печи, нагревателя, объекта нагрева, требуемой точности поддержания температуры и т.п.
Пока вопросы все. Дальше уже можно будет писать прошивку и уточнить схему.
Схемы в Proteus, но пока не для симуляции и не для изготовления.
Вложения
Termo_ATMega.zip
(27.07 КБ) 367 скачиваний
Ответить

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