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

Поклонники продукции Microchip Technology Inc тусуются тут.
Soir
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

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

Сообщение Soir »

solovey33 писал(а):на даном редукторе 1 секунда многовато

Сделал St (переименовал в n из-за необходимости высвободить под число еще один разряд) 0,5 - 20,0 секунд с шагом 0,5 сек.
Не проверял, даже в Proteus.
При прошивке надо стереть EEPROM.
Вложения
Term_Motor.zip
(3.44 КБ) 205 скачиваний
Soir
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

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

Сообщение Soir »

Версия с ПИД регулятором на пост выше Termometr_16F628_PWM_v4.2.
Перезалил прошивку. Исправил баг при сохранении настроек в память и иногда появляющуюся ошибку датчика при включении питания.
А также перезалил и версию 4.3. Там тоже было возможным появление ошибки датчика.
pert
Нашел транзистор. Понюхал.
Сообщения: 190
Зарегистрирован: Пт дек 17, 2010 23:19:40
Откуда: Чешская Республика

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

Сообщение pert »

Я построил версии 4.2 на печатной плате, разрешение измеренной температуры составляет 0,5 градуса. Это правильно?
Soir
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

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

Сообщение Soir »

pert писал(а):Я построил версии 4.2 на печатной плате, разрешение измеренной температуры составляет 0,5 градуса. Это правильно?

Неправильно. Разрешающая способность должна быть 0,1 град.
Niks13
Прорезались зубы
Сообщения: 214
Зарегистрирован: Пн янв 16, 2012 02:06:36
Откуда: Луганск

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

Сообщение Niks13 »

Soir писал(а):Версия с ПИД регулятором на пост выше Termometr_16F628_PWM_v4.2.
Перезалил прошивку. Исправил баг при сохранении настроек в память и иногда появляющуюся ошибку датчика при включении питания.
А также перезалил и версию 4.3. Там тоже было возможным появление ошибки датчика.

УВАЖАЕМЫЙ, Soir.
Как я понял, Вы редактировали свои сообщения и изменили прошивки 4.2 и 4.3 которые раньше выкладывали. Я залил еще не редактированную прошивку 4.2 и испытывал ее. Сначала испытывал на быстрой системе. Нагреватель лампа, а в 5см от нее датчик. Точность поддержания 0,1- 0,2*С. Подключил свою, капризную систему. Чтоб делать все цивильно, расчертил таблицу и практически на обум, задал первые параметры.
Р = 1,5 (осознанно)
i =0,5 (на обум)
d=9,9 (на обум)
St=10 (на обум)
Pr=0 (просто забыл за него)
Задал температуру 28*С. В результате, получил точность поддержания 0,1*С (28,0-28,1) Я просто в восторге!!!!!Изображение Вот уж действительно не ожидал! Пора прошивку с сотыми делатьИзображение
Боюсь даже Вашу обновленную закачивать, хотя конечно у меня все они сохранены и с комментариями.
ПРИОГРОМНОЕ СПАСИДО ВАМ!!!!!!!!
Soir
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

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

Сообщение Soir »

Niks13 писал(а):Боюсь даже Вашу обновленную закачивать, хотя конечно у меня все они сохранены и с комментариями.

Не бойтесь. Там все тоже самое.
1. Добавил запись параметра Pr в EEPROM. Хотя отличие все же есть. Pr не может быть 0. Но Вы всегда можете установить коэффициент iG в 0 и таким образом тоже отключить интегральную составляющую.
2. Иногда при включении накладывались ошибки датчика и синхроимпульсов и МК терялся в них на несколько секунд. Может это особенность моего моделирования на столе в жгуте проводов, но все же.
----------
Коэффициент dG у Вас выставлен максимальным. Может изменить диапазон, сделать от 0 до 99 с шагом 1?
Niks13
Прорезались зубы
Сообщения: 214
Зарегистрирован: Пн янв 16, 2012 02:06:36
Откуда: Луганск

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

Сообщение Niks13 »

Здравствуйте, УВАЖАЕМЫЙ Soir!
Вчера, при заливке новой прошивки, у меня постоянно, выскакивали разные ошибки. Наверное процессор устал от постоянных перепрошивок.Изображение Снизил скорость ввода/вывода и она записалась, но после включения, выскакивала Err2. Стер и записал еще раз- все заработало. Поставил те-же установки, что и были, только Pr=1. Следил за показаниями всю ночь. Со вчерашнего вечера, до настоящего времени, отклонений больше чем 0,1*С небыло. При установленной 27,0 стояло стабильно 27,0-27,1
Soir писал(а):Pr не может быть 0.
Не может! Но у меня былИзображение
Когда я еще игрался с быстрой системой, я убрал все установки на 0, а изменением pG добивался минимальных вылетов за диапазон. При pG=1-1,5, вылет составлял 0,1*С (26,9-27,1) Такое значение я и оставил для медленной системы. Все остальные установки, стояли на обум. Коэффициент dG, поставил на максимум, чтоб потом постепенно снижать его и смотреть, как будет себя вести, а вот про Pr, забыл и он так в 0 и остался, но с такими установками все застабилизировалось прекрасно. Мне вообще, начинает казаться, что данный терморегулятор очень не капризен к установкам. От их значений, наверное, будет зависеть, только время выхода на режим. Хотя, как я понимаю, в моей тормознутой системе, от начального вылета в плюс, все равно не уйдешь. Можно только уменьшить, уменьшением мощности самого нагревателя.
Soir писал(а):Коэффициент dG у Вас выставлен максимальным. Может изменить диапазон, сделать от 0 до 99 с шагом 1?
Я думаю не стоит пока ничего менять. Я расчертил таблицу, чтоб записывать установки и поведение. Когда все проверю более тщательно, тогда можно будет сделать какие то выводы. Сейчас поставил dG=5 и специально сбил температуру, чтоб посмотреть, как будет себя вести при выходе на режим. Хотелось бы как-то систематизировать проверку. Уважаемый, Soir, может подскажите, как это лучше делать? Какую-то последовательность.Изображение Ну баран я, в интегралах и дифференциалах.Изображение Какая составляющая, на что будет влиять, я так и не понял. Кроме пропорциональной.
Кабы схемку аль чертеж --
Я б затеял тут вертеж,
Ну а так -- ищи сколь хочешь,
Черта лысого найдешь!Изображение
Soir
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

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

Сообщение Soir »

Niks13 писал(а):но после включения, выскакивала Err2.

Я об этом и писал. У меня такая ошибка выскакивала, если сначала подавал синхроимпульсы, а затем питание на МК. В последнем варианте должно быть все ok. По крайней мере, у меня такого больше не происходило.
Niks13 писал(а):
Soir писал(а):Pr не может быть 0.
Не может! Но у меня былоИзображение

Это потому, что данные не читались и не писались в память, а при включении всегда 0. Если Вы попытаетесь их менять, то 0 больше не получите, только выключением питания. В новой прошивке этого нет. В принципе я могу сделать, чтоб Pr был от 0 до 99.
Niks13 писал(а):Soir, может подскажите, как это лучше делать? Какую-то последовательность.Изображение Ну баран я, в интегралах и дифференциалах.Изображение Какая составляющая, на что будет влиять, я так и не понял. Кроме пропорциональной.

Повторю еще раз:
Soir писал(а):Если что непонятно по настройке регулятора - у меня не спрашивайте, "мануальчик" я не напишу.
Аватара пользователя
evum
Открыл глаза
Сообщения: 68
Зарегистрирован: Ср сен 14, 2011 21:00:14
Откуда: Тюмень

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

Сообщение evum »

Soir !
на этой странице прошивка действующая сейчас.
viewtopic.php?f=20&t=34618&start=1340
Электроника - наука о контактах
Niks13
Прорезались зубы
Сообщения: 214
Зарегистрирован: Пн янв 16, 2012 02:06:36
Откуда: Луганск

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

Сообщение Niks13 »

Soir писал(а):
Niks13 писал(а):но после включения, выскакивала Err2.

Я об этом и писал. У меня такая ошибка выскакивала, если сначала подавал синхроимпульсы, а затем питание на МК. В последнем варианте должно быть все ok.

Так такая картина у меня и произошла именно с последней версией. С той которая сейчас лежит. Сначала я залил ту что Вы выложили первой 4.03.20012г . С ней все было нормально. Потом Вы написали что обновили ее
Перезалил прошивку. Исправил баг при сохранении настроек в память и иногда появляющуюся ошибку датчика при включении питания.
А также перезалил и версию 4.3. Там тоже было возможным появление ошибки датчика.
Я скачал ее ее и прошил ей микросхему. При включении выдало Err2. Несколько раз выключал, включал, все равно, этаже ошибка. Прошил еще раз той-же прошивкой. Все запустилось и работает нормально. Может просто была ошибка при программировании, хотя программа и написала что проверено ОК. Но это пустяк.
Soir писал(а): В принципе я могу сделать, чтоб Pr был от 0 до 99.
Пока, я думаю, нет смысла ни чего менять. Погоняю, а там видно будет.
Soir писал(а):Повторю еще раз:
Если что непонятно по настройке регулятора - у меня не спрашивайте, "мануальчик" я не напишу.

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

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

Сообщение Soir »

Niks13 писал(а):Так такая картина у меня и произошла именно с последней версией.

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

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

Сообщение Soir »

evum писал(а):Soir !
на этой странице прошивка действующая сейчас.
viewtopic.php?f=20&t=34618&start=1340

Было бы проще, если бы Вы указали "Сообщение от Сб янв 28, 2012 14:03:33", прошивка Termometr_v13_CC. Правильно? У меня уже сотня наберется всяких разных вариантов, не сразу соображу о чем идет речь. А искать-перечитывать нужно время.
Вечером посмотрю, что там мигает. С какой частотой мигает?
Недостаток исправлю.
pert
Нашел транзистор. Понюхал.
Сообщения: 190
Зарегистрирован: Пт дек 17, 2010 23:19:40
Откуда: Чешская Республика

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

Сообщение pert »

Ошибка была в датчике, так я пробовал, сохраняет температуру в диапазоне от 39,9 до 40,1 градусов,без нарастания.
Отличная работатличная работа Soir!!
Вложения
4,3 002.jpg
(239.16 КБ) 399 скачиваний
4,3 004.jpg
(247.23 КБ) 375 скачиваний
4,3 003.jpg
(248.91 КБ) 388 скачиваний
Soir
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

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

Сообщение Soir »

pert писал(а):Ошибка была в датчике

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

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

Сообщение Soir »

Soir писал(а):
Niks13 писал(а):Так такая картина у меня и произошла именно с последней версией.

Посмотрю еще что там может быть...

Гонял во всех возможных ситуациях - все штатно. Возможно у Вас в МК попадают какие-то помехи. Если будет повторяться, попробуйте конденсаторы. По питанию МК, по питанию датчика, в формирователе синхроимпульсов, в цепях симистора... Пока ничего другого посоветовать не могу.
По ходу еще чуть-чуть навел марафет в прошивке.
1. В определенной ситуации, при отсутствии синхроимпульсов регулятор все равно пытался что-то там выдавать на симистор. Пресек.
2. При восстановлении работы датчика после обрыва в процессе работы, на индикатор на 1 сек попадало 85,0. Исправил.
3. Параметр Pr сделал от 0 до 99. Раз у Вас при 0 получается лучший результат, пусть будет, это не ухудшает работу регулятора.
Это все, так что можете лишний раз не мучать МК перепрошивкой.
Вложения
Termometr_16F628_PID_v4.2.zip
(4.33 КБ) 222 скачивания
Niks13
Прорезались зубы
Сообщения: 214
Зарегистрирован: Пн янв 16, 2012 02:06:36
Откуда: Луганск

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

Сообщение Niks13 »

УВАЖАЕМЫЙ, Soir!
Погонял прошивку с разными значениями dG. Думаю, что есть смысл сделать ее больше 10. Чем меньше я ставлю значение, тем дольше время выхода на режим.
Soir писал(а): Раз у Вас при 0 получается лучший результат, пусть будет, это не ухудшает работу регулятора.
У меня и при Pr=1, не хуже получилось
Soir
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

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

Сообщение Soir »

evum писал(а): Однако в ходе испытаний выявился мелкий недочёт, а именно - мигает цифра, младшего разряда ( думаю если она задерживается дольше,чем период измерения или такта или что то в этом духе). Может может как нибудь исправить этот недостаток ?.

Если речь о прошивке Termometr_v13_CC, то проверил на макете - никаких миганий не обнаружил.
Но просто так пройти мимо не смог, кое-что поправил и немного оптимизировал код. Попробуйте. Если мигание будет наблюдаться, уточните прошивку, сбросьте ее мне, может у Вас не последняя версия. Я залью в свой МК, погоняю.
Вложения
Termometr_v13_CC.zip
(3.25 КБ) 199 скачиваний
Soir
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

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

Сообщение Soir »

Niks13 писал(а):Погонял прошивку с разными значениями dG. Думаю, что есть смысл сделать ее больше 10. Чем меньше я ставлю значение, тем дольше время выхода на режим.

Сделал 0 - 99. Не проверял.
Вложения
Termometr_16F628_PID_v4.2.zip
(4.35 КБ) 198 скачиваний
Niks13
Прорезались зубы
Сообщения: 214
Зарегистрирован: Пн янв 16, 2012 02:06:36
Откуда: Луганск

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

Сообщение Niks13 »

Странно!Изображение Стоял проц, с предыдущей прошивкой. Температура уже почти установилась и была 27,2 градуса. Выключил регулятор, вытащил проц, перепрошил его, вставил на место и на индикаторе появилось 28*С. Получается что либо та прошивка на 1 градус меньше показывала, либо эта на 1 больше показывает. Пойду искать свой термометр.
P.S. Проверил. Эта, показывает правильно. Значит, либо в той было не правильно, либо у меня в голове. Ладно, потом еще раз проверю предыдущую
Soir
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

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

Сообщение Soir »

Niks13 писал(а):Странно!Изображение Стоял проц, с предыдущей прошивкой. Температура уже почти установилась и была 27,2 градуса. Выключил регулятор, вытащил проц, перепрошил его, вставил на место и на индикаторе появилось 28*С. Получается что либо та прошивка на 1 градус меньше показывала, либо эта на 1 больше показывает. Пойду искать свой термометр.
P.S. Проверил. Эта, показывает правильно. Значит, либо в той было не правильно, либо у меня в голове. Ладно, потом еще раз проверю предыдущую

Скажу честно - так не бывает. Разве что Вы поменяли датчик. Я написал, чем отличаются прошивки. Часть программы, отвечающая за работу с датчиком, такая же, как в начале нашего пути.
Ответить

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