Терморегулятор на микроконтроллере PIC16F84 датчикe DS18B20
Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18
Вопрос к форумчанам. Как подключить симистор через МОС3021. Во вложении МОС1 схема из даташита к МОС и еще где-то встречал схему подключения как во вложении МОС2. Как правильней? Ни разу до сегодняшнего дня не сталкивался.
Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18
Pavel84 писал(а):Вопрос к форумчанам. Как подключить симистор через МОС3021. Во вложении МОС1 схема из даташита к МОС и еще где-то встречал схему подключения как во вложении МОС2. Как правильней? Ни разу до сегодняшнего дня не сталкивался.
Я подключал по схеме МОС2, но это был МОС3063 и в даташите была именно эта схема включения. Думаю, включать надо по схеме из даташит МОС3021.
Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18
Здравствуйте уважаемые форумчане!
В начале 90 х годов в ремонт попадалась муфельная печь с микроконтролерным управлением на МП КР1820ВЕ,
работающей по примерно такому алгоритму:
-нагреть до температуры Т1 за время В1
-выдержать эту Т1 в течение времени В2
-увеличить Т1 доТ2 в течении В3
-выдержать эту Т2 в течение времени В4
-Уменьшить Т2 до Т3 за В5
-Выдержать Т3 в течении В6
-Остудить в течениеВ7
Контроль температуры-термопара, усилитель термопары- отдельный
Вопрос спецам форума: возможно ли реализовать этот алгоритм на пик контролере и сложно ли это будет?
В начале 90 х годов в ремонт попадалась муфельная печь с микроконтролерным управлением на МП КР1820ВЕ,
работающей по примерно такому алгоритму:
-нагреть до температуры Т1 за время В1
-выдержать эту Т1 в течение времени В2
-увеличить Т1 доТ2 в течении В3
-выдержать эту Т2 в течение времени В4
-Уменьшить Т2 до Т3 за В5
-Выдержать Т3 в течении В6
-Остудить в течениеВ7
Контроль температуры-термопара, усилитель термопары- отдельный
Вопрос спецам форума: возможно ли реализовать этот алгоритм на пик контролере и сложно ли это будет?
Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18
pai писал(а):...возможно ли реализовать этот алгоритм на пик контролере и сложно ли это будет?
Если вопрос риторический, то конечно можно.
Если практический - это целый проект. Сначала нужно определиться с элементной базой: МК должен быть с АЦП, сигнал от термопары требует усиления и компенсации, определиться с индикатором и органами управления, выбрать способ управления нагрузкой, что есть охлаждение (естественное или принудительное?). В общем, нужно рисовать схему. Потом писать управляющую программу и изготавливать устройство...
Что из этого Вы можете сделать самостоятельно? Лично я готов помогать на всех этапах, но не делать весь проект за Вас.
- nvz
- Электрический кот
- Сообщения: 1056
- Зарегистрирован: Чт ноя 25, 2010 16:58:42
- Откуда: Средний Урал
Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18
pai писал(а):-нагреть до температуры Т1 за время В1
-выдержать эту Т1 в течение времени В2
-увеличить Т1 доТ2 в течении В3
-выдержать эту Т2 в течение времени В4
-Уменьшить Т2 до Т3 за В5
-Выдержать Т3 в течении В6
-Остудить в течениеВ7
Простите что вмешиваюсь, но алгоритм уж очень оригинальный. Взять первый пункт, к примеру: нагреть до температуры Т1=300гр. естественным нагревом - это понятно. А если время В1 установить 5 часов? Это ж как надо умудриться чтобы температура к концу пяти часов только подошла к 300 градусам? Второй пункт вроде проще - включается таймер, хотя и гистерезис нужен по температуре. Ну и так далее... или я что-то не то сказал?
Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18
nvz писал(а):...Взять первый пункт, к примеру: нагреть до температуры Т1=300гр. естественным нагревом - это понятно. А если время В1 установить 5 часов? Это ж как надо умудриться чтобы температура к концу пяти часов только подошла к 300 градусам?
Все это реализуемо. Программа контролирует скорость нагрева и корректирует выходную мощность нагревателя. Если фазоимпульсный регулятор, то угол открывания симистора. Если вкл/выкл или ШИМ, то соотношение по времени между включенным и выключенным состоянием нагревателя (скажем одну секунду (или минуту...) включен, а две выключен, если рост температуры слишком большой - одну секунду включен, а три выключен и т.д.).
- nvz
- Электрический кот
- Сообщения: 1056
- Зарегистрирован: Чт ноя 25, 2010 16:58:42
- Откуда: Средний Урал
Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18
Извини, Soir, всё равно не понял: какая температура должна быть через (к примеру) 3 часа, и какая должна быть через 4 часа 45 минут 32 секунды, если к 5 часам она должна быть 300 градусов, да ещё температура не воздуха в печке, а объекта, который там находится.
Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18
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
может быть посоветуете какой нибудь ПИК с АЦП?
От применённого МК как я понимаю и зависит схема?
Или я ошибаюсь?
Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18
pai писал(а):...
Насчёт МК несколько сложнее В наличии имеется ПИК16Ф84А
и ПИК12Ф675
может быть посоветуете какой нибудь ПИК с АЦП?
От применённого МК как я понимаю и зависит схема?
Или я ошибаюсь?
В логику пока не вникал, нужно сначала определиться с железом.
16F84A не подходит, нет АЦП и мало памяти.
12F625 АЦП есть, мало памяти, мало выводов. Запихнуть в него такое количество программ будет затруднительно.
Из тех, с которыми работал, могу посоветовать PIC16F873A, PIC16F874A, PIC16F876A, PIC16F877A. Можно AVR. Индикаторы мне ближе светодиодные семисегментные, но выбрать Вы должны сами. Можно и ЖКИ. ИВЛ не советую. Мороки с ними много, именно в железе, программе все равно.
Регулировка мощности, если не принципиально, лучше дискретная. Проще реализуется и программно и в железе, надежнее. Выбор зависит от типа нагревателя, требуемой точности и равномерности разогрева и поддержания температуры. Подозреваю, что нагреватель будет мощным, соответственно при фазоимпульсном регулировании будет высокий уровень помех.
Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18
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.
Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18
Soir писал(а):pai писал(а):...
Насчёт МК несколько сложнее В наличии имеется ПИК16Ф84А
и ПИК12Ф675
может быть посоветуете какой нибудь ПИК с АЦП?
От применённого МК как я понимаю и зависит схема?
Или я ошибаюсь?
В логику пока не вникал, нужно сначала определиться с железом.
16F84A не подходит, нет АЦП и мало памяти.
12F625 АЦП есть, мало памяти, мало выводов. Запихнуть в него такое количество программ будет затруднительно.
Из тех, с которыми работал, могу посоветовать PIC16F873A, PIC16F874A, PIC16F876A, PIC16F877A. Можно AVR. Индикаторы мне ближе светодиодные семисегментные, но выбрать Вы должны сами. Можно и ЖКИ. ИВЛ не советую. Мороки с ними много, именно в железе, программе все равно.
Регулировка мощности, если не принципиально, лучше дискретная. Проще реализуется и программно и в железе, надежнее. Выбор зависит от типа нагревателя, требуемой точности и равномерности разогрева и поддержания температуры. Подозреваю, что нагреватель будет мощным, соответственно при фазоимпульсном регулировании будет высокий уровень помех.
Уж больно они эти пик громоздкие опять же програматор под них переделывать да и цена кусается... А ПИК16Ф676 подойдёт?
Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18
pai писал(а):Уж больно они эти пик громоздкие опять же програматор под них переделывать да и цена кусается... А ПИК16Ф676 подойдёт?
Громоздкость компенсируется количеством выводов. Соответственно можно обойтись без внешней логики и в результате габариты будут меньше...
PIC16F676 почти тоже самое, что и PIC12F675, только выводов больше...
Можно AVR, например, ATMEGA8. Программатор, конечно, потребуется другой. Но ничего сложного в его изготовлении нет, детали копеечные и не дефицитные. Могу поделиться схемой и печаткой под COM-порт. Делают на LPT, там вообще четыре резистора весь программатор.
Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18
Soir писал(а):pai писал(а):Уж больно они эти пик громоздкие опять же програматор под них переделывать да и цена кусается... А ПИК16Ф676 подойдёт?
Громоздкость компенсируется количеством выводов. Соответственно можно обойтись без внешней логики и в результате габариты будут меньше...
PIC16F676 почти тоже самое, что и PIC12F675, только выводов больше...
Можно AVR, например, ATMEGA8. Программатор, конечно, потребуется другой. Но ничего сложного в его изготовлении нет, детали копеечные и не дефицитные. Могу поделиться схемой и печаткой под COM-порт. Делают на LPT, там вообще четыре резистора весь программатор.
Поделитесь, пожалуйста!
Начинал разводить печатки с миллиметровой бумаги и, чтобы поменьше было исправлений, по схеме сразу прикидывал, как расположить детали
ИМХО, две 14 ножки для меня проще развсти, чем одну 28-ми
Хотя понимаю,что МК можно выводы подогнать под печатку
В любом случае завтра схожу прозондирую почву насчёт атмеги если нет в наличии, придётся 2-3 недели ждать
Ещё небольшой вопрос: атмегу с частотой 8МГц можно использовать или надо 16МГц?
Спасибо,Soir, за терпение и подробные объяснения
Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18
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 скачиваний
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 можно и другой, это я для примера из того, что дешевое и с чем работал.
Очень симпатично!
протеусом не пользуюсь, в связи с полным отсутствием лазерного принтера платы рисую в лайоуте
Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18
pai писал(а):протеусом не пользуюсь
Устанавливайте, осваивайте, иначе сотрудничество у нас не получится.
Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18
протеусом не пользуюсь
pai, Proteus действительно программка нужная. Без помощи Soir и этой программы небыло бы победы в моем проекте! У Soir прошу прощения за то что пропал. Работа. Очень уж много для меня было сделано, но вот испытания прошли еще не все, за отсутствием времени. Еще и выяснилось что даттчик температуры по диаметру не входит в посадочное место (раньше термопарой пользовался). Придется переделывать
Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18
Soir писал(а):pai писал(а):протеусом не пользуюсь
Устанавливайте, осваивайте, иначе сотрудничество у нас не получится.
Установил, запустил, но при включении симуляции выдает ошибку, пока курю описание
Как и ожидал, атмеги в наличии нет, заказал, жду
Вопрос по программатору:
как он себя ведёт с длинным кабелем?
Когда собирал JDM, длинный кабель вызывал сбои пришлось укоротить
Pavel84, думаю, протеус далеко не самый важный компонент в любом проекте
Главное- голова и руки
Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18
pai писал(а):Вопрос по программатору:
как он себя ведёт с длинным кабелем?
Когда собирал JDM, длинный кабель вызывал сбои пришлось укоротить
У меня длина кабеля 0,8 м, работает стабильно в т.ч. и JDM.
pai писал(а):думаю, протеус далеко не самый важный компонент в любом проекте
Скажу, что без Proteus я бы не взялся ни за один проект. Даже простые схемы, не требующие симуляции, рисую в Proteus, хотя бы для того, чтобы не допустить ошибок при разводке платы.
Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18
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 скачиваний