Page 4 of 109

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

Posted: 04 Mar 2009 11:06
by sergey
Temp = T_LoadOn;!!! Далее if ((Tnew < Temp) & (Tnew > Т_LoadOn)) Вроде как Tnew получается одновременно и больше и меньше одной и той же величины...все ли правильно даже если компилится ?

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

Posted: 04 Mar 2009 11:14
by hardlock
sergey wrote:Temp = T_LoadOn;!!!
ну есенно этого не надо.... прогнал - исправлю...

Вот исправленая версия:

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; //
}

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

Posted: 04 Mar 2009 12:43
by sergey
Опять та же ошибка в компиляторе, вот горе... ни уж то замкнутый круг :(

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

Posted: 04 Mar 2009 12:52
by hardlock
Вот если бы Вы набрали ручками, или хотя бы проверили переменные, то поняли бы, что ошибка в переменной T_LoadOn - там есть какой-то левый символ (скорей всего русская "Т")
Я же копирую из Вашего поста и исправляю Ваши же глюки.
Это выдрал из скомпилированного проекта!

Code: Select all

Temp = T_LoadOn + DeltaT;

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

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

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

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

Posted: 04 Mar 2009 13:15
by sergey
Все исправил, извините за ляпсуп не знаю как я русскую Т влепил, вобщем прошил процессор по новой он не виснет но режим равновесия все равно игнорирует...

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

Posted: 04 Mar 2009 13:18
by hardlock
sergey wrote:но режим равновесия все равно игнорирует...
возможно выполняется ещиё и третье условие - проверьте. Если не получается попробуйте вставить break; в конце каждого условия

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

Posted: 04 Mar 2009 14:07
by sergey
Недопонял про третье условие?

Добавлено спустя 38 минут 35 секунд:
Исправил ваш участок программы, ошибка в третьем условии вместо Tnew <= Temp поставил Tnew < T_LoadOn... Еще раз спасибо за науку и терпение... С уважением!

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

Posted: 30 Mar 2009 20:36
by sergey
Добрый день. Подскажите как изменить пределы регулирования температуры в область 0...+40гр например, в принципе в область положительных температур. В какой части исходника покопаться? Если конечно это реально без серьезных переделок программы. С уважением.

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

Posted: 31 Mar 2009 10:46
by hardlock
sergey wrote:В какой части исходника покопаться?
kbd.c

Code: Select all

 if (T_LoadOn > 450)
                {
                  T_LoadOn --; 
                  RefreshDisplay();      
                }
менняем на

Code: Select all

 if (T_LoadOn > 1000)
                {
                  T_LoadOn --; 
                  RefreshDisplay();      
                }

Code: Select all

if (T_LoadOn < (2250 - DeltaT))
                {
                  T_LoadOn ++;  
                  RefreshDisplay();     
                } 
меняем на

Code: Select all

if (T_LoadOn < (1400 - DeltaT))
                {
                  T_LoadOn ++;  
                  RefreshDisplay();     
                } 
Помним, что

Code: Select all

//температура для удобства представлена так:
// - до 1000 = отрицательная
// - 1000 = 0
// - больше 1000 = положительная
// - 0,1°С = 1
//---------------------------------
//-55°C = 450
//-25°C = 750
//-10.1°C = 899
//0°C = 1000
//10.1°C = 1101
//25°C = 1250
//85°C = 1850
//125°C = 2250

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

Posted: 31 Mar 2009 12:57
by sergey
Добрый день, что то не нахожу подобных строк в исходнике, может исходник изменился на термостат 0.1 ? Последний текст который помним что есть...

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

Posted: 31 Mar 2009 13:48
by hardlock
sergey wrote:может исходник изменился на термостат 0.1 ?
А вы как думаете? конечно изменился!
но в том аналогично - ищите в файле kbd.c

Code: Select all

if (TT > 0)
                {
                  TT --;       
                } 

Code: Select all

if (TT <100)
                {
                  TT ++;       
                } 

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

Posted: 31 Mar 2009 14:25
by sergey
В файле "kbd.h" судя по исходнику, я правильно понимаю...

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

Posted: 31 Mar 2009 14:26
by hardlock
sergey wrote:В файле "kbd.h"
".h" - это только файл описания. Вас нужен ".c"

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

Posted: 31 Mar 2009 14:33
by sergey
После замены нажимаю make the projekt и забираю уже измененный вариант... Да kdb.c извините...

Добавлено спустя 3 минуты 7 секунд:
Ну тогда уж последний вопрос...медленно все проясняется :wall: как уменьшить гистерезис пяти градусов для меня достаточно. Извините учусь потихоньку пользуясь форумом :roll:

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

Posted: 31 Mar 2009 15:05
by hardlock
одновременно нажимаем обе кнопки и выставляем гистерезис...
или вы хотите сразу в прошивке?

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

Posted: 31 Mar 2009 15:09
by sergey
Да это понятно, я имел ввиду уменьшить программно...

Добавлено спустя 1 минуту 16 секунд:
Уменьшит так сказать диапазон регулирования 0...5 градусов.

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

Posted: 31 Mar 2009 15:55
by hardlock
Ну до чего же Вы ленивые...
в том же файле ищите

Code: Select all

DT --;

Code: Select all

DT ++;
ну и там по обстоятельствам...

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

Posted: 31 Mar 2009 20:53
by sergey
Да не ленивый я вовсе, был бы ленивый не докапывался бы до всего, просто не программист а тока начинающий именно в этой нише любитель. Хотя опыт трудовой деятельности уже более 25 лет но в другой сфере, а так как все сферы сейчас под управлением микроконтроллеров приходится вникать. Спасибо за терпеливые разъяснения. по результатам отпишусь. С уважением.

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

Posted: 31 Mar 2009 21:16
by hardlock
Рад помочь, только времени маловато и на работе задалбывают, поэтому звыняйте, если шо не так... :oops:

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

Posted: 31 Mar 2009 21:29
by sergey
Кроме спасибо сказать нечего :drink:

Добавлено спустя 6 минут 44 секунды:
http://www.servissistemy.narod.ru/index.htm интересная информация, вдруг будет и вам полезна либо для развития идеи возможно и на вашем интересном сайте.

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

Posted: 06 Apr 2009 16:57
by bobas
ребята не могу файлы скачать. мож кто скинет на мыло.буду очень признателен. :wall: плата и прошивка

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

Posted: 06 Apr 2009 17:09
by hardlock
bobas, что именно вы не можете скачать? с основного сайта?

Добавлено спустя 4 минуты 45 секунд:
Только что проверил - все файлы скачиваются.

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

Posted: 06 Apr 2009 18:09
by bobas
разобрался спасибо. через мозиллу не хотел скачивать. через explorer скачалось :good:

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

Posted: 08 Apr 2009 10:11
by vovik77
Здравствуйте! Собрал термостат 0,1 ATtiny прошил отдельно потом впаял, все работает. Хотелось бы поменять прошивку для холодильника, в какой последовательности можно это сделать, не выпаивая ATtiny.

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

Posted: 08 Apr 2009 10:18
by hardlock
Какой у Вас программатор? Если последовательный (SPI) то можно подпаять проводки прямо в схему и прошить МК. Ну естественно с включенным питанием...