С последней прош.при первом включении(сразу после прошивки МК)на индикаторах 8.80 8.80 и тишина.При последующих вкл.-выкл.изменений нет.Пробовал ставить другой PIC-ничего не меняется.Интересно,где эта собака зарылась?
Попробовал на макете - таже фигня. Правда на макете у меня индикация другая и индикатор один, так что часть прошивки я менял. Покопался в прошивке. Пришел к выводу, что неправ компилятор. Странно, что Proteus симулирует нормально. Переписал спорные фрагменты кода, проверьте.
Вот теперь включается и выключается без проблем-пробовал вплоть до дребезга в розетке,хотя и планирую питать от аккумулятора.При вкл. на индикаторах прочерки, одновременно звучит прерывистый сигнал и через секунду высвечивается температура.Вот только с алгоритмом не все понятно или это все еще тест?
Soir,я не совсем верно описал работу в зоне действия гистерезиса:например,задали температуру 38 гр.игистер.1гр.Необходимо,чтобы при превышении верхнего порога звучал сигнал тревоги и выключалось реле,а если падает ниже нижнего-то только сигнал,ведь нету смысла выключать то,что и так отключено,раз не растет температура.Если это так ,то большего не смею желать.Спасибо.
Необходимо,чтобы при превышении верхнего порога звучал сигнал тревоги и выключалось реле,а если падает ниже нижнего-то только сигнал,ведь нету смысла выключать то,что и так отключено,раз не растет температура.Если это так ,то большего не смею желать.Спасибо.
Изменил, сигнализации по снижению температуры не было. Только не понял выражение
kuchar писал(а):
...если падает ниже нижнего-то только сигнал,ведь нету смысла выключать то,что и так отключено,раз не растет температура...
В момент, когда температура ниже нижнего реле будет включено. Его тоже надо выключать? Замерзнут ведь цыплята.
Нет,конечно.Именно об этом я и писал,что если температура падает ниже установленной на величину гистерезиса,то нету смысла выключать реле.Скорей-наоборот.А сигнал в этом случае говорит о неисправности в цепях нагревателя.Сейчас погоняю последний вариант в обоих каналах и отпишусь.
Ув.SOIR.Я в восторге!!! На таком контроллере и такой функционал.Думал,чудес не бывает-не прав. Большое спасибо за подарок к Новому Году!А реальные испытания ближе к весне.Думаю,что спать я в период инкубации буду нормально.Кто выводил птицу-знает,что это такое и как бывает обидно ,когда после месяца ожиданий все пропадает из-за всяких провалов и перепадов в сети... Всех с наступающими праздникамии и всех благ.
Всем доброго дня! Soir, снова я с ATmega8. Максимально все что удалось получить с последней прошивкой (от 23дек.) Скорее всего данный алгоритм не подходит для более точного поддержания температуры. Спасибо за проделанную работу, меня устраивает полностью, на более высоких температурах разброс в пределах допустимого. Soir,еще раз БОЛЬШОЕ спасибо, с наступающими праздниками, Мира Вам и спокойствия, будьте всегда таким!!!
Вложения:
Комментарий к файлу: платы, схема, последняя прошивка TermoATmega8_test.zip [123.12 KiB]
Скачиваний: 464
Последний раз редактировалось tbogdan Пн янв 02, 2012 21:54:55, всего редактировалось 1 раз.
...Скорее всего данный алгоритм не подходит для более точного поддержания температуры...
Можете опробовать еще один вариант прошивки. 1. Ввел коэффициент пропорциональности. Величина, на которую меняется мощность, теперь зависит от этого коэффициента. Если его установить в 0, то эта опция работать не будет. Формула расчета в описании, описание во вложении, вложение в... В принципе я вводил этот коэффициент, чтобы увеличить реакцию устройства на отклонение от заданной величины. Может оказаться, что надо совсем на оборот. Если работа устройства ухудшится, я сделаю этот коэффициент замедляющим или "двухсторонним", то есть на ускорение и на замедление скорости изменения выходной мощности. 2. Вижу Вы используете параметр St по максимуму, поэтому увеличил ему потолок до 50%. Наверно это уже бессмысленно, мощность достигнет 100% за два приема, но на всякий случай. P.S. При смене прошивки нужно сбросить EEPROM.
Soir, получилось!!!! Вот картинка Есть несколько замечаний, --Хаотические показания температуры, 3-5 градусов, пока не знаю нестабильность усилителя или наводка. --Если температура не достигла установленной до конца программы, следующая за ней программа принимает значения как начало отсчета и за установленное время разогревает до конечной температуры, хотя желательно чтоб в данном случаи (пример), происходил нагрев до 250 градусов и дальше стабилизация до окончания программы --Желательно, кнопку OFF/ON сделать с задержкой, защита от случайного отключения и сбоя программы. --И еще какие то проблемы с записью EEPROM установок, еще до конца не разобрался, установки в режиме SET при выходе сохраняются только когда устройство находится в режиме ON, что не очень удобно. С П А С И Б О!!!!
С Новым Годом всех. Soir,погонял последнюю прошивку для т-рег.с двумя индикаторами,все работает,но есть одно замечание:реле включено,когда температура ниже нижнего порога,затем по достижении верхнего(c учетом гистерезиса)оно выключается,а вот снова включается когда темп. упадет ниже нижнего порога,а желательно,чтобы оно включалось и в зоне действия гистерезиса.Посмотрите при случае,пожалуйста.С ув.
Есть несколько замечаний... --Хаотические показания температуры, 3-5 градусов, пока не знаю нестабильность усилителя или наводка.
Если их раньше не было, а с новой прошивкой появились, то возможно причина наводок в резко меняющейся нагрузке. У Вас установлен шаг изменения (St) 50%. Кстати при таком шаге коэффициент пропорциональности не работает. Он настроен так, чтобы St не превышал 50%. Можете поэкспериментировать, уменьшив St как раньше, до 20% и понаблюдать за стабильностью показаний. Ну и я, кажется, упоминал о возможных нестабильных показаниях и предлагал усреднять... Предложение в силе. Только уточните зависимость и частоту изменений.
tbogdan писал(а):
--Если температура не достигла установленной до конца программы, следующая за ней программа принимает значения как начало отсчета и за установленное время разогревает до конечной температуры, хотя желательно чтоб в данном случаи (пример), происходил нагрев до 250 градусов и дальше стабилизация до окончания программы
Сделать завершение предыдущей программы за счет времени следующей или следующую отложить, до выхода первой на режим? Может проще задавать достаточное время с некоторым запасом?
tbogdan писал(а):
--Желательно, кнопку OFF/ON сделать с задержкой, защита от случайного отключения и сбоя программы.
Задержка есть для всех кнопок. Состояние кнопки определяется каждые 4 мсек. Если нажатое состояние определяется программой не менее 10 раз подряд (итого, время ~40 мсек), то кнопка только тогда считается нажатой. Обычно этого хватает для подавления дребезга с одной стороны, а с другой стороны не тормозит работу кнопок. Если есть ложные срабатывания - скажите, я увечу это время. Кроме того, кнопки Start и Set имеют блокировку от длинного нажатия. То есть, чтобы кнопка сработала повторно, ее нужно отпустить и нажать снова. Если есть влияние наводок - попробуйте установить параллельно кнопкам конденсаторы.
tbogdan писал(а):
--И еще какие то проблемы с записью EEPROM установок, еще до конца не разобрался, установки в режиме SET при выходе сохраняются только когда устройство находится в режиме ON, что не очень удобно.
Что-то напутал при добавлении коэффициента пропорциональности. Исправил, проверьте.
Опробовал при разных установках, наилучшее при h=1, St=20, d=1, c=1, n=0.5
Soir писал(а):
Задержка есть для всех кнопок. Состояние кнопки определяется каждые 4 мсек.
о кнопке OFF/ON, я имел в виду не дребезг, а чтоб вкл./выкл. надо придержать , например, 1 сек., это только для OFF/ON, остальные все нормально.
Soir писал(а):
]Сделать завершение предыдущей программы за счет времени следующей или следующую отложить, до выхода первой на режим? Может проще задавать достаточное время с некоторым запасом?
при разных загрузках печи получается разное время, иногда не хватает несколько минут для завершения программы если можно сделать так, когда выставлена стабилизация, то SP не расчитывается а принимает установленное значение для этой программы. (например Р0=300, Р1=300 то SP для Р1 равно 300)
Soir писал(а):
Можете поэкспериментировать, уменьшив St как раньше, до 20% и понаблюдать за стабильностью показаний. Ну и я, кажется, упоминал о возможных нестабильных показаниях и предлагал усреднять... Предложение в силе. Только уточните зависимость и частоту изменений.
С этой прошивкой вроде нормально, последний разряд меняется +/- 1 иногда +/- 2 С уважением!
о кнопке OFF/ON, я имел в виду не дребезг, а чтоб вкл./выкл. надо придержать , например, 1 сек., это только для OFF/ON, остальные все нормально.
Понятно, сделал 0,76 сек. Такое время получилось из-за лени что-то менять в программе. Надо другое - скажите.
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 град?
...а вот снова включается когда темп. упадет ниже нижнего порога,а желательно,чтобы оно включалось и в зоне действия гистерезиса.Посмотрите при случае...
Посмотрел при случае... Давайте подробнее... Температура стала больше установленной + гистерезис - реле выключилось. Когда оно должно включиться? Когда температура станет ниже установленной + плюс гистерезис? То есть уменьшится на 0,1 градус? Температура тут же опять поднимется и реле снова выключится и т.д. На 0,1 градус температура может меняться также в следствие влияния случайных факторов, если температура близка к установленной реле должно все это отщелкивать? Именно для того, чтоб такого не было и сделан гистерезис. Гистерезис для работы реле убрать, оставить только для сигнализации? Или я неправильно понял? Может нужно два гистерезиса, отдельно для сигнализации, отдельно для реле. Или если в данном устройстве гистерезис "двухсторонний", то использовать его половинки? Например. Установлена температура 40 градусов, гистерезис 1 градус. Тогда реле будет выключаться при 41 град, включаться при 40, а сигнализация при 39 (ну и при 41, разумеется).
Soir,надеюсь что это последние изменения, работает отлично, показания измерителя стабильны, (+\- 1) то что я писал о нестабильных показаниях, причина была банальная, наводка на термопару при контакте с корпусом печки, изолировал термопару и все прошло. Пока пусть поработает, возможно будут еще какие-то вопросы. Хочу поблагодарить, за терпение и проделанную работу. Еще раз СПАСИБО!!!
Например. Установлена температура 40 градусов, гистерезис 1 градус. Тогда реле будет выключаться при 41 град, включаться при 40, а сигнализация при 39 (ну и при 41, разумеется).
Ув.Soir. Именно так.Я не смог правильно сформулировать ситуацию.Поскольку данный терморегулятор используется в основном для контроля температуры,а не для ее поддержания, то он должен отследить превышение температуры,например 38гр.При установленном гистерезисе в 1гр.,т.е. при 39гр.он отключит нагрузку,подаст сигнал тревоги, что он и делает.Здесь все правильно,это критическая для него ситуация.А дальше темп. падает и при 38гр.он должен включить нагрузку и выключить сигнал.Дальше, если темп.упадет до 37гр.,должен подать сигнал(реле конечно включено).А на последней прошивке при 39гр. он работает правильно,но включает реле при 37гр.,а не при38гр.,т.е.он блокирует работу основного терморегулятора,который выставлен на 38 гр. с гистерезисом 0,1гр.Вроде правильно?
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения