24 февраля 2022 года в 5 утра, без объявления войны, россия напала на Украину.
Они пришли "освобождать народ от нацистов и националистов".
С этого момента наша жизнь изменилась на "до" и "после".
Нас освобождают от наших домов, от наших любимых, от наших родителей и от наших детей....
Тут я не буду никого агитировать или переубеждать, разумный человек найдёт всю информацию
в интернете, а для зомби никакие доводы и факты не послужат аргументом.
Я не умею много писать, да и без мата тут сложно что-то написать.
Поэтому выражу все мои чувства одним фото.
«Спасибо дедушка путин за счастливое детство и мое освобождение». ©
Дополню словами уважаемого человека, широко известного в узких кругах:
тут путин не виноват, не он нажал на кнопку сброса,
- виноват пилот, который нажал на кнопку сброса, мог промахнуться. виноваты жена/мать/брат/друг пилота, которые не позвонили ему, и не сказали "нет войне",
- виноват тот, кто отдал приказ, и виноваты его жена/мать/брат/друг,
- виноват тот, кто цеплял бомбу, потому что он мог её обезвредить, "ну бывает, не сработала",
- виноват кладовщик, виноват водитель, который перевозил эту бомбу. виноваты жена...и т.д., потому что не позвонили и не сказали "нет войне, не вези бомбы",
- виноваты все журналисты оркостана, потому что они врут,
- виноваты недограждане, потому что не сказали журналистам "не врите",
- виноваты все... все 160 миллионов,
- а те 2, 3, 5 тысяч, которые вышли, и которых запаковали, это даже не десятая процента, это погрешность... случайно оказавшиеся в мордоре люди. ©
PS: За несколько часов до вторжения был атакован и взломан крупный интернет хостинг в Киеве, где и размещался мой сайт. Только 16 марта отважным админам удалось частично восстановить работу хостинга. Далеко не все сайты выжили, т.к. были повреждены даже бэкапы.
Нет, нет, я не жалуюсь, нет. В цифровом мире нет ничего ценного, материального...
Due to periodic DDoS attacks, the forum may not be available.
Они пришли "освобождать народ от нацистов и националистов".
С этого момента наша жизнь изменилась на "до" и "после".
Нас освобождают от наших домов, от наших любимых, от наших родителей и от наших детей....
Тут я не буду никого агитировать или переубеждать, разумный человек найдёт всю информацию
в интернете, а для зомби никакие доводы и факты не послужат аргументом.
Я не умею много писать, да и без мата тут сложно что-то написать.
Поэтому выражу все мои чувства одним фото.
«Спасибо дедушка путин за счастливое детство и мое освобождение». ©
Дополню словами уважаемого человека, широко известного в узких кругах:
тут путин не виноват, не он нажал на кнопку сброса,
- виноват пилот, который нажал на кнопку сброса, мог промахнуться. виноваты жена/мать/брат/друг пилота, которые не позвонили ему, и не сказали "нет войне",
- виноват тот, кто отдал приказ, и виноваты его жена/мать/брат/друг,
- виноват тот, кто цеплял бомбу, потому что он мог её обезвредить, "ну бывает, не сработала",
- виноват кладовщик, виноват водитель, который перевозил эту бомбу. виноваты жена...и т.д., потому что не позвонили и не сказали "нет войне, не вези бомбы",
- виноваты все журналисты оркостана, потому что они врут,
- виноваты недограждане, потому что не сказали журналистам "не врите",
- виноваты все... все 160 миллионов,
- а те 2, 3, 5 тысяч, которые вышли, и которых запаковали, это даже не десятая процента, это погрешность... случайно оказавшиеся в мордоре люди. ©
PS: За несколько часов до вторжения был атакован и взломан крупный интернет хостинг в Киеве, где и размещался мой сайт. Только 16 марта отважным админам удалось частично восстановить работу хостинга. Далеко не все сайты выжили, т.к. были повреждены даже бэкапы.
Нет, нет, я не жалуюсь, нет. В цифровом мире нет ничего ценного, материального...
Due to periodic DDoS attacks, the forum may not be available.
Термостат ∆T=0,1°C
-
- Частенько бываю
- Posts: 37
- Joined: 06 Jan 2013 22:15
Re: Термостат ∆T=0,1°C
Хорошо- попробую объяснить алгоритм работы твердотопливного котла.
В отличии от инкубатора- основная задача которого поддержание температуры в заданных пределах, твердотопливный котел требует периодической закладки топлива (дров, угля...). Если это не сделать вовремя- котел попросту затухнет. При этом- что-бы не гонять циркуляционный насос вхолостую его нужно отключить. (экономия электрики). Необходимость закладки топлива в котел можно определить по падению температуры теплоносителя на выходе из котла. Актуальность проблемы возростает ночью, когда обслуживающий персонал ( например жена ) попросту спит.
Исходя из выше сказанного городится огород с термостатом.
Итак- растапливаем котел- при достижении температуры уставки (около 20*с) включается циркуляционный насос системы отопления. Система прогревается до определенной температуры (70-80 *С) . Затем система начинает остывать. Опытным путем была определена температура теплоносителя- при которой нужно загрузить топливо Тalarm. При опускании температуры до Talarm термостат должен издать сигнал. Загружаем топливо и процесс повторяется. Если топливо не загружать- при достижении температуры уставки отключается циркуляционный насос.
В отличии от инкубатора- основная задача которого поддержание температуры в заданных пределах, твердотопливный котел требует периодической закладки топлива (дров, угля...). Если это не сделать вовремя- котел попросту затухнет. При этом- что-бы не гонять циркуляционный насос вхолостую его нужно отключить. (экономия электрики). Необходимость закладки топлива в котел можно определить по падению температуры теплоносителя на выходе из котла. Актуальность проблемы возростает ночью, когда обслуживающий персонал ( например жена ) попросту спит.
Исходя из выше сказанного городится огород с термостатом.
Итак- растапливаем котел- при достижении температуры уставки (около 20*с) включается циркуляционный насос системы отопления. Система прогревается до определенной температуры (70-80 *С) . Затем система начинает остывать. Опытным путем была определена температура теплоносителя- при которой нужно загрузить топливо Тalarm. При опускании температуры до Talarm термостат должен издать сигнал. Загружаем топливо и процесс повторяется. Если топливо не загружать- при достижении температуры уставки отключается циркуляционный насос.
-
- Живу тут
- Posts: 712
- Joined: 01 Feb 2012 18:36
- Location: Санкт-Петербург
Re: Термостат ∆T=0,1°C
Ну тогда примерно так.kenkel wrote: Итак- растапливаем котел- при достижении температуры уставки (около 20*с) включается циркуляционный насос системы отопления. Система прогревается до определенной температуры (70-80 *С) . Затем система начинает остывать. Опытным путем была определена температура теплоносителя- при которой нужно загрузить топливо Тalarm. При опускании температуры до Talarm термостат должен издать сигнал. Загружаем топливо и процесс повторяется. Если топливо не загружать- при достижении температуры уставки отключается циркуляционный насос.
Заводим глобальный флаг lHeat = 0. При достижении температуры = 60*С (большей чем Тalarm) флаг
устанавливается в 1 (lHeat = 1). Проверяем условие (lHeat == 1) и (t = Тalarm+диапазон).
Если выполняется - алярм. Флаг сбрасывается в 0 при достижении нижней границы диапазона.
-
- Частенько бываю
- Posts: 37
- Joined: 06 Jan 2013 22:15
Re: Термостат ∆T=0,1°C
Спасибо за ответ. На данном этапе выяснил- кусок кода выложенный выше- рабочий. Немного расширил диапазон Talarm- 55-54*C. Пока работой термостата удовлетворен.
-
- Частенько бываю
- Posts: 37
- Joined: 06 Jan 2013 22:15
Re: Термостат ∆T=0,1°C
Вот уже 2 дня гоняю свой термостат для твердотопливного котла (ТТК). Появились мысли по его усовершенствованию.
1. Захотелось вывести на индикатор в каком состоянии находится теплоноситель (идет нагрев или охлаждение). Для этого хочу задействовать на индикаторе сегменты E и F первого символа. Идея заключается в том, что-бы при нагреве (в течении 5 сек)горел сегмент F, соответсвенно при охлаждении сегмент E. При равновесном состоянии (температура стабильна в течении 5 сек)- ничего не горело. Выкладываю свою скромную попытку реализовать задуманное. К сожалению- в программировании я не силен и результатом остался недоволен.
1. Захотелось вывести на индикатор в каком состоянии находится теплоноситель (идет нагрев или охлаждение). Для этого хочу задействовать на индикаторе сегменты E и F первого символа. Идея заключается в том, что-бы при нагреве (в течении 5 сек)горел сегмент F, соответсвенно при охлаждении сегмент E. При равновесном состоянии (температура стабильна в течении 5 сек)- ничего не горело. Выкладываю свою скромную попытку реализовать задуманное. К сожалению- в программировании я не силен и результатом остался недоволен.
- Attachments
-
- termostat_led.rar
- (4.58 KiB) Downloaded 355 times
-
- Живу тут
- Posts: 712
- Joined: 01 Feb 2012 18:36
- Location: Санкт-Петербург
Re: Термостат ∆T=0,1°C
Что не получилось ? конкретнейkenkel wrote: К сожалению- в программировании я не силен и результатом остался недоволен.
-
- Частенько бываю
- Posts: 37
- Joined: 06 Jan 2013 22:15
Re: Термостат ∆T=0,1°C
___________________________________________!_______Имеем ________________________!____Желаемое________________
Что имеем сейчас.- 1- Температура не меняется -! Сегмент Е горит постоянно ! Сегменты E и F не горят
2- Температура поднимается-! Сегмент Е гаснет, Загорается сегмент F ! Горит сегмент F ( сегмент E не горит)
!и тут-же гаснет, Загорается сегмент E !
3- Температура снижается - ! Сегмент Е горит постоянно. ! Горит сегмент E (сегмент F не горит)
----------------------------------------------------------------------------------------------------------------------------------------------------------------------
Что имеем сейчас.- 1- Температура не меняется -! Сегмент Е горит постоянно ! Сегменты E и F не горят
2- Температура поднимается-! Сегмент Е гаснет, Загорается сегмент F ! Горит сегмент F ( сегмент E не горит)
!и тут-же гаснет, Загорается сегмент E !
3- Температура снижается - ! Сегмент Е горит постоянно. ! Горит сегмент E (сегмент F не горит)
----------------------------------------------------------------------------------------------------------------------------------------------------------------------
-
- Живу тут
- Posts: 712
- Joined: 01 Feb 2012 18:36
- Location: Санкт-Петербург
Re: Термостат ∆T=0,1°C
["kenkel"]
Проблема как я понял с алгоритмом вывода сегментов. Не знаю как сделано у вас.
Чтобы понять это нужен ваш проект.
Я бы сделал так. Заводим три глобальные переменные.
BYTE tCount = 0 - счетчик секунд увеличивается на 1 в таймере.
WORD oldTemp - значение температуры 5 сек назад
BYTE nFlag = 0 - что выводить (0 - ничего, 1 и 2 - соотв.сегменты)
Затем проверка после измерения температуры
tCount++
if (tCount==5)
{
if (oldTemp>Temp) nFlag = 1 ;
if (oldTemp<Temp) nFlag = 2 ;
if (oldTemp==Temp) nFlag = 0 ;
oldTemp=Temp;
tCount = 0;
}
Далее nFlag используется в функции PrepareData() для вывода сегментов
Проблема как я понял с алгоритмом вывода сегментов. Не знаю как сделано у вас.
Чтобы понять это нужен ваш проект.
Я бы сделал так. Заводим три глобальные переменные.
BYTE tCount = 0 - счетчик секунд увеличивается на 1 в таймере.
WORD oldTemp - значение температуры 5 сек назад
BYTE nFlag = 0 - что выводить (0 - ничего, 1 и 2 - соотв.сегменты)
Затем проверка после измерения температуры
tCount++
if (tCount==5)
{
if (oldTemp>Temp) nFlag = 1 ;
if (oldTemp<Temp) nFlag = 2 ;
if (oldTemp==Temp) nFlag = 0 ;
oldTemp=Temp;
tCount = 0;
}
Далее nFlag используется в функции PrepareData() для вывода сегментов
-
- Частенько бываю
- Posts: 91
- Joined: 25 Jun 2012 12:45
Re: Термостат ∆T=0,1°C
Если я правильно понял эту смелую попытку изобразить таблицу...kenkel wrote: 2- Температура поднимается- Сегмент Е гаснет, Загорается сегмент F и тут-же гаснет, Загорается сегмент E
код я посмотрел, задумано почти правильно, но
думаю, дело вот в чем:
0. нулевую разницу текущего и предыдущего показания датчика ты считаешь за повышение температуры
Code: Select all
//####################### by Kenkel
if (Tnew >= Told)
{ Din =1;}
else
{ Din =0;}
//#################################
2. датчик настроен на минимальную дискретность, и даже при неизменной реальной температуре показания могут колебаться на величину одного дискрета то вверх, то вниз - это плата за точность.
итого:
температура почти не меняется, датчик выдает дискреты то вверх, то вниз, Din перекидывается то в 0 то в 1, на дисплее скачут твои сегменты.
По уму - надо делать какое-то усреднение по нескольким измерениям, и уже по нему решать, повышается температура, или нет.
-
- Частенько бываю
- Posts: 37
- Joined: 06 Jan 2013 22:15
Re: Термостат ∆T=0,1°C
Спасибо за подсказки.
Итак- в лоб решить задачу не удалось. Кодевижен ругается на недостаток места в ATTiny2313. В результате проб и ошибок сделал рабочий вариант. Его и выкладываю- строго не судите, это мои первые шаги в программировании.
Движемся дальше. Задача такая- обеспечить работу термостата с циркуляционным насосом, используя его возможность работать на 3 скоростях. Алгоритм работы будет такой:
1- Растапливаем котел. При температуре теплоносителя (Tохл) 22*С включается насос. При достижении Тохл 40*C включается вторая (повышенная) скорость насоса. При достижении Тохл 60*C- включается третья (самая высокая) скорость насоса. При остывании соответственно насос снижает свою скорость- вплоть до полной остановки. Естественно сохраняется функция Alarm. Скорость работы насоса думаю выводить на 3 горизонтальных сегмента первого символа индикатора.
Подозреваю, что для реализации задуманного можности ATTiny2313 ,будет уже недостаточно и придется переносить проект на более мощный камень ( например ATMega8). Надеюсь на Вашу помощь в реализации задуманного.
Итак- в лоб решить задачу не удалось. Кодевижен ругается на недостаток места в ATTiny2313. В результате проб и ошибок сделал рабочий вариант. Его и выкладываю- строго не судите, это мои первые шаги в программировании.
Движемся дальше. Задача такая- обеспечить работу термостата с циркуляционным насосом, используя его возможность работать на 3 скоростях. Алгоритм работы будет такой:
1- Растапливаем котел. При температуре теплоносителя (Tохл) 22*С включается насос. При достижении Тохл 40*C включается вторая (повышенная) скорость насоса. При достижении Тохл 60*C- включается третья (самая высокая) скорость насоса. При остывании соответственно насос снижает свою скорость- вплоть до полной остановки. Естественно сохраняется функция Alarm. Скорость работы насоса думаю выводить на 3 горизонтальных сегмента первого символа индикатора.
Подозреваю, что для реализации задуманного можности ATTiny2313 ,будет уже недостаточно и придется переносить проект на более мощный камень ( например ATMega8). Надеюсь на Вашу помощь в реализации задуманного.
- Attachments
-
- TTK_Alarm_55_54.5_COLD_MOD.zip
- (5.66 KiB) Downloaded 328 times
-
- Частенько бываю
- Posts: 91
- Joined: 25 Jun 2012 12:45
Re: Термостат ∆T=0,1°C
тут такое дело - исходный проект выдает на экран температуру с точностью до 0.1С, под хранение температуры используются двухбайтные переменные, и с ними производят вычисления и сравнения. Под твои нужды - это чрезмерная точность. Если пользоваться однобайтовыми переменными, освободится куча места, по кр. мере под твою логику - хватит. Но придется переделать треть программы.kenkel wrote:Кодевижен ругается на недостаток места в ATTiny2313. В результате проб и ошибок сделал рабочий вариант. Его и выкладываю- строго не судите, это мои первые шаги в программировании.
...
Подозреваю, что для реализации задуманного можности ATTiny2313 ,будет уже недостаточно и придется переносить проект на более мощный камень ( например ATMega8). Надеюсь на Вашу помощь в реализации задуманного.
Если будешь мигрировать на другой чип - понадобится ревизия всей программы.
"Выбирай, но осторожно. Но выбирай" (С)
-
- Живу тут
- Posts: 712
- Joined: 01 Feb 2012 18:36
- Location: Санкт-Петербург
Re: Термостат ∆T=0,1°C
Не все так страшно. Предлагаю свой вариант термостата (модернизация).kenkel wrote:Спасибо за подсказки.
Надеюсь на Вашу помощь в реализации задуманного.
В нем есть три гистерезиса на один датчик (дельта одна - общая). Делалось для теплицы.
Два гистерезиса на нагрев, третий на открывание форточки. Но он пока закомментирован
так как не хватает выводов. Можно убрать точки на индикаторе. Или не выводить с такой
точностью(3 цифры).
Также подключив еще два датчика можете смотреть температуру дома и на улице.
Только вам надо проект немного допилить под себя. Место там хватит.
Кстати предлагаю использовать CodeVisionAVR V2.05.3 Пользуюсь уже месяц.
Глюков пока не замечено и размер программы получется меньше на несколько байтов.
Описание в прикрепленном файле.
Добавлено спустя 10 часов 43 минуты 43 секунды:
В ветке №53 RuTa56c предлагает вставлять
extern BYTE View;
extern BYTE Counter;
extern WORD T_LoadOn;
extern WORD DeltaT;
extern void RefreshDisplay(void);
в файл kbd.h для сборки проекта в CodeVisionAVR V2.0
При этом получаются интересные вещи
размер файла при сборке CodeVisionAVR V1.25.9 - 945 байт
размер файла при сборке CodeVisionAVR V2.05.3 - 957 байт
добавления в файле kbd.h
размер файла при сборке CodeVisionAVR V2.05.3 - 939 байт
добавления в файле kbd.с
Ну это так - информация к размышлению
- Attachments
-
- thermostat_3dat_3gist.rar
- Проект, описание и фьюзы
- (94.19 KiB) Downloaded 384 times
-
- Частенько бываю
- Posts: 37
- Joined: 06 Jan 2013 22:15
Re: Термостат ∆T=0,1°C
Спасибо за проект- буду разбираться.
Сегодня разобрал ( фактически снял верхнюю крышку) циркуляционный насос. Цель- понять как коммутируются в нем скорости. В итоге набросал кусок схемы управления насосом. Прошу подсказать электронный эквивалент данной схемы (можно- но не хочу собирать управление на реле).
Пока вырисовывается следующее. Для реализации задуманного мне нужно 4 свободные пина ATTiny2313 (1- Alarm, 3- управление насосом). От точности отказываться не хочу. Скорее всего откажусь от кнопок- по мне проще перешить микру.
CodeVisionAVR V2.05.3 скачал. Попробовал в нем собрать свой последний вариант- не вышло. Буду работать на добром старом CodeVisionAVR V1.25.7a. Интересно, что Ваш проект собрался в V2.05.3 без проблем.
Сегодня разобрал ( фактически снял верхнюю крышку) циркуляционный насос. Цель- понять как коммутируются в нем скорости. В итоге набросал кусок схемы управления насосом. Прошу подсказать электронный эквивалент данной схемы (можно- но не хочу собирать управление на реле).
Пока вырисовывается следующее. Для реализации задуманного мне нужно 4 свободные пина ATTiny2313 (1- Alarm, 3- управление насосом). От точности отказываться не хочу. Скорее всего откажусь от кнопок- по мне проще перешить микру.
CodeVisionAVR V2.05.3 скачал. Попробовал в нем собрать свой последний вариант- не вышло. Буду работать на добром старом CodeVisionAVR V1.25.7a. Интересно, что Ваш проект собрался в V2.05.3 без проблем.
-
- Живу тут
- Posts: 712
- Joined: 01 Feb 2012 18:36
- Location: Санкт-Петербург
Re: Термостат ∆T=0,1°C
Повторяю еще раз. Чтобы все собиралось в V2.05.3 без проблем вам надо вставить в начало файлаkenkel wrote: CodeVisionAVR V2.05.3 скачал. Попробовал в нем собрать свой последний вариант- не вышло. Буду работать на добром старом CodeVisionAVR V1.25.7a. Интересно, что Ваш проект собрался в V2.05.3 без проблем.
kbd.c следующий код
extern BYTE View;
extern BYTE Counter;
extern WORD T_LoadOn;
extern WORD DeltaT;
extern void RefreshDisplay(void);
Но так как вы склоняетесь к варианту без кнопок(кстати помоему для вашего проекта это оптимальный
вариант) то в проекте можно удалить все что сязано с кнопками (файл kbd.c,kbd.h и код в termostat_led.с).
И тогда все это спокойно соберется в V2.05.3
Также убирается все связанное с EEPROM - повышается надежность устройства при сбоях питания.
Хотя все равно супервизор не помешает.
Кстати можно еще ALARM повесить на обрыв датчика. В моем проекте это есть.
А по поводу насоса как я понял на каждую скорость своя обмотка.
Ну и использовать 3 связки оптопара+симистор
-
- Частенько бываю
- Posts: 37
- Joined: 06 Jan 2013 22:15
Re: Термостат ∆T=0,1°C
Да- похоже что так. На каждую скорость- своя обмотка. Однако боюсь програмных глюков и буду делать управление в связке- транзистор+ реле+симистор. Зима знаете- не хочу рисковать.
"Кстати можно еще ALARM повесить на обрыв датчика. В моем проекте это есть."
Да- это понятно. Кстати- пробовал отключать датчик температуры, насос продолжает работать.
Сегодня после резкого похолодания у нас резко потеплело. Решил поэкспериментировать- поднял температуру отключения насоса до 45*С. Циклическая работа твердотопливного котла позволила не только топить его при плюсовой температуре (обычно в такой ситуации я перехожу на отопление газом) , но и сьекономить топливо. Супер- первый раз в жизни топлю в таком режиме!!!.
Перешил микру- температуру Alarm опустил до 45*С. Температура отключения насоса- 50*C. Посмотрим , что из этого получится.
"Повторяю еще раз. Чтобы все собиралось в V2.05.3 без проблем вам надо вставить в начало файла
kbd.c следующий код"
С этим я разобрался. Пробовал собирать на собственном проекте термостата. Дополнительно нужно вставить- extern WORD Delta T;. Так вот- хекс файл в V1.25.7a- 5 745b, V2.05.3- 5 769b.
"Кстати можно еще ALARM повесить на обрыв датчика. В моем проекте это есть."
Да- это понятно. Кстати- пробовал отключать датчик температуры, насос продолжает работать.
Сегодня после резкого похолодания у нас резко потеплело. Решил поэкспериментировать- поднял температуру отключения насоса до 45*С. Циклическая работа твердотопливного котла позволила не только топить его при плюсовой температуре (обычно в такой ситуации я перехожу на отопление газом) , но и сьекономить топливо. Супер- первый раз в жизни топлю в таком режиме!!!.
Перешил микру- температуру Alarm опустил до 45*С. Температура отключения насоса- 50*C. Посмотрим , что из этого получится.
"Повторяю еще раз. Чтобы все собиралось в V2.05.3 без проблем вам надо вставить в начало файла
kbd.c следующий код"
С этим я разобрался. Пробовал собирать на собственном проекте термостата. Дополнительно нужно вставить- extern WORD Delta T;. Так вот- хекс файл в V1.25.7a- 5 745b, V2.05.3- 5 769b.
-
- Живу тут
- Posts: 712
- Joined: 01 Feb 2012 18:36
- Location: Санкт-Петербург
Re: Термостат ∆T=0,1°C
Что за програмные глюки ??? А связка оптопара(переход через 0)+симистор меньше по размерам,kenkel wrote:Однако боюсь програмных глюков и буду делать управление в связке- транзистор+ реле+симистор. Зима знаете- не хочу рисковать.
дешевле, надежней и тише.
При обрыве датчика (если вы вставили мой код) температура = 10999. На дисплее - 9999.kenkel wrote: Кстати- пробовал отключать датчик температуры, насос продолжает работать.
А там вы уж сами програмируйте что нужно включить или выключить.
В какой файл вы вставили ? Вставлять надо в kbd.c тогда размер будет меньше.kenkel wrote: С этим я разобрался. Пробовал собирать на собственном проекте термостата. Дополнительно нужно вставить- extern WORD Delta T;. Так вот- хекс файл в V1.25.7a- 5 745b, V2.05.3- 5 769b.
-
- Частенько бываю
- Posts: 37
- Joined: 06 Jan 2013 22:15
Re: Термостат ∆T=0,1°C
Да я не прав- не туда вставлял. V2.05.3- хексфайл- 5708b.
Спасибо за терпение.
Под програмными глюками я имел ввиду ситуацию когда у насоса включатся сразу две скорости одновременно. Как понравится это насосу я не знаю. Не хочу рисковать.
Работаю пока с оригинальным кодом (инкубатор)- переделанным под свои нужды. Кстати- ночные испытания показали, что перевод насоса по скоростям нужно привязывать не к температуре на выходе из котла, а к разности температур- выход\вход. Чем выше разность- тем выше скорость. Температуру Alarm- нужно поднимать с 45 до 52*C. Котел практически потух- а тревожного гудка так и небыло.
Спасибо за терпение.
Под програмными глюками я имел ввиду ситуацию когда у насоса включатся сразу две скорости одновременно. Как понравится это насосу я не знаю. Не хочу рисковать.
Работаю пока с оригинальным кодом (инкубатор)- переделанным под свои нужды. Кстати- ночные испытания показали, что перевод насоса по скоростям нужно привязывать не к температуре на выходе из котла, а к разности температур- выход\вход. Чем выше разность- тем выше скорость. Температуру Alarm- нужно поднимать с 45 до 52*C. Котел практически потух- а тревожного гудка так и небыло.
-
- Частенько бываю
- Posts: 91
- Joined: 25 Jun 2012 12:45
Re: Термостат ∆T=0,1°C
ну твоя-то существующая схема включения исключает возможность одновременного включения обмоток. Или ты решил релюшки отрезать и напрямую рулить с МК?kenkel wrote: Под програмными глюками я имел ввиду ситуацию когда у насоса включатся сразу две скорости одновременно. Как понравится это насосу я не знаю. Не хочу рисковать.
релюшки включены так, что третья замкнет свою обмотку только при включенной второй, вторая - только при включенной первой.
-
- Частенько бываю
- Posts: 37
- Joined: 06 Jan 2013 22:15
Re: Термостат ∆T=0,1°C
Да- схему на реле я задумывал так. При включении второй скорости- автоматически отключается первая. При этом реле R1- остается во включенном состоянии. При включении третьей (R3)- отключается вторая. Реле R1 и R2- включены. То есть- одновременно может быть включена только одна обмотка на насосе.
Под электронным эквивалентом схемы на реле я имел ввиду- схему в которой была-бы реализована указанная функция.
Напрямую рулить с МК- боюсь.
Под электронным эквивалентом схемы на реле я имел ввиду- схему в которой была-бы реализована указанная функция.
Напрямую рулить с МК- боюсь.
-
- Частенько бываю
- Posts: 37
- Joined: 06 Jan 2013 22:15
Re: Термостат ∆T=0,1°C
Решено- делаю спаренный термостат. Верхняя часть- использую свою версию термостата. В ней- Alarm+ общее включение котла (пока для реализации функции циклического включения котла по заданной температуре. В перспективе- думаю посадить на этот пин управление заслонкой на выхлопе из котла). Нижняя часть- вариант термостата от IYra. В ней- управление насосом (3 скорости) по разности температур - выход\вход воды в котел. 3й пин- PD4 думаю получить за счет отказа от индикации десятых градуса.
Пока пробую самостоятельно править исходник от IYra.
Пока пробую самостоятельно править исходник от IYra.
-
- Живу тут
- Posts: 712
- Joined: 01 Feb 2012 18:36
- Location: Санкт-Петербург
Re: Термостат ∆T=0,1°C
Если отказаться от кнопок и от индикации десятых градуса (от точки тоже можно отказаться) то получитсяkenkel wrote:Решено- делаю спаренный термостат. Верхняя часть- использую свою версию термостата. В ней- Alarm+ общее включение котла.
Нижняя часть- вариант термостата от IYra. В ней- управление насосом (3 скорости) по разности температур - выход\вход воды в котел. 3й пин- PD4 думаю получить за счет отказа от индикации десятых градуса.
6 свободных выходов. Это я к тому что можно все сделать на одном проекте. Опять же Alarm будет общий.
Ну это конечно если без кнопок можно обойтись.
-
- Частенько бываю
- Posts: 37
- Joined: 06 Jan 2013 22:15
Re: Термостат ∆T=0,1°C
Думаю, что без кнопок пока не обойтись. Нужно погонять термостат в разных режимах- поэтому принято такое решение.
Подправил Ваш исходник под свои нужды. На удивление- в кодевижине V2.05.3 все собралось. За железом поеду завтра. Сегодня решил погонять хекс в протеусе и тут облом. Не показывает температуру протеус. Подскажите, в чем моя ошибка?
Подправил Ваш исходник под свои нужды. На удивление- в кодевижине V2.05.3 все собралось. За железом поеду завтра. Сегодня решил погонять хекс в протеусе и тут облом. Не показывает температуру протеус. Подскажите, в чем моя ошибка?
- Attachments
-
- Termostat_MY.zip
- (84.41 KiB) Downloaded 353 times
-
- Proteus.zip
- (37.96 KiB) Downloaded 291 times
-
- Живу тут
- Posts: 712
- Joined: 01 Feb 2012 18:36
- Location: Санкт-Петербург
Re: Термостат ∆T=0,1°C
Ну потом когда все устаканится можно расмотреть и бескнопочный вариантkenkel wrote:Думаю, что без кнопок пока не обойтись. Нужно погонять термостат в разных режимах- поэтому принято такое решение.
Протеусом не пользуюсь. Собираю на макетке. На форуме много информации что протеус часто глючит.kenkel wrote: Сегодня решил погонять хекс в протеусе и тут облом. Не показывает температуру протеус. Подскажите, в чем моя ошибка?
Так что не обращайте внимание. Правильно собрать и все заработает.
Добавлено спустя 1 час 6 минут 55 секунд:
А кстати мой проект в Протеусе работает ?
Посмотрел ваши добавления. Нашел несколько ошибок
1.
BYTE Tnew1 ; // температура воды на выходе из котла MOD
BYTE Tnew2 ; // температура воды на входе в котел MOD
заменить на
WORD Tnew1 ; // температура воды на выходе из котла MOD
WORD Tnew2 ; // температура воды на входе в котел MOD
если Gis больше 25.6 то и ее надо делать WORD
2. В условиях на равенство использовать == а не =
3. Реакцию на разницу температур надо ставить после for(ii=0; ii<devices; ii++)
когда будут измерены обе температуры
Code: Select all
for(ii=0; ii<devices; ii++)
{
Tnew = izm_temp(ii) ;
if (ii==0) Tnew1 = Tnew ; // Первый датчик температура на выходе из котла
if (ii==1) Tnew2 = Tnew ; // Второй датчик
if (ii==UBRRL) // Текущий датчик
{
}
} // for
Tvyvod = Tnew2 ; // Вывод на индикатор температуры на обратке
if (( Tnew1 == 10999) | ( Tnew2 == 10999))
{
PORTD.5 = 1; // (на индикаторе 9999 ) проблемы с датчиком включаем 3 скорость насоса MOD
}
else
{
Gis = (Tnew1 - Tnew2) ;
if (Gis >= (T_LoadOn + DeltaT)) PORTD.3 = 1 ; //если разность темп. равна или больше 1 уставки + дельта = включаем 1 скорость насоса
if (Gis <= T_LoadOn) PORTD.3 = 0 ; // если разность темп. меньше 1 уставки = выключаем 1 скорость (выкл. насоса)
if (Gis >= (T_LoadOn1 + DeltaT)) PORTD.4 = 1 ; //если разность темп. равна или больше 2 уставки + дельта = включаем 2 скорость насоса
if (Gis <= T_LoadOn1) PORTD.3 = 0 ; // если разность темп. меньше 1 уставки = выключаем 1 скорость
if (Gis >= (T_LoadOn2 + DeltaT)) PORTD.5 = 1 ; //если разность темп. равна или больше 3 уставки + дельта = включаем 3 скорость насоса
if (Gis <= T_LoadOn1) PORTD.5 = 0 ; // если разность темп. меньше 1 уставки = выключаем 3 скорость
}
И ShowDisplayData(BYTE Num) надо править если вы хотите убрать один разряд
Может проше отказаться от точки и выводить 4 разряда
-
- Пробегал мимо
- Posts: 4
- Joined: 19 Jan 2013 14:52
Re: Термостат ∆T=0,1°C
Всем здрасте.
Спаял сей девайс, отличная штука, всё работает. Пришлось правда немного изменить прошивку, поменять выводы на индикатор)).
Собственно зачем пишу. Я достаточно неплохо шарю в программировании, а вот с электроникой только на уровне "спаял - работает, отлично". Хотелось бы разобраться с питанием, слетел у меня EEPROM и в дельту вписалось какое то огромное адовое значение. Каждый раз после фейла перепрошивать как то лень, хочется раз и навсегда разобраться.
1. "При включенном BOD и температуре кристала близкой к 0°С работа устройства оказывалась очень нестабильной - постоянно происходил сброс."
При температуре тиньки или даже только датчика? Если датчик будет на улице в -20 С, а основная схема дома, то с BOD будет нормально работать?
2. На случай работы без BOD. Подойдёт ли такая деталька в качестве супервизора и как её подключать?
Спаял сей девайс, отличная штука, всё работает. Пришлось правда немного изменить прошивку, поменять выводы на индикатор)).
Собственно зачем пишу. Я достаточно неплохо шарю в программировании, а вот с электроникой только на уровне "спаял - работает, отлично". Хотелось бы разобраться с питанием, слетел у меня EEPROM и в дельту вписалось какое то огромное адовое значение. Каждый раз после фейла перепрошивать как то лень, хочется раз и навсегда разобраться.
1. "При включенном BOD и температуре кристала близкой к 0°С работа устройства оказывалась очень нестабильной - постоянно происходил сброс."
При температуре тиньки или даже только датчика? Если датчик будет на улице в -20 С, а основная схема дома, то с BOD будет нормально работать?
2. На случай работы без BOD. Подойдёт ли такая деталька в качестве супервизора и как её подключать?
-
- Живу тут
- Posts: 712
- Joined: 01 Feb 2012 18:36
- Location: Санкт-Петербург
Re: Термостат ∆T=0,1°C
Должна работать нормально. Проблемы возникают только если Тинька на морозе.Satarych wrote:Всем здрасте.
1. Если датчик будет на улице в -20 С, а основная схема дома, то с BOD будет нормально работать?
А может вам повезет с Тинькой и она заработает на холоде. Попробуйте ради интереса.
Второй вариант предпочтительней тем более деталь копеечная.Satarych wrote: 2. На случай работы без BOD. Подойдёт ли такая деталька в качестве супервизора и как её подключать?
Деталька подойдет только надо выбрать с соответствующим порогом, зависящим от питания МК.
Подключать просто - питание и 3 вывод (OUT) к RESET. Ну и не забыть сопротивление между ПЛЮС и Reset
-
- Частенько бываю
- Posts: 37
- Joined: 06 Jan 2013 22:15
Re: Термостат ∆T=0,1°C
++++++++++++++++А кстати мой проект в Протеусе работает ?++++++++++++++++++++
Ваш проект в протеусе то-же не работает. Нет индикации температуры+ странная реакция на нажатие кнопок.
++++++++++++++Посмотрел ваши добавления. Нашел несколько ошибок++++++++++++++
1. Заменил.....
+++++++++++ если Gis больше 25.6 то и ее надо делать WORD+++++++++++++++++++++
1.1 Сделал....
2.Поменял.....
3. Поменял....
+++++++++++++++++И что-то вы с портами намудрили PORTD.5 занят левым разрядом дисплея+++++++++++++++++++++
Да- с портами я то-же напутал- нужно было PORTD.4.
И ShowDisplayData(BYTE Num) надо править если вы хотите убрать один разряд+++++++++++++++++++++++++++++++++++
Попытался закоментировать вывод 4 разряда- наверное что-то не правильно сделал?
++++++++++++++++++Может проше отказаться от точки и выводить 4 разряда++++++++++++++++++++++++++++
Под точкой Вы понимаете- точку отделяющую целое значение градуса от десятых или точка есть показатель включения нагрузки?
Если второй вариант- то конечно нужно отказаться от точки. Есть мысль- выводить на дисплей скорость насоса например так- 1я скорость= включено нижнее подчеркивание в первом разряде, 2я скорость- включено нижнее и среднее (минус) подчеркивание в первом разряде, 3я скорость- включено нижнее, среднее и верхнее подчеркивание.
Как в таком случае отказатся от точки?
Добавлено спустя 1 час 33 минуты 56 секунд:
PS/ С последним вопросом разобрался- как в железе отключить точку- понятно. Как это сделать в программе- пока не ясно.
Ваш проект в протеусе то-же не работает. Нет индикации температуры+ странная реакция на нажатие кнопок.
++++++++++++++Посмотрел ваши добавления. Нашел несколько ошибок++++++++++++++
1. Заменил.....
+++++++++++ если Gis больше 25.6 то и ее надо делать WORD+++++++++++++++++++++
1.1 Сделал....
2.Поменял.....
3. Поменял....
+++++++++++++++++И что-то вы с портами намудрили PORTD.5 занят левым разрядом дисплея+++++++++++++++++++++
Да- с портами я то-же напутал- нужно было PORTD.4.
И ShowDisplayData(BYTE Num) надо править если вы хотите убрать один разряд+++++++++++++++++++++++++++++++++++
Попытался закоментировать вывод 4 разряда- наверное что-то не правильно сделал?
++++++++++++++++++Может проше отказаться от точки и выводить 4 разряда++++++++++++++++++++++++++++
Под точкой Вы понимаете- точку отделяющую целое значение градуса от десятых или точка есть показатель включения нагрузки?
Если второй вариант- то конечно нужно отказаться от точки. Есть мысль- выводить на дисплей скорость насоса например так- 1я скорость= включено нижнее подчеркивание в первом разряде, 2я скорость- включено нижнее и среднее (минус) подчеркивание в первом разряде, 3я скорость- включено нижнее, среднее и верхнее подчеркивание.
Как в таком случае отказатся от точки?
Добавлено спустя 1 час 33 минуты 56 секунд:
PS/ С последним вопросом разобрался- как в железе отключить точку- понятно. Как это сделать в программе- пока не ясно.