Терморегулятор на микроконтроллере PIC16F84 датчикe DS18B20
Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18
С последней прош.при первом включении(сразу после прошивки МК)на индикаторах 8.80 8.80 и тишина.При последующих вкл.-выкл.изменений нет.Пробовал ставить другой PIC-ничего не меняется.Интересно,где эта собака зарылась?
- Реклама
Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18
Попробовал на макете - таже фигня. Правда на макете у меня индикация другая и индикатор один, так что часть прошивки я менял.kuchar писал(а):Попробовал последнюю прош.ВСЕ ПО-ПРЕЖНЕМУ
Покопался в прошивке. Пришел к выводу, что неправ компилятор. Странно, что Proteus симулирует нормально. Переписал спорные фрагменты кода, проверьте.
- Вложения
-
- Termometr.zip
- (3.95 КБ) 274 скачивания
Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18
Вот теперь включается и выключается без проблем-пробовал вплоть до дребезга в розетке,хотя и планирую питать от аккумулятора.При вкл. на индикаторах прочерки, одновременно звучит прерывистый сигнал и через секунду высвечивается температура.Вот только с алгоритмом не все понятно или это все еще тест?
Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18
Нет, это не тест. Описание работы я выкладывал. Если нужно что-то изменить, или что-то не так работает - пишите. Я сделал как понял.kuchar писал(а):...Вот только с алгоритмом не все понятно или это все еще тест?
Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18
Soir,я не совсем верно описал работу в зоне действия гистерезиса:например,задали температуру 38 гр.игистер.1гр.Необходимо,чтобы при превышении верхнего порога звучал сигнал тревоги и выключалось реле,а если падает ниже нижнего-то только сигнал,ведь нету смысла выключать то,что и так отключено,раз не растет температура.Если это так ,то большего не смею желать.Спасибо.
- Реклама
Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18
Попробуйте еще вот эту прошивку. Какие-то бока с компилятором, кое-что подправил, вдруг это оно.bratt писал(а):...я сначала попробую просто поменять микроконтроллер...
- Вложения
-
- Termometr.zip
- (3.06 КБ) 232 скачивания
Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18
Изменил, сигнализации по снижению температуры не было.kuchar писал(а):Необходимо,чтобы при превышении верхнего порога звучал сигнал тревоги и выключалось реле,а если падает ниже нижнего-то только сигнал,ведь нету смысла выключать то,что и так отключено,раз не растет температура.Если это так ,то большего не смею желать.Спасибо.
Только не понял выражение
В момент, когда температура ниже нижнего реле будет включено. Его тоже надо выключать? Замерзнут ведь цыплята.kuchar писал(а):...если падает ниже нижнего-то только сигнал,ведь нету смысла выключать то,что и так отключено,раз не растет температура...
- Вложения
-
- Termometr.zip
- (4.06 КБ) 247 скачиваний
Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18
Нет,конечно.Именно об этом я и писал,что если температура падает ниже установленной на величину гистерезиса,то нету смысла выключать реле.Скорей-наоборот.А сигнал в этом случае говорит о неисправности в цепях нагревателя.Сейчас погоняю последний вариант в обоих каналах и отпишусь.
Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18
Ув.SOIR.Я в восторге!!!
На таком контроллере и такой функционал.Думал,чудес не бывает-не прав.
Большое спасибо за подарок к Новому Году!А реальные испытания ближе к весне.Думаю,что спать я в период инкубации буду нормально.Кто выводил птицу-знает,что это такое и как бывает обидно ,когда после месяца ожиданий все пропадает из-за всяких провалов и перепадов в сети...
Всех с наступающими праздникамии и всех благ.
Большое спасибо за подарок к Новому Году!А реальные испытания ближе к весне.Думаю,что спать я в период инкубации буду нормально.Кто выводил птицу-знает,что это такое и как бывает обидно ,когда после месяца ожиданий все пропадает из-за всяких провалов и перепадов в сети...
Всех с наступающими праздникамии и всех благ.
Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18
Всем доброго дня!
Soir, снова я с ATmega8.

Максимально все что удалось получить с последней прошивкой (от 23дек.)
Скорее всего данный алгоритм не подходит для более точного поддержания температуры.
Спасибо за проделанную работу, меня устраивает полностью, на более высоких температурах разброс в пределах допустимого.
Soir,еще раз БОЛЬШОЕ спасибо, с наступающими праздниками, Мира Вам и спокойствия, будьте всегда таким!!!

Soir, снова я с ATmega8.

Максимально все что удалось получить с последней прошивкой (от 23дек.)
Скорее всего данный алгоритм не подходит для более точного поддержания температуры.
Спасибо за проделанную работу, меня устраивает полностью, на более высоких температурах разброс в пределах допустимого.
Soir,еще раз БОЛЬШОЕ спасибо, с наступающими праздниками, Мира Вам и спокойствия, будьте всегда таким!!!

- Вложения
-
- TermoATmega8_test.zip
- платы, схема, последняя прошивка
- (123.12 КБ) 467 скачиваний
Последний раз редактировалось tbogdan Пн янв 02, 2012 21:54:55, всего редактировалось 1 раз.
Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18
Можете опробовать еще один вариант прошивки.tbogdan писал(а):...Скорее всего данный алгоритм не подходит для более точного поддержания температуры...
1. Ввел коэффициент пропорциональности. Величина, на которую меняется мощность, теперь зависит от этого коэффициента. Если его установить в 0, то эта опция работать не будет. Формула расчета в описании, описание во вложении, вложение в...
В принципе я вводил этот коэффициент, чтобы увеличить реакцию устройства на отклонение от заданной величины. Может оказаться, что надо совсем на оборот. Если работа устройства ухудшится, я сделаю этот коэффициент замедляющим или "двухсторонним", то есть на ускорение и на замедление скорости изменения выходной мощности.
2. Вижу Вы используете параметр St по максимуму, поэтому увеличил ему потолок до 50%. Наверно это уже бессмысленно, мощность достигнет 100% за два приема, но на всякий случай.
P.S.
При смене прошивки нужно сбросить EEPROM.
- Вложения
-
- Termo_ATMEGA8_1.zip
- (14.97 КБ) 301 скачивание
Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18
С Новым Годом!
Мира всем и согласия!!!
Soir, получилось!!!!
Вот картинка

Есть несколько замечаний,
--Хаотические показания температуры, 3-5 градусов, пока не знаю нестабильность усилителя или наводка.
--Если температура не достигла установленной до конца программы, следующая за ней программа принимает значения как начало отсчета и за установленное время разогревает до конечной температуры, хотя желательно чтоб в данном случаи (пример), происходил нагрев до 250 градусов и дальше стабилизация до окончания программы
--Желательно, кнопку OFF/ON сделать с задержкой, защита от случайного отключения и сбоя программы.
--И еще какие то проблемы с записью EEPROM установок, еще до конца не разобрался, установки в режиме SET при выходе сохраняются только когда устройство находится в режиме ON, что не очень удобно.
С П А С И Б О!!!!
Мира всем и согласия!!!
Soir, получилось!!!!
Вот картинка

Есть несколько замечаний,
--Хаотические показания температуры, 3-5 градусов, пока не знаю нестабильность усилителя или наводка.
--Если температура не достигла установленной до конца программы, следующая за ней программа принимает значения как начало отсчета и за установленное время разогревает до конечной температуры, хотя желательно чтоб в данном случаи (пример), происходил нагрев до 250 градусов и дальше стабилизация до окончания программы
--Желательно, кнопку OFF/ON сделать с задержкой, защита от случайного отключения и сбоя программы.
--И еще какие то проблемы с записью EEPROM установок, еще до конца не разобрался, установки в режиме SET при выходе сохраняются только когда устройство находится в режиме ON, что не очень удобно.
С П А С И Б О!!!!
Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18
С Новым Годом всех.
Soir,погонял последнюю прошивку для т-рег.с двумя индикаторами,все работает,но есть одно замечание:реле включено,когда температура ниже нижнего порога,затем по достижении верхнего(c учетом гистерезиса)оно выключается,а вот снова включается
когда темп. упадет ниже нижнего порога,а желательно,чтобы оно включалось и в зоне действия гистерезиса.Посмотрите при случае,пожалуйста.С ув.
Soir,погонял последнюю прошивку для т-рег.с двумя индикаторами,все работает,но есть одно замечание:реле включено,когда температура ниже нижнего порога,затем по достижении верхнего(c учетом гистерезиса)оно выключается,а вот снова включается
когда темп. упадет ниже нижнего порога,а желательно,чтобы оно включалось и в зоне действия гистерезиса.Посмотрите при случае,пожалуйста.С ув.
Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18
Если их раньше не было, а с новой прошивкой появились, то возможно причина наводок в резко меняющейся нагрузке. У Вас установлен шаг изменения (St) 50%. Кстати при таком шаге коэффициент пропорциональности не работает. Он настроен так, чтобы St не превышал 50%.tbogdan писал(а):Есть несколько замечаний...
--Хаотические показания температуры, 3-5 градусов, пока не знаю нестабильность усилителя или наводка.
Можете поэкспериментировать, уменьшив St как раньше, до 20% и понаблюдать за стабильностью показаний.
Ну и я, кажется, упоминал о возможных нестабильных показаниях и предлагал усреднять... Предложение в силе. Только уточните зависимость и частоту изменений.
Сделать завершение предыдущей программы за счет времени следующей или следующую отложить, до выхода первой на режим?tbogdan писал(а):--Если температура не достигла установленной до конца программы, следующая за ней программа принимает значения как начало отсчета и за установленное время разогревает до конечной температуры, хотя желательно чтоб в данном случаи (пример), происходил нагрев до 250 градусов и дальше стабилизация до окончания программы
Может проще задавать достаточное время с некоторым запасом?
Задержка есть для всех кнопок. Состояние кнопки определяется каждые 4 мсек. Если нажатое состояние определяется программой не менее 10 раз подряд (итого, время ~40 мсек), то кнопка только тогда считается нажатой. Обычно этого хватает для подавления дребезга с одной стороны, а с другой стороны не тормозит работу кнопок. Если есть ложные срабатывания - скажите, я увечу это время. Кроме того, кнопки Start и Set имеют блокировку от длинного нажатия. То есть, чтобы кнопка сработала повторно, ее нужно отпустить и нажать снова.tbogdan писал(а):--Желательно, кнопку OFF/ON сделать с задержкой, защита от случайного отключения и сбоя программы.
Если есть влияние наводок - попробуйте установить параллельно кнопкам конденсаторы.
Что-то напутал при добавлении коэффициента пропорциональности. Исправил, проверьте.tbogdan писал(а):--И еще какие то проблемы с записью EEPROM установок, еще до конца не разобрался, установки в режиме SET при выходе сохраняются только когда устройство находится в режиме ON, что не очень удобно.
- Вложения
-
- Termo_ATMega8.zip
- (4.97 КБ) 226 скачиваний
Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18
Опробовал при разных установках, наилучшее при h=1, St=20, d=1, c=1, n=0.5
если можно сделать так, когда выставлена стабилизация, то SP не расчитывается а принимает установленное значение для этой программы. (например Р0=300, Р1=300 то SP для Р1 равно 300)
С уважением!
о кнопке OFF/ON, я имел в виду не дребезг, а чтоб вкл./выкл. надо придержать , например, 1 сек., это только для OFF/ON, остальные все нормально.Soir писал(а):Задержка есть для всех кнопок. Состояние кнопки определяется каждые 4 мсек.
при разных загрузках печи получается разное время, иногда не хватает несколько минут для завершения программыSoir писал(а):]Сделать завершение предыдущей программы за счет времени следующей или следующую отложить, до выхода первой на режим?
Может проще задавать достаточное время с некоторым запасом?
если можно сделать так, когда выставлена стабилизация, то SP не расчитывается а принимает установленное значение для этой программы. (например Р0=300, Р1=300 то SP для Р1 равно 300)
С этой прошивкой вроде нормально, последний разряд меняется +/- 1 иногда +/- 2Soir писал(а):Можете поэкспериментировать, уменьшив St как раньше, до 20% и понаблюдать за стабильностью показаний.
Ну и я, кажется, упоминал о возможных нестабильных показаниях и предлагал усреднять... Предложение в силе. Только уточните зависимость и частоту изменений.
С уважением!
Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18
Понятно, сделал 0,76 сек. Такое время получилось из-за лени что-то менять в программе. Надо другое - скажите.tbogdan писал(а):о кнопке OFF/ON, я имел в виду не дребезг, а чтоб вкл./выкл. надо придержать , например, 1 сек., это только для OFF/ON, остальные все нормально.
Сделал, не проверял.tbogdan писал(а):если можно сделать так, когда выставлена стабилизация, то SP не расчитывается а принимает установленное значение для этой программы. (например Р0=300, Р1=300 то SP для Р1 равно 300)
А я ничего и не менял в этой части, начиная с первого варианта прошивки...tbogdan писал(а):С этой прошивкой вроде нормально, последний разряд меняется +/- 1 иногда +/- 2
Хотя наверно надо, учитывая, что гистерезис у Вас 1 град, а скорость регулирования высокая...
Вобщем, для пробы вариант с усреднением значений. Частота смены показаний осталась прежняя - каждые 0,5 сек. Измерения проводятся 10 раз в течении 0,5 сек суммируются и делятся на 10. Прошивка Termo_ATMega8_2.hex. И еще в ней уменьшил предел установки температуры до 1000 град. Максимальная измеряемая температура ведь 1000 град?
- Вложения
-
- Termo_ATMega8.zip
- (10.1 КБ) 261 скачивание
Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18
Посмотрел при случае... Давайте подробнее...kuchar писал(а):...а вот снова включается
когда темп. упадет ниже нижнего порога,а желательно,чтобы оно включалось и в зоне действия гистерезиса.Посмотрите при случае...
Температура стала больше установленной + гистерезис - реле выключилось. Когда оно должно включиться? Когда температура станет ниже установленной + плюс гистерезис? То есть уменьшится на 0,1 градус? Температура тут же опять поднимется и реле снова выключится и т.д. На 0,1 градус температура может меняться также в следствие влияния случайных факторов, если температура близка к установленной реле должно все это отщелкивать? Именно для того, чтоб такого не было и сделан гистерезис. Гистерезис для работы реле убрать, оставить только для сигнализации? Или я неправильно понял? Может нужно два гистерезиса, отдельно для сигнализации, отдельно для реле. Или если в данном устройстве гистерезис "двухсторонний", то использовать его половинки? Например. Установлена температура 40 градусов, гистерезис 1 градус. Тогда реле будет выключаться при 41 град, включаться при 40, а сигнализация при 39 (ну и при 41, разумеется).
Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18
Soir,надеюсь что это последние изменения, работает отлично,
показания измерителя стабильны, (+\- 1)
то что я писал о нестабильных показаниях, причина была банальная, наводка на термопару при контакте с корпусом печки, изолировал термопару и все прошло.
Пока пусть поработает, возможно будут еще какие-то вопросы.
Хочу поблагодарить, за терпение и проделанную работу.
Еще раз СПАСИБО!!!

показания измерителя стабильны, (+\- 1)
то что я писал о нестабильных показаниях, причина была банальная, наводка на термопару при контакте с корпусом печки, изолировал термопару и все прошло.
Пока пусть поработает, возможно будут еще какие-то вопросы.
Хочу поблагодарить, за терпение и проделанную работу.
Еще раз СПАСИБО!!!

Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18
И какой вариант прошивки финальный? Хочу удалить лишнее, чтоб не путаться.tbogdan писал(а):надеюсь что это последние изменения, работает отлично...
Пока пусть поработает, возможно будут еще какие-то вопросы...
Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18
Ув.Soir. Именно так.Я не смог правильно сформулировать ситуацию.Поскольку данный терморегулятор используется в основном для контроля температуры,а не для ее поддержания,Soir писал(а): Например. Установлена температура 40 градусов, гистерезис 1 градус. Тогда реле будет выключаться при 41 град, включаться при 40, а сигнализация при 39 (ну и при 41, разумеется).
то он должен отследить превышение температуры,например 38гр.При установленном гистерезисе в 1гр.,т.е. при 39гр.он отключит нагрузку,подаст сигнал тревоги,
что он и делает.Здесь все правильно,это критическая для него ситуация.А дальше темп. падает и при 38гр.он должен включить нагрузку и выключить сигнал.Дальше,
если темп.упадет до 37гр.,должен подать сигнал(реле конечно включено).А на последней прошивке при 39гр. он работает правильно,но включает реле при 37гр.,а
не при38гр.,т.е.он блокирует работу основного терморегулятора,который выставлен на 38 гр. с гистерезисом 0,1гр.Вроде правильно?


