Page 3 of 109

Re: Термостат 0,1°C

Posted: 19 Feb 2009 12:28
by sergey
Переделал программу под себя , все работает. Еще раз спасибо!!!

Re: Термостат 0,1°C

Posted: 19 Feb 2009 12:29
by hardlock
sergey wrote:Переделал программу под себя
Я рад, что оказалось всё просто!

Re: Термостат 0,1°C

Posted: 23 Feb 2009 15:30
by neocortex
Если можно, 2 вопроса:

1. Скажите, пожалуйста, какова максимальная длина соединительных проводников между термодатчиком и собственно контроллером?
2. Скорее всего возникнет потребность внести в программу изменения для ограничения диапазона температур. Можно ли как-то получить исходники прошивки?

Re: Термостат 0,1°C

Posted: 23 Feb 2009 17:00
by hardlock
neocortex wrote:1. Скажите, пожалуйста, какова максимальная длина соединительных проводников между термодатчиком и собственно контроллером?
по стандатру 1-wire - до 300 метров, но я думаю будет работать только в 3-х проводном варианте.
neocortex wrote:2. Скорее всего возникнет потребность внести в программу изменения для ограничения диапазона температур. Можно ли как-то получить исходники прошивки?
Можно, только не сейчас - после обкатки существующей прошивки. Возможно через пару недель.

Re: Термостат 0,1°C

Posted: 24 Feb 2009 00:21
by Zed
Спасибо за терморегулятор. Все работает отлично.
У меня на работе есть аналоги регуляторов, только промышленные.
Есть предложение выход PD3 освободить, а функции выхода сделать программируемым, в зависимомти от надобности на выходе PD2 (Удержал 5 сек кнопки + и - выход 0 али 1)
Есть предложение выход PD5 удалить (При индикации до 99 С выводить температуру с десятой, а после без).
А из супперфункций можно добавить ПИД регулирование

Re: Термостат 0,1°C

Posted: 24 Feb 2009 08:33
by hardlock
Zed, ну это уже совсем другой проект.... через пару недель выложу исходники - делайте с ними что хотите, а я переделывать не буду. Буду только истравлять ошибки...

Re: Термостат 0,1°C

Posted: 26 Feb 2009 08:39
by sergey
Здравствуйте, хочу поделиться следующей информацией. У меня работает 3 термостата из них 2 с (BOD) по старой прошивке, один без (BOD) по обновленной, так вот у нас были какие то отключения переключения в сети 220 в и последствия: старая версия пережила этот катаклизм без проблем, а новая глюканула... Улетела на 99 гр.

Re: Термостат 0,1°C

Posted: 26 Feb 2009 08:51
by hardlock
sergey wrote:старая версия пережила этот катаклизм без проблем, а новая глюканула
Ну собственно БОД и следит за питанием....
Я думаю так: если термостат не планируется использовать в отрицательных температурах, то БОД можно включать, а если планируется (например в машине) то нужно отключить....

А вообще неплохо бы разобраться в этой странности работы БОДа, но я пока никак....

Re: Термостат 0,1°C

Posted: 28 Feb 2009 13:48
by MotoLive
hardlock
Здравствуйте, такой вопрос: допустим этот термостат я буду использовать в машине (21099 датчик в радиатор, индикацию в салон, реле включает радиатор охлаждения) будет ли он сохранять значение температуры сраьатывания релюхи выставленную кнопками после отключения питания? Т.к. я откл массу в машине.
-Также актуальна для меня поддержка датчика DS1820. т.к. его я уже вмонтировал в корпус заводского датчика...что нелегко.

Re: Термостат 0,1°C

Posted: 28 Feb 2009 17:01
by hardlock
MotoLive wrote:будет ли он сохранять значение температуры сраьатывания релюхи выставленную кнопками после отключения питания?
Конечно - всё записывается в EEPROM
MotoLive wrote:поддержка датчика DS1820
Придется малость поправить прошивку. В существующей - только DS18B20

Re: Термостат 0,1°C

Posted: 28 Feb 2009 17:41
by MotoLive
Придется малость поправить прошивку. В существующей - только DS18B20
Ты это сделаешь? или это трудно? (Я в программировании "0")

И еще: можно ли переназначить выводы мк т.к. я уже собрал термостат но по другой схеме, перепаивать жалко - очень старался...Может покажешь как это делать когда проект выложишь (возможно я прошу многого...)

Re: Термостат 0,1°C

Posted: 28 Feb 2009 21:28
by hardlock
MotoLive wrote:Ты это сделаешь?
Вряд-ли - у меня нету даже DS1820...
Хотя там надо поменять только вычисление температуры (B - 12 bit, а 1820 - 9 bit)
Если появится время - попробую помочь.

Re: Термостат 0,1°C

Posted: 01 Mar 2009 20:43
by MotoLive
Вряд-ли - у меня нету даже DS1820...
Хотя там надо поменять только вычисление температуры (B - 12 bit, а 1820 - 9 bit)
Если появится время - попробую помочь.
Спасибо что не отказываешь. Буду ждать проекта...
Вот может этот проект поможет добавить поддержку 1820? В описании говорится поддержка DS18S20 DS1820.
http://slil.ru/27009606

Добавлено спустя 11 часов 18 минут 15 секунд:
hardlock
А не скажешь точную модель индикатора с которым у тебя работает термостат? Просто возникли сомнения насчет схемы: у тебя верхний сегмент - f, затем почасовой стрелке a,b,c,d,e. А мне встречались только индикаторы у которых: верхний сегмент - a, затем почасовой стрелке b,c,d,e,f. При этом g и у тебя и у меня на своём месте - по центру.
Это ошибка или зэто нужно учитывать при переходе на мой индикатор???

Re: Термостат 0,1°C

Posted: 01 Mar 2009 21:45
by FDoich
Насколько знаю, у всех индикаторов А сверху, раньше только в совковых схемах попадался верхний F.

Re: Термостат 0,1°C

Posted: 01 Mar 2009 23:07
by hardlock
FDoich wrote:у тебя верхний сегмент - f, затем почасовой стрелке a,b,c,d,e. А мне встречались только индикаторы у которых: верхний сегмент - a, затем почасовой стрелке b,c,d,e,f.
У меня ещё с совка осталась такая маркировка в голове.... Да и какая разница, какой сегмент где? лиш бы совпадало назначение выводов контроллера и сегментов.

Лично я применяю что-то вроде A564SR или им подобные. Распиновка у всех была одинаковая...

Re: Термостат 0,1°C

Posted: 03 Mar 2009 19:56
by MotoLive
Здравствуйте,
1.5 часа назад написал сообщение в эту тему - думаю проверю, вдруг кто то отписался? Смотрю а сообщения нет(!)
Хотя я отчётливо видел как оно было на 4 странице темы...

Добавлено спустя 15 минут 56 секунд:
Ну вот добавилось, вроде.

Собственно что хотел спросить:
-Как показала себя прошивка? Стабильна?
-О своём датчике (DS1820) я наверно постараюсь забыть, и буду заказывать DS18B20, т.к. врятли смогу поправить проект под имеющийся..а вот поменять порты постараюсь, ибо термостат у меня уже спаян и в машине катаетя уже с неделю и перепаивать не вариант т.к. легче новый сделать.
Извини за назойливость, но когда же будет возможность скачать проект?
Очень уж хочется начать пробывать переделывать проект и прошить наконец термостат...Ещё раз извини, если что.

Re: Термостат 0,1°C

Posted: 03 Mar 2009 21:04
by sergey
Добрый день, как то обращался к вам с просьбой изменить прошивку под свои нужды и по вашему совету взялся переделать прошивку сам, вроде как логически нашел нужное место в программе по изменению состояния выводов , исправил обрадовался что получилось, даже радостью с вами поделился, да не тут то было. Написал такой код:
}
Темр = Т_Loadon+DeltaT;
if ((Tnew>Temp) & (Loadon))//Off
{
PORTD.3 = 1;
PORTD.2 = 0;
Loadon = 0;
}
Temp = T_Loadon;
if ((Tnew == Temp) & (!Loadon))//On
{
PORTD.3 = 0;
PORTD.2 = 0;
Loadon = 1;
}
Temp = T_Loadon;
if ((Tnew < Temp) & (Loadon))//Off
{
PORTD.3 = 0;
PORTD.2 = 1;
Loadon = 0;
}
Суть проблемы: при наборе температуры равенство вообще пропускает, сразу включает PORTD.3 , при сбросе температуры ниже верхнего предела, выключает PORTD.3 но при выходе вниз из равновесия не включает PORTD.2. Если можно подскажите, что я начудил изучаю микроконтроллеры на начальном этапе, все возможные варианты что у меня в голове были испробовал, теперь сижу в тупике... С уважением.

Re: Термостат 0,1°C

Posted: 03 Mar 2009 22:49
by hardlock
Попробуйте что-то вроде:

Code: Select all


if ((Tnew>=Т_Loadon+DeltaT))//больше предела
{
PORTD.3 = 1;
PORTD.2 = 0;
Loadon = 0;  //не горит
} 
Temp = T_Loadon;
if ((Tnew < Т_Loadon+DeltaT) & (Tnew > Т_Loadon))//между верхним и нижним
{
PORTD.3 = 0;
PORTD.2 = 0;
Loadon = 1;  //горит индикатор
} 
Temp = T_Loadon; 
if ((Tnew <= Т_Loadon)))//ниже нижнего предела
{
PORTD.3 = 0;
PORTD.2 = 1; 
Loadon = 0; //не горит
}
поиграйтесь со знаками > / >= и < / <=....

Re: Термостат 0,1°C

Posted: 03 Mar 2009 22:58
by MotoLive
hardlock,
Ты меня игнорируешь, или просто незаметил?

Re: Термостат 0,1°C

Posted: 04 Mar 2009 08:51
by sergey
День добрый. Подправил ваш код , расставил се недостающее скобочки , получил вот такую картину...

Temp = T_LoadOn + DeltaT;

if ((Tnew >= Temp)) //cold
{
PORTD.3 = 1;
PORTD.2 = 0;
LoadOn = 0; //
}
Temp = T_LoadOn;

if ((Tnew < Т_LoadOn + DeltaT) & (Tnew > Т_LoadOn)) // В ЭТОЙ СТРОКЕ ВЫДАЕТ ОШИБКУ invalid expression
{
PORTD.3 = 0;
PORTD.2 = 0;
LoadOn = 1; //
}
Temp = T_LoadOn;

if ((Tnew <= Temp)) //hot
{
PORTD.3 = 0;
PORTD.2 = 1;
LoadOn = 0; //
}

Добавлено спустя 15 минут 11 секунд:
Думаю потому что там отсутствует переменная Temp, а она у нас получается имеет 2 разных значения температуры которые мы сравниваем с Tnew ...

Re: Термостат 0,1°C

Posted: 04 Mar 2009 09:29
by hardlock
Я вообще выкинул Темп - без него можно....
sergey wrote:if ((Tnew < Т_LoadOn + DeltaT) & (Tnew > Т_LoadOn)) // В ЭТОЙ СТРОКЕ ВЫДАЕТ ОШИБКУ invalid expression
надо так:

Code: Select all

if ((Tnew < (Т_LoadOn + DeltaT)) & (Tnew > Т_LoadOn))

Re: Термостат 0,1°C

Posted: 04 Mar 2009 09:35
by sergey
CVAVR эту строчку не пропускает выдает ошибку, вот в чем загвоздка...

Re: Термостат 0,1°C

Posted: 04 Mar 2009 09:37
by hardlock
скобки поставили?

Re: Термостат 0,1°C

Posted: 04 Mar 2009 09:42
by sergey
Скопировал как есть с вашей строки...Вроде все на месте.

Добавлено спустя 3 минуты 19 секунд:
И скобки все стоят и еще так пробовал

if ((Tnew < (Т_LoadOn + DeltaT) & (Tnew > Т_LoadOn)) выгороженое скобками } ...{ один черт...выдает ошибку

Re: Термостат 0,1°C

Posted: 04 Mar 2009 10:55
by hardlock
Вот - всё компилится:

Code: Select all

Temp = T_LoadOn + DeltaT;

if ((Tnew >= Temp)) //температура больше установленного предела
{
PORTD.3 = 1;
PORTD.2 = 0;
LoadOn = 0; //
} 

if ((Tnew < Temp) & (Tnew > Т_LoadOn)) //температура в рамках установленного предела
{ 
PORTD.3 = 0;
PORTD.2 = 0;
LoadOn = 1; // горит
} 

if ((Tnew <= Temp)) //температура ниже установленного предела
{ 
PORTD.3 = 0; 
PORTD.2 = 1; 
LoadOn = 0; //
}