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

Поклонники продукции Microchip Technology Inc тусуются тут.
Niks13
Прорезались зубы
Сообщения: 214
Зарегистрирован: Пн янв 16, 2012 02:06:36
Откуда: Луганск

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

Сообщение Niks13 »

Soir писал(а): версия 4.3 - ПИД регулятор.

Ни фига себе, я Вас достал.Изображение Уже до ПИД дошли. Класс!!!!Изображение Быстрей бы домой. Ужасно хочется испытать.
Soir писал(а):Соответствие коэффициентов условным обозначениям при индикации (в скобках величины по умолчанию):
Tint -> in (20)
Tquant -> ti (2)
Tdiff -> di (5)
Zp -> Pr (1)
St (5) как был, так и остался.

Изображение А кто такие in, ti, di и Pr?Изображение Это теперь нужно пятью установками оперировать?Изображение
Ладно, сейчас поиском пошарю. Я знаю что ПИД, это круто, но в принцип работы, не вникал. Не думал, что мы до него докатимся. Что-то мне подсказывает, что на изучение этих пропорционально- интегрально-дифференциальных составляющих, у меня уйдут годыИзображение

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

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

Сообщение Soir »

variaevg писал(а):В связи с возрастом и недостатком специального образования мало что понял.

Это неважно. В EEPROM все записано правильно. Ошибок здесь нет.
В Proteus точно все работает корректно? Может я логику где-то неправильно прописал? Я не помню зачем, но в прошивке прописано при включении устройства Out_1 логический ноль, а Out_2 единица. Дальше (примерно через 2 секунды) по температуре... Это правильно?
Я увеличил время инициализации датчика при включении. Первое считывание данных с датчика дает 85 градусов. В прошивке это учтено, но на всякий случай еще добавил одно измерение перед запуском алгоритма работы реле.
Вложения
Termometr_v14_CA.zip
(2.61 КБ) 201 скачивание
variaevg
Встал на лапы
Сообщения: 103
Зарегистрирован: Пт фев 03, 2012 19:39:32

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

Сообщение variaevg »

To Soir!

Чтобы нам не запутаться распишу все заново.
Процесс это нагрев с испарением и конденсацией.

По Т1 управляется Out1
Out1 = 0 вода на конденсацию выключена
Out1 = 1 клапан включает воду
По Т2 управляется Out2
Out2 = 0 нагрев разрешен
Out2 = 1 нагрев блокируется
Выв 2 МК (BUZ) назовем его Out3 управляет кулером тиристора
Out3 = 0 кулер включен
Out3 = 1 кулер выключен

Алгоритм работы:

Рост температуры
Т меньше Т1
Out1 = 0
Out2 = 0
Out3 = 0
Т достигло Т1
Out1 = 1
Out2 = 0
Out3 = 0
Т достигло Т2
Out1 = 1
Out2 = 1
Out3 = 0
Через 1 мин
Out1 = 0
Out2 = 1
Out3 = 1
Дальнейшее снижение Т на работу не влияет до перевыключения питания, т.е. до следующего цикла работы.
variaevg
Встал на лапы
Сообщения: 103
Зарегистрирован: Пт фев 03, 2012 19:39:32

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

Сообщение variaevg »

To Soir!

PS. При несправности датчика Out2 = 1

Первое считывание данных с датчика дает 85 градусов.

Наверное это не нужно. Пусть все зависит только от Т1 и Т2.
Soir
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

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

Сообщение Soir »

variaevg писал(а):Чтобы нам не запутаться распишу все заново.

Очень правильное решение, я проверю, что и как...
variaevg писал(а):
Soir писал(а):Первое считывание данных с датчика дает 85 градусов.

Наверное это не нужно. Пусть все зависит только от Т1 и Т2.

Тут не спрашивается нужно или не нужно, это особенность датчика. Вы не проверяли прошивку, эффект памяти остался?

Чт мар 01, 2012 17:32:31
P.S.
В общем просмотрел, алгоритм соответствует, кроме состояния выходов непосредственно при включении. Изменил. Проверьте.
Вложения
Termometr_v14_CA.zip
(2.61 КБ) 210 скачиваний
variaevg
Встал на лапы
Сообщения: 103
Зарегистрирован: Пт фев 03, 2012 19:39:32

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

Сообщение variaevg »

To Soir!
Прогнал последнюю прошивку на макетке, результат:
1-е включение - все как положено.
2-е включение (T меньше Т1):
Out1 = 1
Out2 = 1
Out3 = 0
Через 1 мин
Out1 = 0
Out2 = 1
Out3 = 1
Отключаю датчик
Out1 = 1
out2 = 1
Out3 = 1
Soir
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

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

Сообщение Soir »

variaevg писал(а):Прогнал последнюю прошивку на макетке, результат...

Иду включать паяльник...
Аватара пользователя
evum
Открыл глаза
Сообщения: 68
Зарегистрирован: Ср сен 14, 2011 21:00:14
Откуда: Тюмень

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

Сообщение evum »

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

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

Сообщение Soir »

evum писал(а):мигает цифра, младшего разряда...

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

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

Сообщение Soir »

Soir писал(а):
variaevg писал(а):Прогнал последнюю прошивку на макетке, результат...

Иду включать паяльник...

Попробуйте вот этот вариант. Похоже снова Proteus не обращает внимание на грехи компилятора.
Вложения
Termometr_v14_CA.zip
(2.6 КБ) 236 скачиваний
variaevg
Встал на лапы
Сообщения: 103
Зарегистрирован: Пт фев 03, 2012 19:39:32

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

Сообщение variaevg »

To Soir!
Все стало ОК! Спасибо.
Пару вопросов:
1. Пробовал подключать Выв 4 МК и общий и на +5 через 1к не заметил разницы, как правильнее?
2. МК прошит на индикатор ОА. Если поставить ключи n-p-n и индикатор ОК будет правильно работать?
variaevg
Встал на лапы
Сообщения: 103
Зарегистрирован: Пт фев 03, 2012 19:39:32

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

Сообщение variaevg »

To Soir!
МК прошит на индикатор ОА. Если поставить ключи n-p-n и индикатор ОК будет правильно работать?

Извеняюсь за глупый вопрос. Поразбирался и пришел к выводу:
Если прошивка ОА, то ключи p-n-p и инвертировать вызоды D.
Soir
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

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

Сообщение Soir »

variaevg писал(а):1. Пробовал подключать Выв 4 МК и общий и на +5 через 1к не заметил разницы, как правильнее?

В последнем варианте вывод 4 никуда подключать не надо. Если подключили ошибки не будет, будет лишняя трата одного резистора.
variaevg писал(а):2. МК прошит на индикатор ОА. Если поставить ключи n-p-n и индикатор ОК будет правильно работать?

Не совсем так. Надо ставить инверторы на все выводы индикатора. А инверторы можно собрать на тразисторах как одной, так и другой проводимости, а также и на другой элементной базе. Дабы не заморачиваться, Вы мне просто скажите, надо прошивку под ОК? Программно это все решается гораздо проще и не требует материальных затрат.
variaevg
Встал на лапы
Сообщения: 103
Зарегистрирован: Пт фев 03, 2012 19:39:32

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

Сообщение variaevg »

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

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

Сообщение Soir »

variaevg писал(а):Решил вообще не ставить ключи, плата зажатая и разводка усложняется.

Ключи могут понадобиться, если недостаточная яркость индикатора.
variaevg писал(а):Если не сложно хотелось ба прошивку на ОК.

Несложно. Во вложении.
Вложения
Termometr_v14_CC.zip
(16.06 КБ) 292 скачивания
Niks13
Прорезались зубы
Сообщения: 214
Зарегистрирован: Пн янв 16, 2012 02:06:36
Откуда: Луганск

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

Сообщение Niks13 »

Здравствуйте, Уважаемый Soir!
Дома ИНЕТ пропал. Игрался 2 дня, последней версией. Со своей системой, пока результатов не добился. Уж очень она у меня тормознутая и после каждого изменения установок, требуется уйма времени на проверку. Зато, с более быстрыми системами, работает, просто изумительно. Быстро стабилизируется и держит до 0,2*С. Со своей, я уверен, тоже со временем добьюсь результата. Только напишите, пожалуйста, как у Вас будет время, краткий мануальчик, для этой прошивки. Я так и не разобрался, где там чего, и в чем измеряется.
Tint -> in (20) - это наверное интегральная составляющая
Tquant -> ti (2) -?
Tdiff -> di (5) - это я так понимаю дифференциальная
Zp -> Pr (1) - ?
St (5) - это время (как и было)
Можно ли в нашем варианте, использовать тот способ настройки, что предлагается в статье, которую я приводил раньше?
СТАТЬЯ
Soir
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

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

Сообщение Soir »

Niks13 писал(а): Можно ли в нашем варианте, использовать тот способ настройки, что предлагается в статье, которую я приводил раньше?

Я пробовал реализовать формулу из статьи, но что-то плохо получается. Там есть явная ошибка, может есть и скрытые, копаться во всем этом нет ни времени ни желания. Кроме того, пределы установки коэффициентов нужно адаптировать под текущую задачу... Какого-то результата добился, можете поэкспериментировать, вдруг на Вашем устройстве все пойдет.
Соответствие коэффициентов из статьи символам индикатора:
pGain -> PG
iGain -> 1G
dGain -> dG
St назначение тоже самое.
Будет время, может еще позанимаюсь. Или может Вы мне скажете, что вот такого коэффициента недостаточно...
Вложения
Termometr_16F628_PWM_v4.2.zip
(4.25 КБ) 227 скачиваний
Niks13
Прорезались зубы
Сообщения: 214
Зарегистрирован: Пн янв 16, 2012 02:06:36
Откуда: Луганск

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

Сообщение Niks13 »

Soir писал(а): копаться во всем этом нет ни времени ни желания.

СПАСИБО ВАМ ОГРОМНОЕ!!!!! В любом случае, из такого количества прошивок, я 100% смогу подобрать ту, которая меня устроит. Главное, потом записать с какой прошивкой и с какими установками, работала моя система, чтоб к следующему году не забыть. :)))
Вы и так сделали столько работы, что мне уже, ей богу, стыдно. Завтра приеду с дачи, залью эту прошивку и поиграюсь, хотя у меня еще с предыдущей куча вариантов. Как я уже говорил, предыдущая, на более быстрых системах работает отлично, причем найти подходящие коэффициенты, довольно легко. Она совсем не капризна. Еще раз, СПАСИБО ВАМ!!!
solovey33
Родился
Сообщения: 11
Зарегистрирован: Чт фев 09, 2012 08:28:49

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

Сообщение solovey33 »

Для Soir.
Здраствуйте. Благодарю за прошивку. Сейчас собрал примерно механику и установил регулятор на котел (кому интересно - в архиве фото, печатка самого контроллера без дисплея). Все работает нормально, но опять же есть вопрос по поводу времени импульсов St: не могли бы Вы добавить еще один импульс длительностью в 0.5 секунды, так как на даном редукторе 1 секунда многовато, сейчас ищу подходящий редуктор, этот для проверки работы "слепил" из старого будильника. Еще раз спасибо Вам за прошивку.
Вложения
Kotel.rar
(518.8 КБ) 239 скачиваний
Soir
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

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

Сообщение Soir »

Niks13 писал(а):из такого количества прошивок, я 100% смогу подобрать ту, которая меня устроит

Да, вариантов получилось много, надеюсь, что-то да подойдет.
И тем не менее. Немного доработал последний 4.2. Сместил в меньшую сторону диапазоны установки коэффициентов и добавил возможность установки параметра Pr. В статье это iMax, iMin (iMax = Pr, iMin = -Pr). Там же читайте описание, что это такое.
Чтобы понятнее было, поясню ху из ху.
position - измеренная температура. У меня без запятой. То есть, если температура 25,3 град, то везде в расчетах берется 253, а запятая просто выводится на индикатор в нужном месте. Так мне удобнее и проще, а в расчетных формулах я это учитываю.
error - разница между заданной температурой и измеренной. Величины тоже без запятой. Если заданная 30,0 град, а измеренная 25,3, то error = 300-253=47.
dState - предыдущая измеренная температура. После завершения расчета коррекции мощности принимает значение текущей (dState = position), то есть запоминает текущую для следующего вычисления.
iState - накопление ошибки. Новая ошибка (с учетом знака) все время прибавляется к этому параметру. Накопленная ошибка не может стать бесконечно большой или малой, она ограничена параметрами iMax, iMin. Таким образом, если в начале расчета iState = 5, а error = 47, то iState = 5+47 = 52. По умолчанию Pr=10, то есть iState будет ограничено 10. iState = 10.
Дальше.
pTerm = pGain * error; пропорциональная составляющая.
iTerm = iGain * iState; интегральная составляющая.
dTerm = dGain * (position - dState); дифференциальная составляющая.
Результат вычислений (pTerm + iTerm - dTerm) прибавляется (с учетом знака) к текущей выходной мощности. Тут тоже есть ограничения: 0% - минимальная мощность, 100% - максимальная. Шаг изменения мощности - 1%.
Если что непонятно по формуле или вычислениям спрашивайте, попробую объяснить по-другому.
Если что непонятно по настройке регулятора - у меня не спрашивайте, "мануальчик" я не напишу. Я всего лишь прописал формулу из статьи в прошивку.
----------
Вс мар 04, 2012 16:05
Перезалил прошивку, исправил мелкие ошибки.
Вложения
Termometr_16F628_PWM_v4.2.zip
(24.84 КБ) 407 скачиваний
Последний раз редактировалось Soir Вс мар 04, 2012 17:05:35, всего редактировалось 1 раз.
Ответить

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