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

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

Сообщение Soir »

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

Сообщение Soir »

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

Сообщение pert »

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

Сообщение Soir »

pert писал(а):Я построил версии 4.2 на печатной плате, разрешение измеренной температуры составляет 0,5 градуса. Это правильно?
Неправильно. Разрешающая способность должна быть 0,1 град.
Реклама
Эиком - электронные компоненты и радиодетали
Прорезались зубы
Сообщения: 214
Зарегистрирован: Пн янв 16, 2012 02:06:36
Откуда: Луганск

Сообщение 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) Я просто в восторге!!!!!Изображение Вот уж действительно не ожидал! Пора прошивку с сотыми делатьИзображение
Боюсь даже Вашу обновленную закачивать, хотя конечно у меня все они сохранены и с комментариями.
ПРИОГРОМНОЕ СПАСИДО ВАМ!!!!!!!!
Реклама
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

Сообщение Soir »

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

Сообщение 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, может подскажите, как это лучше делать? Какую-то последовательность.Изображение Ну баран я, в интегралах и дифференциалах.Изображение Какая составляющая, на что будет влиять, я так и не понял. Кроме пропорциональной.
Кабы схемку аль чертеж --
Я б затеял тут вертеж,
Ну а так -- ищи сколь хочешь,
Черта лысого найдешь!Изображение
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

Сообщение Soir »

Niks13 писал(а):но после включения, выскакивала Err2.
Я об этом и писал. У меня такая ошибка выскакивала, если сначала подавал синхроимпульсы, а затем питание на МК. В последнем варианте должно быть все ok. По крайней мере, у меня такого больше не происходило.
Niks13 писал(а):
Soir писал(а):Pr не может быть 0.
Не может! Но у меня былоИзображение
Это потому, что данные не читались и не писались в память, а при включении всегда 0. Если Вы попытаетесь их менять, то 0 больше не получите, только выключением питания. В новой прошивке этого нет. В принципе я могу сделать, чтоб Pr был от 0 до 99.
Niks13 писал(а):Soir, может подскажите, как это лучше делать? Какую-то последовательность.Изображение Ну баран я, в интегралах и дифференциалах.Изображение Какая составляющая, на что будет влиять, я так и не понял. Кроме пропорциональной.
Повторю еще раз:
Soir писал(а):Если что непонятно по настройке регулятора - у меня не спрашивайте, "мануальчик" я не напишу.
Открыл глаза
Аватара пользователя
Сообщения: 68
Зарегистрирован: Ср сен 14, 2011 21:00:14
Откуда: Тюмень

Сообщение evum »

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

Сообщение Niks13 »

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

Сообщение Soir »

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

Сообщение Soir »

evum писал(а):Soir !
на этой странице прошивка действующая сейчас.
http://radiokot.ru/forum/viewtopic.php? ... start=1340
Было бы проще, если бы Вы указали "Сообщение от Сб янв 28, 2012 14:03:33", прошивка Termometr_v13_CC. Правильно? У меня уже сотня наберется всяких разных вариантов, не сразу соображу о чем идет речь. А искать-перечитывать нужно время.
Вечером посмотрю, что там мигает. С какой частотой мигает?
Недостаток исправлю.
Нашел транзистор. Понюхал.
Сообщения: 190
Зарегистрирован: Пт дек 17, 2010 23:19:40
Откуда: Чешская Республика

Сообщение pert »

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

Сообщение Soir »

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

Сообщение Soir »

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

Сообщение Niks13 »

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

Сообщение Soir »

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

Сообщение Soir »

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

Сообщение Niks13 »

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

Сообщение Soir »

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

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