Терморегулятор на микроконтроллере PIC16Fxx и DS18B20

Вопросы и замечания по статьям и схемам, представленным на нашем сайте

При поддержке РадиоКОТструктор.ру


Kaban
Прорезались зубы
Сообщения: 235
Зарегистрирован: Пн дек 01, 2008 14:19:31
Откуда: Киргизия.

Re: Терморегулятор на микроконтроллере PIC16Fxx и DS18B20

Сообщение Kaban »

Я что-то не понял, это релейный регулятор или пропорциональный? Проверял на лампе , горит в полный накал,никакой регуляции мощности нет. В чём может быть проблема?
Реклама
Аватара пользователя
Хатуль_мадан
Электрический кот
Сообщения: 1007
Зарегистрирован: Ср мар 03, 2010 11:48:00
Откуда: Уфа

Re: Терморегулятор на микроконтроллере PIC16Fxx и DS18B20

Сообщение Хатуль_мадан »

Это не проблема, а так задумано. Обычно нагреватели, в отличии от ламп, имеют достаточную инерционность нагрева и при большой мощности приличные токи включения. Поэтому для снижения помех фазовый способ управления симистором не применим (да и оптопара включает только при переходе через ноль). Пропорциональная регулировка осуществляется за счет соотношения времени включенного состояния к отключенному в течении 1 секунды с дискретностью 10. Таким образом мощность может быть 10% 20% и т.д. с количеством полных полупериодов в нагрузке соответственно 5, 10, 15 .... 50 (максимальная мощность). При испытаниях такой способ дал вполне удовлетворительные результаты.
Реклама
Kaban
Прорезались зубы
Сообщения: 235
Зарегистрирован: Пн дек 01, 2008 14:19:31
Откуда: Киргизия.

Re: Терморегулятор на микроконтроллере PIC16Fxx и DS18B20

Сообщение Kaban »

Хатуль_мадан, я не говорил о фазовой регулировке нагревателя. Если мощность нагревателя регулируется количеством пропусков периодов, то лампа должна мигать, но она шпарит на полную мощность. При достижении установленной температуры происходит отключение. Гистерезис установлен. В общем работает как обычный позиционный регулятор.
Аватара пользователя
Хатуль_мадан
Электрический кот
Сообщения: 1007
Зарегистрирован: Ср мар 03, 2010 11:48:00
Откуда: Уфа

Re: Терморегулятор на микроконтроллере PIC16Fxx и DS18B20

Сообщение Хатуль_мадан »

Так если она не мигает в диапазоне гистерезиса, то значит не включен режим пропорционального регулирования, или задан нулевой гистерезис. Мигание будет, если температура уже достигла Tust-dT/2 или еще не превысила Tust+dT/2. При температуре менее Tust-dT/2 нагреватель включен всегда, при превышении Tust+dT/2 нагреватель всегда выключен, а при dT=0 можно догадаться, как будет вести себя схема :)
По любому, лучше прочитать файлик описания к регулятору, или попробовать в протеусе поэкспериментировать (модели выкладывались)...
Реклама
Эиком - электронные компоненты и радиодетали
Kaban
Прорезались зубы
Сообщения: 235
Зарегистрирован: Пн дек 01, 2008 14:19:31
Откуда: Киргизия.

Re: Терморегулятор на микроконтроллере PIC16Fxx и DS18B20

Сообщение Kaban »

лучше прочитать файлик описания к регулятору
читал.
в протеусе поэкспериментировать
В протеусе играл.
Гистерезис не нулевой, режим пропорционального регулирования включён.
Реклама
Kaban
Прорезались зубы
Сообщения: 235
Зарегистрирован: Пн дек 01, 2008 14:19:31
Откуда: Киргизия.

Re: Терморегулятор на микроконтроллере PIC16Fxx и DS18B20

Сообщение Kaban »

Хатуль_мадан, вопрос решён. Было подозрение на микроконтроллер , при прошивке пришлось несколько раз перепрошивать, до этого его использовал во многих поделках. Заменил контроллер , всё работает. Чертовщина какая-то, ну да и ладно. :))
Теперь буду гонять на реальном объекте.
PS: Вот если бы взять этот регулятор и на его основе разработать ПИД-регулятор..... :)
Реклама
Lavr12
Встал на лапы
Сообщения: 91
Зарегистрирован: Чт апр 14, 2011 16:28:14
Откуда: Москва

Re: Терморегулятор на микроконтроллере PIC16Fxx и DS18B20

Сообщение Lavr12 »

Уважаемый Хатуль_мадан
Повторил "в железе" Вашу конструкцию из первого сообщения данной темы. Схему немного перерисовал "под себя" и под имеющиеся компоненты (см. вложение). Прошивка Ваша, EEPROM не менял.
Заработало (на столе) сразу. Но есть несколько вопросиков:
- нечётко работают кнопки; в принципе один раз выставил и забыл, но как-то неуютно, что ли, нельзя ли подправить програмку?
- сегменты индикатора раз в секунду подмигивают (в момент измерения?); немного раздражает - нельзя никак убрать эти заметные мигания?
- при включении питания на 1 секунду включается нагрузка (пока стоит лампа - вспыхивает и гаснет); не будет ли проблем с компрессором холодильника?
- пару раз наблюдал срыв работы устройства - показания температуры начинали быстро мигать и уменьшаться до минус 55 градусов (минимальный уровень DS18B20?), регулировка не работала; поэтому решил убрать резистор 91ом из цепи питания DS18B20 - вроде пока "полёт нормальный"; правильно сделал и что-то ещё попробовать?
В остальном - всё (пока) работает как в Вашем кратком описании... Спасибо за полезную вещь (как раз сломался механический термостат в холодильнике - хочу заменить).
Вложения
Термостат холодильника.pdf
(89.68 КБ) 698 скачиваний
Аватара пользователя
Хатуль_мадан
Электрический кот
Сообщения: 1007
Зарегистрирован: Ср мар 03, 2010 11:48:00
Откуда: Уфа

Re: Терморегулятор на микроконтроллере PIC16Fxx и DS18B20

Сообщение Хатуль_мадан »

В том же порядке:
1. Кнопки на моем регуляторе работают нормально, опрос в прерываниях инидкации, дребезга нет. Попробуйте проверить сами кнопки.
2. С подмигиванием боролся, но не победил. Динамическая индикация вызывается чаще, чем требуемое время опроса датчика, запрещаются прерывания, поэтому моргает.
3. Проблему при включении как-то не замечал, хотя возможно она и есть. Для холодильника уже выкладывал специальную доработанную прошивку.
4. Описанный срыв в работе ни разу не замечал, да он и невозможен. Датчик цифровой, поэтому показания или есть, или индикация ошибки, плавать до -55 температура не может. Скорее всего, так проявилась неисправность самого датчика. Регулятор только принимает из него преобразованную температуру и выводит на индикацию с контролем порогов срабатывания реле.
Если регулятор не универсальный, а только для холодильника, то лучше перепрошить МК спец. прошивкой с первой страницы. Там есть установки максимальных интервалов работы компрессора, паузы в работе и т.п.

PS(7.05.2013):
После фразы "пару раз наблюдал срыв работы устройства - показания температуры начинали быстро мигать и уменьшаться до минус 55 градусов (минимальный уровень DS18B20?), регулировка не работала" только сейчас понял возможную проблему. Раз индикатор начал мигать, значит включилась установка температуры, а т.к. она стала уменьшаться, то значит нажата (замкнута) кнопка минус, установленная температура падает до минимально возможного предела -55, при этом никакие регулировки не должны работать, пока не будут записаны новые установки. Выход (с записью в память) из этого режима только при отжатых (всех) кнопках более 5 сек.
Проверьте еще раз качество кнопок, или замените другой кнопку "-". Возможно она механически как-то застревает в корпусе, или утечки внутри ее, или др. проблема. Если случайно и бесконтрольно повторится такой случай, то появится возможность "загнать" установку температуры в самый минимум, потом она может сохранится в памяти, тогда терморегулятор не уследит за температурой со всеми вытекающими последствиями. Можно конечно попробовать опрашивать кнопки только в первые секунды после включения питания, потом блокировать опрос, но тогда тоже теряется некоторая универсальность. Сообщите результат, как проверите, может еще что подумаем...
Выходит резистор в цепи питания датчика не виноват :)
Последний раз редактировалось Хатуль_мадан Вт май 07, 2013 11:11:12, всего редактировалось 1 раз.
Lavr12
Встал на лапы
Сообщения: 91
Зарегистрирован: Чт апр 14, 2011 16:28:14
Откуда: Москва

Re: Терморегулятор на микроконтроллере PIC16Fxx и DS18B20

Сообщение Lavr12 »

Спасибо за ответ. Всё ясно. Прошивка использована именно специальная для холодильника. Все временные параметры (время паузы 2мин, время работы 36мин, время отдыха 18мин выдерживаются).
Вероятно, проблема с кнопками, проверю. Удачи!
Аватара пользователя
den2
Сверлит текстолит когтями
Сообщения: 1145
Зарегистрирован: Вт авг 17, 2010 11:58:06
Откуда: Казань

Re: Терморегулятор на микроконтроллере PIC16Fxx и DS18B20

Сообщение den2 »

Lavr12
Если можно,выложите Ваш вариант платы.
Lavr12
Встал на лапы
Сообщения: 91
Зарегистрирован: Чт апр 14, 2011 16:28:14
Откуда: Москва

Re: Терморегулятор на микроконтроллере PIC16Fxx и DS18B20

Сообщение Lavr12 »

den2
Плату не рисовал. Сделал всё (как обычно) на печатной макетной плате.
Sacha3
Открыл глаза
Сообщения: 49
Зарегистрирован: Чт июл 05, 2012 21:15:32

Re: Терморегулятор на микроконтроллере PIC16Fxx и DS18B20

Сообщение Sacha3 »

Уважаемый автор!

Не могли бы подправить прошивку под PIC16F84, а то валяется их куча. Не хочется покупать специально PIC16F84A.
otest
Друг Кота
Сообщения: 7853
Зарегистрирован: Ср фев 11, 2009 20:35:58

Re: Терморегулятор на микроконтроллере PIC16Fxx и DS18B20

Сообщение otest »

Не надо покупать. Для этой схема оба подходят.
Аватара пользователя
Хатуль_мадан
Электрический кот
Сообщения: 1007
Зарегистрирован: Ср мар 03, 2010 11:48:00
Откуда: Уфа

Re: Терморегулятор на микроконтроллере PIC16Fxx и DS18B20

Сообщение Хатуль_мадан »

А есть в чем-то разница прошивок для PIC16F84 и PIC16F84A? Я думал они одинаковы. Отличаются, например, только PIC16F876 и PIC16F876A наличием/отсутствием компараторов.
Sacha3
Открыл глаза
Сообщения: 49
Зарегистрирован: Чт июл 05, 2012 21:15:32

Re: Терморегулятор на микроконтроллере PIC16Fxx и DS18B20

Сообщение Sacha3 »

Я не могу утверждать точно, но в MPLAB есть два файла P16F84.inc и P16F84A.inc.


Просмотрел сейчас эти файлы.
В файл PIC16F84A.inc добавлена вот эта строка:

;----- DEVID Equates --------------------------------------------------
_DEVID1 EQU H'2006'

Остальное все одинаково.
Sacha3
Открыл глаза
Сообщения: 49
Зарегистрирован: Чт июл 05, 2012 21:15:32

Re: Терморегулятор на микроконтроллере PIC16Fxx и DS18B20

Сообщение Sacha3 »

Собрал регулятор, прошивка " DS18B20_LCD-OA_PIC16F84A.hex ", мк PIC16LF84, при включении по 2 сек., "25.0", "d 0.4", "ПOFF", "uOFF" и потом часто (примерно 0,5сек)моргает тоже самое. При отключенном датчике по 2 сек., "25.0", "d 0.4", "ПOFF", "uOFF", " ERR" и опять моргает. На кнопки никак не реагирует с датчиком и без.
Что может быть и в каком направлении рыть?
Sacha3
Открыл глаза
Сообщения: 49
Зарегистрирован: Чт июл 05, 2012 21:15:32

Re: Терморегулятор на микроконтроллере PIC16Fxx и DS18B20

Сообщение Sacha3 »

Разобрался.
Когда писал про кнопки, проскочила мысль, а правильно я их запаял. Проверил, точно ошибся. Надо быть повнимательней.
учкудук
Родился
Сообщения: 1
Зарегистрирован: Пн мар 31, 2014 00:09:06

Re: Терморегулятор на микроконтроллере PIC16Fxx и DS18B20

Сообщение учкудук »

Всем марта и сметаны :)))

а есть варианты на несколько точек контроля
Timoxasss
Открыл глаза
Сообщения: 53
Зарегистрирован: Чт май 01, 2014 22:09:14

Re: Терморегулятор на микроконтроллере PIC16Fxx и DS18B20

Сообщение Timoxasss »

Здравствуйте! Ребят подскажите пожалуйста как настроить winpic800 (ну там фьюзы и всякая другая лабудень)!? Боюсь испортить микроконтроллер а описание программы очень скудные!
Nick_Ross
Родился
Сообщения: 6
Зарегистрирован: Пт авг 12, 2011 17:38:34

Re: Терморегулятор на микроконтроллере PIC16Fxx и DS18B20

Сообщение Nick_Ross »

Приветствую уважаемое собрание.
Круговорот схем в природе:)
На forum.cxem.net/index.php?showtopic=100569&st=0 еще в 2012 году выложили схему терморегулятора на pic16f628 и 18b20. Как писал топик стартер, схема и прошивка из большой темы "Терморегулятор на микроконтроллере PIC16F84 датчикe DS18B20" Приводил ссылку, но что-то того сообщения уже не находит.
Описание работы.
1. Температура меряется 1 раз в секунду, выводится на индикатор. Формат отображения: десятки, единицы, десятые. Для температуры больше +99,9 оС сотни, десятки, единицы. Для температуры меньше -9,9 оС десятки, единицы.
2. Гистерезис односторонний. То есть если выставлена температура 40,0 оС, а гистерезис 5,0 оС, то в режиме нагреватель включится при 35,0 оС, а выключится при 40,0 оС.
3. Нажатием на кнопку MODE индикатор переводится по кругу на отображение: – текущая температура. – установленная температура выключения нагревателя, мигает точка во втором разряде; – гистерезис, мигает точка в младшем разряде; – текущая температура.
5. Кнопки PLUS/MINUS работают по короткому и длинному нажатию.(пошаговая или быстрая смена чисел)
6. Пределы установки температуры 0 ÷ +99,9 оС.
7. Пределы установки гистерезиса 0,1 ÷ 50,0 оС.
8. По истечении 6 сек от последнего нажатия на кнопки, индикатор переходит в режим отображения текущей температуры. Если были произведены какие-либо изменения, они запишутся в память.
9. При сбое в работе датчика нагрузка выключается.
В архиве всё необходимое.


Но вопрос в другом. Почему-то эта схема нормально работает только у топистартера. Правда, потом еще у пары человек заработала. У остальных же проблемы одинаковые -
все три кнопки работают как "mode"Но если кнопка "mode" работает так как, ей положено, то "+" работает как "mode" и "+" , а "-"- - как "mode" и "-". При этом меняются значения как выставленной температуры , так и гистерезиса....
Народ шил разными программаторами .
Собрал и я этот девайс (подкупил односторонним гистерезисом - если выставлено 30 градусов и гистерезис 2 - то нагреватель включит при 28, а выключит при 30).
Развел свою плату. Прошил контроллер PicKit2 -
Прошивал и внутрисхемно и отдельно пик - результат одинаковый.Кнопки работают криво. Что интересно - прошивка ,сразу же считанная с пика ,совсем не совпадает с прошиваемой. Вот зашил в DIP pic16F628A и тут же считал... В smd варианте считывается то же самое

Прикрепляю два файла - ter.zip - оригинальный файл из топика . И dip.zip сразу же после прошивки считано из пика...

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

Заранее спасибо.

С уважением, Nick.
Вложения
ter.zip
оригинальный файл из топика
(46.28 КБ) 404 скачивания
dip.zip
сразу же после прошивки считано из пика...
(12.03 КБ) 647 скачиваний
Ответить

Вернуться в «Статьи»