24 февраля 2022 года в 5 утра, без объявления войны, россия напала на Украину.

Они пришли "освобождать народ от нацистов и националистов".
С этого момента наша жизнь изменилась на "до" и "после".
Нас освобождают от наших домов, от наших любимых, от наших родителей и от наших детей....
Тут я не буду никого агитировать или переубеждать, разумный человек найдёт всю информацию
в интернете, а для зомби никакие доводы и факты не послужат аргументом.

Я не умею много писать, да и без мата тут сложно что-то написать.
Поэтому выражу все мои чувства одним фото.

«Спасибо дедушка путин за счастливое детство и мое освобождение». ©

Дополню словами уважаемого человека, широко известного в узких кругах:
тут путин не виноват, не он нажал на кнопку сброса,
- виноват пилот, который нажал на кнопку сброса, мог промахнуться. виноваты жена/мать/брат/друг пилота, которые не позвонили ему, и не сказали "нет войне",
- виноват тот, кто отдал приказ, и виноваты его жена/мать/брат/друг,
- виноват тот, кто цеплял бомбу, потому что он мог её обезвредить, "ну бывает, не сработала",
- виноват кладовщик, виноват водитель, который перевозил эту бомбу. виноваты жена...и т.д., потому что не позвонили и не сказали "нет войне, не вези бомбы",
- виноваты все журналисты оркостана, потому что они врут,
- виноваты недограждане, потому что не сказали журналистам "не врите",
- виноваты все... все 160 миллионов,
- а те 2, 3, 5 тысяч, которые вышли, и которых запаковали, это даже не десятая процента, это погрешность... случайно оказавшиеся в мордоре люди. ©

PS: За несколько часов до вторжения был атакован и взломан крупный интернет хостинг в Киеве, где и размещался мой сайт. Только 16 марта отважным админам удалось частично восстановить работу хостинга. Далеко не все сайты выжили, т.к. были повреждены даже бэкапы.
Нет, нет, я не жалуюсь, нет. В цифровом мире нет ничего ценного, материального...


Due to periodic DDoS attacks, the forum may not be available.

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

Здесь только проекты на ATtiny
Post Reply
sergey
Частенько бываю
Posts: 39
Joined: 05 Feb 2009 19:16

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

Post by sergey »

Переделал программу под себя , все работает. Еще раз спасибо!!!
User avatar
hardlock
Администратор
Posts: 4010
Joined: 21 Jan 2009 14:48
Location: Minsk - zp.ua
Contact:

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

Post by hardlock »

sergey wrote:Переделал программу под себя
Я рад, что оказалось всё просто!
neocortex
Пробегал мимо
Posts: 1
Joined: 23 Feb 2009 14:54

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

Post by neocortex »

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

1. Скажите, пожалуйста, какова максимальная длина соединительных проводников между термодатчиком и собственно контроллером?
2. Скорее всего возникнет потребность внести в программу изменения для ограничения диапазона температур. Можно ли как-то получить исходники прошивки?
User avatar
hardlock
Администратор
Posts: 4010
Joined: 21 Jan 2009 14:48
Location: Minsk - zp.ua
Contact:

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

Post by hardlock »

neocortex wrote:1. Скажите, пожалуйста, какова максимальная длина соединительных проводников между термодатчиком и собственно контроллером?
по стандатру 1-wire - до 300 метров, но я думаю будет работать только в 3-х проводном варианте.
neocortex wrote:2. Скорее всего возникнет потребность внести в программу изменения для ограничения диапазона температур. Можно ли как-то получить исходники прошивки?
Можно, только не сейчас - после обкатки существующей прошивки. Возможно через пару недель.
Zed
Пробегал мимо
Posts: 4
Joined: 28 Jan 2009 02:59

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

Post by Zed »

Спасибо за терморегулятор. Все работает отлично.
У меня на работе есть аналоги регуляторов, только промышленные.
Есть предложение выход PD3 освободить, а функции выхода сделать программируемым, в зависимомти от надобности на выходе PD2 (Удержал 5 сек кнопки + и - выход 0 али 1)
Есть предложение выход PD5 удалить (При индикации до 99 С выводить температуру с десятой, а после без).
А из супперфункций можно добавить ПИД регулирование
User avatar
hardlock
Администратор
Posts: 4010
Joined: 21 Jan 2009 14:48
Location: Minsk - zp.ua
Contact:

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

Post by hardlock »

Zed, ну это уже совсем другой проект.... через пару недель выложу исходники - делайте с ними что хотите, а я переделывать не буду. Буду только истравлять ошибки...
sergey
Частенько бываю
Posts: 39
Joined: 05 Feb 2009 19:16

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

Post by sergey »

Здравствуйте, хочу поделиться следующей информацией. У меня работает 3 термостата из них 2 с (BOD) по старой прошивке, один без (BOD) по обновленной, так вот у нас были какие то отключения переключения в сети 220 в и последствия: старая версия пережила этот катаклизм без проблем, а новая глюканула... Улетела на 99 гр.
User avatar
hardlock
Администратор
Posts: 4010
Joined: 21 Jan 2009 14:48
Location: Minsk - zp.ua
Contact:

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

Post by hardlock »

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

А вообще неплохо бы разобраться в этой странности работы БОДа, но я пока никак....
MotoLive
Пробегал мимо
Posts: 5
Joined: 28 Feb 2009 13:32
Location: Ульяновск
Contact:

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

Post by MotoLive »

hardlock
Здравствуйте, такой вопрос: допустим этот термостат я буду использовать в машине (21099 датчик в радиатор, индикацию в салон, реле включает радиатор охлаждения) будет ли он сохранять значение температуры сраьатывания релюхи выставленную кнопками после отключения питания? Т.к. я откл массу в машине.
-Также актуальна для меня поддержка датчика DS1820. т.к. его я уже вмонтировал в корпус заводского датчика...что нелегко.
User avatar
hardlock
Администратор
Posts: 4010
Joined: 21 Jan 2009 14:48
Location: Minsk - zp.ua
Contact:

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

Post by hardlock »

MotoLive wrote:будет ли он сохранять значение температуры сраьатывания релюхи выставленную кнопками после отключения питания?
Конечно - всё записывается в EEPROM
MotoLive wrote:поддержка датчика DS1820
Придется малость поправить прошивку. В существующей - только DS18B20
MotoLive
Пробегал мимо
Posts: 5
Joined: 28 Feb 2009 13:32
Location: Ульяновск
Contact:

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

Post by MotoLive »

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

И еще: можно ли переназначить выводы мк т.к. я уже собрал термостат но по другой схеме, перепаивать жалко - очень старался...Может покажешь как это делать когда проект выложишь (возможно я прошу многого...)
User avatar
hardlock
Администратор
Posts: 4010
Joined: 21 Jan 2009 14:48
Location: Minsk - zp.ua
Contact:

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

Post by hardlock »

MotoLive wrote:Ты это сделаешь?
Вряд-ли - у меня нету даже DS1820...
Хотя там надо поменять только вычисление температуры (B - 12 bit, а 1820 - 9 bit)
Если появится время - попробую помочь.
MotoLive
Пробегал мимо
Posts: 5
Joined: 28 Feb 2009 13:32
Location: Ульяновск
Contact:

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

Post 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 и у тебя и у меня на своём месте - по центру.
Это ошибка или зэто нужно учитывать при переходе на мой индикатор???
FDoich
Частенько бываю
Posts: 43
Joined: 01 Mar 2009 21:30

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

Post by FDoich »

Насколько знаю, у всех индикаторов А сверху, раньше только в совковых схемах попадался верхний F.
User avatar
hardlock
Администратор
Posts: 4010
Joined: 21 Jan 2009 14:48
Location: Minsk - zp.ua
Contact:

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

Post by hardlock »

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

Лично я применяю что-то вроде A564SR или им подобные. Распиновка у всех была одинаковая...
MotoLive
Пробегал мимо
Posts: 5
Joined: 28 Feb 2009 13:32
Location: Ульяновск
Contact:

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

Post by MotoLive »

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

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

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

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

Post 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. Если можно подскажите, что я начудил изучаю микроконтроллеры на начальном этапе, все возможные варианты что у меня в голове были испробовал, теперь сижу в тупике... С уважением.
User avatar
hardlock
Администратор
Posts: 4010
Joined: 21 Jan 2009 14:48
Location: Minsk - zp.ua
Contact:

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

Post 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; //не горит
}
поиграйтесь со знаками > / >= и < / <=....
MotoLive
Пробегал мимо
Posts: 5
Joined: 28 Feb 2009 13:32
Location: Ульяновск
Contact:

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

Post by MotoLive »

hardlock,
Ты меня игнорируешь, или просто незаметил?
sergey
Частенько бываю
Posts: 39
Joined: 05 Feb 2009 19:16

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

Post 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 ...
User avatar
hardlock
Администратор
Posts: 4010
Joined: 21 Jan 2009 14:48
Location: Minsk - zp.ua
Contact:

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

Post by hardlock »

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

Code: Select all

if ((Tnew < (Т_LoadOn + DeltaT)) & (Tnew > Т_LoadOn))
sergey
Частенько бываю
Posts: 39
Joined: 05 Feb 2009 19:16

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

Post by sergey »

CVAVR эту строчку не пропускает выдает ошибку, вот в чем загвоздка...
User avatar
hardlock
Администратор
Posts: 4010
Joined: 21 Jan 2009 14:48
Location: Minsk - zp.ua
Contact:

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

Post by hardlock »

скобки поставили?
sergey
Частенько бываю
Posts: 39
Joined: 05 Feb 2009 19:16

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

Post by sergey »

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

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

if ((Tnew < (Т_LoadOn + DeltaT) & (Tnew > Т_LoadOn)) выгороженое скобками } ...{ один черт...выдает ошибку
User avatar
hardlock
Администратор
Posts: 4010
Joined: 21 Jan 2009 14:48
Location: Minsk - zp.ua
Contact:

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

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