Обявления

Для полноценной работы рекомендуется пройти регистрацию.

Рекламные сообщения будут удаляться вместе с пользователем. Что есть реклама - буду решать я.

Термостат ∆T=0,1°C

Здесь только проекты на ATtiny

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

Сообщение sergey » 19 фев 2009 13:28

Переделал программу под себя , все работает. Еще раз спасибо!!!
sergey
Частенько бываю
 
Сообщения: 39
Зарегистрирован: 05 фев 2009 20:16

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

Сообщение hardlock » 19 фев 2009 13:29

sergey писал(а):Переделал программу под себя

Я рад, что оказалось всё просто!
Аватара пользователя
hardlock
Администратор
 
Сообщения: 3362
Зарегистрирован: 21 янв 2009 15:48
Откуда: zp.ua

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

Сообщение neocortex » 23 фев 2009 16:30

Если можно, 2 вопроса:

1. Скажите, пожалуйста, какова максимальная длина соединительных проводников между термодатчиком и собственно контроллером?
2. Скорее всего возникнет потребность внести в программу изменения для ограничения диапазона температур. Можно ли как-то получить исходники прошивки?
neocortex
Пробегал мимо
 
Сообщения: 1
Зарегистрирован: 23 фев 2009 15:54

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

Сообщение hardlock » 23 фев 2009 18:00

neocortex писал(а):1. Скажите, пожалуйста, какова максимальная длина соединительных проводников между термодатчиком и собственно контроллером?

по стандатру 1-wire - до 300 метров, но я думаю будет работать только в 3-х проводном варианте.

neocortex писал(а):2. Скорее всего возникнет потребность внести в программу изменения для ограничения диапазона температур. Можно ли как-то получить исходники прошивки?

Можно, только не сейчас - после обкатки существующей прошивки. Возможно через пару недель.
Аватара пользователя
hardlock
Администратор
 
Сообщения: 3362
Зарегистрирован: 21 янв 2009 15:48
Откуда: zp.ua

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

Сообщение Zed » 24 фев 2009 01:21

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

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

Сообщение hardlock » 24 фев 2009 09:33

Zed, ну это уже совсем другой проект.... через пару недель выложу исходники - делайте с ними что хотите, а я переделывать не буду. Буду только истравлять ошибки...
Аватара пользователя
hardlock
Администратор
 
Сообщения: 3362
Зарегистрирован: 21 янв 2009 15:48
Откуда: zp.ua

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

Сообщение sergey » 26 фев 2009 09:39

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

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

Сообщение hardlock » 26 фев 2009 09:51

sergey писал(а):старая версия пережила этот катаклизм без проблем, а новая глюканула

Ну собственно БОД и следит за питанием....
Я думаю так: если термостат не планируется использовать в отрицательных температурах, то БОД можно включать, а если планируется (например в машине) то нужно отключить....

А вообще неплохо бы разобраться в этой странности работы БОДа, но я пока никак....
Аватара пользователя
hardlock
Администратор
 
Сообщения: 3362
Зарегистрирован: 21 янв 2009 15:48
Откуда: zp.ua

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

Сообщение MotoLive » 28 фев 2009 14:48

hardlock
Здравствуйте, такой вопрос: допустим этот термостат я буду использовать в машине (21099 датчик в радиатор, индикацию в салон, реле включает радиатор охлаждения) будет ли он сохранять значение температуры сраьатывания релюхи выставленную кнопками после отключения питания? Т.к. я откл массу в машине.
-Также актуальна для меня поддержка датчика DS1820. т.к. его я уже вмонтировал в корпус заводского датчика...что нелегко.
MotoLive
Пробегал мимо
 
Сообщения: 5
Зарегистрирован: 28 фев 2009 14:32
Откуда: Ульяновск

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

Сообщение hardlock » 28 фев 2009 18:01

MotoLive писал(а):будет ли он сохранять значение температуры сраьатывания релюхи выставленную кнопками после отключения питания?

Конечно - всё записывается в EEPROM

MotoLive писал(а):поддержка датчика DS1820

Придется малость поправить прошивку. В существующей - только DS18B20
Аватара пользователя
hardlock
Администратор
 
Сообщения: 3362
Зарегистрирован: 21 янв 2009 15:48
Откуда: zp.ua

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

Сообщение MotoLive » 28 фев 2009 18:41

Придется малость поправить прошивку. В существующей - только DS18B20

Ты это сделаешь? или это трудно? (Я в программировании "0")

И еще: можно ли переназначить выводы мк т.к. я уже собрал термостат но по другой схеме, перепаивать жалко - очень старался...Может покажешь как это делать когда проект выложишь (возможно я прошу многого...)
MotoLive
Пробегал мимо
 
Сообщения: 5
Зарегистрирован: 28 фев 2009 14:32
Откуда: Ульяновск

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

Сообщение hardlock » 28 фев 2009 22:28

MotoLive писал(а):Ты это сделаешь?

Вряд-ли - у меня нету даже DS1820...
Хотя там надо поменять только вычисление температуры (B - 12 bit, а 1820 - 9 bit)
Если появится время - попробую помочь.
Аватара пользователя
hardlock
Администратор
 
Сообщения: 3362
Зарегистрирован: 21 янв 2009 15:48
Откуда: zp.ua

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

Сообщение MotoLive » 01 мар 2009 10:25

Вряд-ли - у меня нету даже 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 и у тебя и у меня на своём месте - по центру.
Это ошибка или зэто нужно учитывать при переходе на мой индикатор???
MotoLive
Пробегал мимо
 
Сообщения: 5
Зарегистрирован: 28 фев 2009 14:32
Откуда: Ульяновск

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

Сообщение FDoich » 01 мар 2009 22:45

Насколько знаю, у всех индикаторов А сверху, раньше только в совковых схемах попадался верхний F.
FDoich
Частенько бываю
 
Сообщения: 42
Зарегистрирован: 01 мар 2009 22:30

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

Сообщение hardlock » 01 мар 2009 23:54

FDoich писал(а):у тебя верхний сегмент - f, затем почасовой стрелке a,b,c,d,e. А мне встречались только индикаторы у которых: верхний сегмент - a, затем почасовой стрелке b,c,d,e,f.

У меня ещё с совка осталась такая маркировка в голове.... Да и какая разница, какой сегмент где? лиш бы совпадало назначение выводов контроллера и сегментов.

Лично я применяю что-то вроде A564SR или им подобные. Распиновка у всех была одинаковая...
Аватара пользователя
hardlock
Администратор
 
Сообщения: 3362
Зарегистрирован: 21 янв 2009 15:48
Откуда: zp.ua

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

Сообщение MotoLive » 03 мар 2009 20:40

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

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

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

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

Сообщение sergey » 03 мар 2009 22:04

Добрый день, как то обращался к вам с просьбой изменить прошивку под свои нужды и по вашему совету взялся переделать прошивку сам, вроде как логически нашел нужное место в программе по изменению состояния выводов , исправил обрадовался что получилось, даже радостью с вами поделился, да не тут то было. Написал такой код:
}
Темр = Т_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. Если можно подскажите, что я начудил изучаю микроконтроллеры на начальном этапе, все возможные варианты что у меня в голове были испробовал, теперь сижу в тупике... С уважением.
sergey
Частенько бываю
 
Сообщения: 39
Зарегистрирован: 05 фев 2009 20:16

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

Сообщение hardlock » 03 мар 2009 23:49

Попробуйте что-то вроде:
Код: Выделить всё

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; //не горит
}


поиграйтесь со знаками > / >= и < / <=....
Аватара пользователя
hardlock
Администратор
 
Сообщения: 3362
Зарегистрирован: 21 янв 2009 15:48
Откуда: zp.ua

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

Сообщение MotoLive » 03 мар 2009 23:58

hardlock,
Ты меня игнорируешь, или просто незаметил?
MotoLive
Пробегал мимо
 
Сообщения: 5
Зарегистрирован: 28 фев 2009 14:32
Откуда: Ульяновск

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

Сообщение sergey » 04 мар 2009 09:36

День добрый. Подправил ваш код , расставил се недостающее скобочки , получил вот такую картину...

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 ...
sergey
Частенько бываю
 
Сообщения: 39
Зарегистрирован: 05 фев 2009 20:16

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

Сообщение hardlock » 04 мар 2009 10:29

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

надо так:
Код: Выделить всё
if ((Tnew < (Т_LoadOn + DeltaT)) & (Tnew > Т_LoadOn))
Аватара пользователя
hardlock
Администратор
 
Сообщения: 3362
Зарегистрирован: 21 янв 2009 15:48
Откуда: zp.ua

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

Сообщение sergey » 04 мар 2009 10:35

CVAVR эту строчку не пропускает выдает ошибку, вот в чем загвоздка...
sergey
Частенько бываю
 
Сообщения: 39
Зарегистрирован: 05 фев 2009 20:16

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

Сообщение hardlock » 04 мар 2009 10:37

скобки поставили?
Аватара пользователя
hardlock
Администратор
 
Сообщения: 3362
Зарегистрирован: 21 янв 2009 15:48
Откуда: zp.ua

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

Сообщение sergey » 04 мар 2009 10:39

Скопировал как есть с вашей строки...Вроде все на месте.

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

if ((Tnew < (Т_LoadOn + DeltaT) & (Tnew > Т_LoadOn)) выгороженое скобками } ...{ один черт...выдает ошибку
sergey
Частенько бываю
 
Сообщения: 39
Зарегистрирован: 05 фев 2009 20:16

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

Сообщение hardlock » 04 мар 2009 11:55

Вот - всё компилится:
Код: Выделить всё
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; //
}
Аватара пользователя
hardlock
Администратор
 
Сообщения: 3362
Зарегистрирован: 21 янв 2009 15:48
Откуда: zp.ua

Пред.След.

Вернуться в ATtiny



Кто сейчас на конференции

Сейчас этот форум просматривают: Bing [Bot] и гости: 5