Page 3 of 15

Re: Термостат ∆T=0,1°C - работа над ошибками

Posted: 17 Dec 2014 13:36
by propell_ant
dandiv wrote:propell_ant Пока редактировал предыдущий пост, Вы уже ответ написали. Я запутался с минусовой температурой, гляньте мою последнюю цитату пожалуйста. Про паровоз улыбнуло :) , просто начал просматривать исходник, чтобы возможно было подправлять под себя, а тут такие изменения, что я попал в ступор...
А, теперь вижу.
-55 теперь записывается просто как -550

Code: Select all

if ((eeT_LoadOn > 1250) || (eeT_LoadOn < -550)) //если в EEPROM значение > +125С или < -55С значит он не прошился, или

Re: Термостат ∆T=0,1°C - работа над ошибками

Posted: 17 Dec 2014 13:51
by agvares
может кто скинуть список компонентов с их номиналами к этой схеме?

Re: Термостат ∆T=0,1°C - работа над ошибками

Posted: 17 Dec 2014 15:31
by dandiv
propell_ant Понял, спасибо!
agvares как понять
список компонентов с их номиналами к этой схеме?
Основную тему http://hardlock.org.ua/viewtopic.php?f=9&t=10 не читал что-ли? Там ведь все есть

Добавлено спустя 41 минуту 34 секунды:
propell_ant Немного поменял температуру и дельту в исходнике tl_mod_002b3 под свои нужды, прошил. Точка работает (т.е. при ошибках тухнет), а вот с температурой непонятки - установленные по умолчанию в меню значения -0.1 градус и дэльта 0.1 градус. Посчитал, что я чего-то не то сделал, прошил вашу прошивку tl_mod_002b3_heat_oa - все так-же. Похоже где-то вкралась ошибочка...

Re: Термостат ∆T=0,1°C - работа над ошибками

Posted: 17 Dec 2014 20:58
by propell_ant
dandiv wrote:установленные по умолчанию в меню значения -0.1 градус и дэльта 0.1 градус. Посчитал, что я чего-то не то сделал, прошил вашу прошивку tl_mod_002b3_heat_oa - все так-же. Похоже где-то вкралась ошибочка...
:) опа! этот эффект я пропустил. При очистке EEPROM в него записывается FF во все ячейки, а 0xFFFF - это -1(int) а в нашем масштабе -0.1
Дельта тоже -0.1, только минус затирается буквой "d"
тысяча эта... не сдается

я исправил эту (-0.1) ошибку и обновил архивы в предыдущих постах

Re: Термостат ∆T=0,1°C - работа над ошибками

Posted: 19 Dec 2014 10:00
by propell_ant
agvares wrote:задание на курсовой проэкт, решил взять эту схему. Но для полной картины нужен pspice код.
Я спрошу по другому: какой программой вы собираетесь открывать pspice код?

Re: Термостат ∆T=0,1°C - работа над ошибками

Posted: 19 Dec 2014 16:46
by dandiv
tl_mod_002b4
я исправил эту (-0.1) ошибку
, подтверждаю (проверено)

Re: Термостат ∆T=0,1°C - работа над ошибками

Posted: 23 Dec 2014 18:56
by propell_ant
уфф. Обновил все архивы, добавил в первый пост. mod_002 стал версией 4.0.0
Пока тестировал, обнаружил и исправил в mod_002 пару ошибок, так что обновляйтесь.

Re: Термостат ∆T=0,1°C - работа над ошибками

Posted: 24 Dec 2014 05:55
by dandiv
Отлично, будем посмотреть! :)

Добавлено спустя 10 минут 38 секунд:
Во как, в версии tl_v4.0.0 можно температуру включения по умолчанию, минимальную и максимальную температуру, дэльту по умолчанию и диапазон регулировки дэльты изменять в отдельном файле!
propell_ant Молодец, спасибо!

Добавлено спустя 7 минут 59 секунд:
Частота моргания теперь по другому задается
#define BlinkCounterMask 0b01111111 //примерно 4 моргания в секунду
#define BlinkCounterHalfMask 0b01000000 //примерно 4 моргания в секунду
Значения 127 и 64, не пойму как теперь задавать параметры. (Какое число за что отвечает) :oops:

Добавлено спустя 57 секунд:
Вечером попробую в железе проверить прошивку

Re: Термостат ∆T=0,1°C - работа над ошибками

Posted: 24 Dec 2014 08:51
by propell_ant
dandiv wrote:Частота моргания теперь по другому задается
#define BlinkCounterMask 0b01111111 //примерно 4 моргания в секунду
#define BlinkCounterHalfMask 0b01000000 //примерно 4 моргания в секунду
Коменты не соответствуют, там 1 моргание а не 4.
Это битовая маска. Счетчик плюсуется, но нам надо считать не до 255, а меньше. Поэтому лишнее на каждой итерации отрезается, получается, что как только досчитали до BlinkCounterMask - плюс один и стало 0b10000000, применили битовую маску - единицу отрезали, осталось 0b00000000. А BlinkCounterHalfMask - это половина периода моргания - эта единичка установлена ровно половину времени отсчета. Если нужно мигать вдвое чаще - сдвигаемся вправо:
#define BlinkCounterMask 0b00111111 //примерно 2 моргания в секунду
#define BlinkCounterHalfMask 0b00100000 //примерно 2 моргания в секунду

Re: Термостат ∆T=0,1°C - работа над ошибками

Posted: 24 Dec 2014 08:52
by dandiv
Понятно, спасибо!

Re: Термостат ∆T=0,1°C - работа над ошибками

Posted: 24 Dec 2014 11:04
by propell_ant
внес исправления в комменты, перезалил. Прошивки не затронуты, обновляться с 4.0.0 на 4.0.1 не нужно.

Re: Термостат ∆T=0,1°C - работа над ошибками

Posted: 24 Dec 2014 14:12
by Recov
Блин, совсем запутался, propell_ant пожалуйста, можно в Ваш последний пост последнюю прошивку?

Re: Термостат ∆T=0,1°C - работа над ошибками

Posted: 24 Dec 2014 14:38
by propell_ant
Recov wrote:Блин, совсем запутался, propell_ant пожалуйста, можно в Ваш последний пост последнюю прошивку?
например вот:
http://hardlock.org.ua/posting.php?mode ... 07#pr10620
а вообще - в первом посте темы два архива hex и src, в них папка tl_v4.0.x, прошу прощения за запутанность, спешу доделать к новому году.
Если есть мысли как сделать более понятно - предлагайте.

Re: Термостат ∆T=0,1°C - работа над ошибками

Posted: 24 Dec 2014 19:13
by dandiv
Попробовал 4.0.0, работает. Единственное, в чем отличие от tl_mod_002b3 (tl_mod_002b4), так это более заметное мигание индикатора при опросе датчика (похоже при опросе). Причем изменение яркости: полная яркость - кратковременное большое проседание яркости - полная яркость - кратковременное почти незаметное проседание яркости. В предыдущей прошивке изменения яркости было примерно как
кратковременное почти незаметное проседание яркости
.
Попробую видео снять

Добавлено спустя 29 минут 23 секунды:
Поработал наверно с полчаса, смотрю моргает - поглядел ошибка Е0.3. С прошивкой tl_mod_002b4 такой ошибки не было (хотя включен был сутками), была Е0.1 - после того как перенес подтягивающий резистор на датчик, а потом еще уменьшил его номинал, эта ошибка исчезла. Сейчас сбросил ошибку, понаблюдаю...

Добавлено спустя 21 минуту 9 секунд:
http://dandiv2101.narod.ru/download/2.avi видео работы (установлена температура 3 градуса и дельта 3 градуса, с имитацией КЗ в конце видео)
http://dandiv2101.narod.ru/download/3.avi видео мигания... не совсем хорошо получается заснять происходящее :oops:

Добавлено спустя 52 минуты 27 секунд:
Про мигание при опросе - в tl_mod_002b4 мигание вроде такое-же как и в 4.0.0 (частота мигания), только происходит не как мигание, а как кратковременное плавное изменение яркости, поэтому издалека незаметно. В 4.0.0 этой "плавности" нет, поэтому мигание заметно даже с расстояния.

Добавлено спустя 3 минуты 31 секунду:
Ну и заодно спрошу

Code: Select all

#define DimmerDivider 2 //Не используется //Это регулировка яркости: 4 соответствует 60%, 2 - примерно 35%
- На самом деле не используется? (т.е. тут бесполезно что-то менять)

Re: Термостат ∆T=0,1°C - работа над ошибками

Posted: 24 Dec 2014 22:04
by propell_ant
dandiv wrote:Попробовал 4.0.0, работает. Единственное, в чем отличие от tl_mod_002b3 (tl_mod_002b4), так это более заметное мигание индикатора при опросе датчика (похоже при опросе). Причем изменение яркости: полная яркость - кратковременное большое проседание яркости - полная яркость - кратковременное почти незаметное проседание яркости. В предыдущей прошивке изменения яркости было примерно как
кратковременное почти незаметное проседание яркости
.
Попробую видео снять
видео плохо передает субъективное восприятие динамической индикации, не тратьте время
Добавлено спустя 29 минут 23 секунды:
Поработал наверно с полчаса, смотрю моргает - поглядел ошибка Е0.3. С прошивкой tl_mod_002b4 такой ошибки не было (хотя включен был сутками), была Е0.1 - после того как перенес подтягивающий резистор на датчик, а потом еще уменьшил его номинал, эта ошибка исчезла. Сейчас сбросил ошибку, понаблюдаю...
мда. и как же это проверить-то. Версия 3.2 моргать не станет.
Про мигание при опросе - в tl_mod_002b4 мигание вроде такое-же как и в 4.0.0 (частота мигания), только происходит не как мигание, а как кратковременное плавное изменение яркости, поэтому издалека незаметно. В 4.0.0 этой "плавности" нет, поэтому мигание заметно даже с расстояния.
Ну и заодно спрошу

Code: Select all

#define DimmerDivider 2 //Не используется //Это регулировка яркости: 4 соответствует 60%, 2 - примерно 35%
- На самом деле не используется? (т.е. тут бесполезно что-то менять)
Да, видимо перегнул палку с оптимизацией. Придется возвращать DimmerDivider.

Добавлено спустя 1 час 10 минут 34 секунды:
вернул DimmerDivider, обновил архивы до версии 4.0.2

PS если останется мерцание, попробуйте раскомментировать строку 35,

Code: Select all

#define NO_BLINK
это в железе пока не проверялось ни разу, в модели сильно снижает перепады яркости

Re: Термостат ∆T=0,1°C - работа над ошибками

Posted: 25 Dec 2014 05:05
by dandiv
Ошибка Е0.3, которая возникала - наверно просто случайность (возможно из-за того, что у меня то термостат сейчас подключен через разъемы, для оперативного снятия и проверки разных прошивок. Когда все будет протестировано, тогда и все провода припаяю). Ночь термостат простоял включенный - ошибок никаких не возникло.
если останется мерцание, попробуйте раскомментировать строку 35
Для начала попробую просто прошить версию 4.0.2, посмотрю, а уж потом попробую раскомментировать эту строку и проверить в железе.

Re: Термостат ∆T=0,1°C - работа над ошибками

Posted: 26 Dec 2014 17:33
by dandiv
Извините, дел много - проверить новую прошивку пока нет возможности :oops:

Re: Термостат ∆T=0,1°C - работа над ошибками

Posted: 26 Dec 2014 18:42
by propell_ant
dandiv wrote:Извините, дел много - проверить новую прошивку пока нет возможности :oops:
ну какие извините :)

Re: Термостат ∆T=0,1°C - работа над ошибками

Posted: 27 Dec 2014 06:31
by dandiv
Проверил в железе 4.0.2, если честно то не заметил изменений (мерцания вроде такие же). Раскомментировал
#define NO_BLINK
, проверил - мерцаний вообще не вижу! Единственное, при раскоментированной этой строчке при перемотке (изменения температуры или дэльты) примерно раз в две секунды показания приостанавливаются, потом дальше бегут. Но думаю это не проблема - не каждую минуту же их менять :) Зато мерцаний вообще нет.
Попробовал эту же строчку раскомментировать в 4.0.1 - тоже мерцаний нет, при перемотке такие же остановки. Значит за финальную версию можно брать любую из этих версий (4.0.1 или 4.0.2) с раскоментированной строкой
#define NO_BLINK
.
propell_ant решение за Вами!

p/s По поводу ошибки Е0.3, которая у меня один раз выскакивала - за несколько суток никаких ошибок нет, значит проблема на самом деле в контактах (после финальной версии разъемы уберу и припаяю провода напрямую к плате. Пока не буду, вдруг еще проверять прошивки нужно будет)

Re: Термостат ∆T=0,1°C - работа над ошибками

Posted: 27 Dec 2014 17:17
by propell_ant
dandiv wrote:Проверил в железе 4.0.2, если честно то не заметил изменений (мерцания вроде такие же).
интересно иногда случается - оптимизируешь что-то, вроде незначительно, а вылезает бяка, которую не трогал
Раскомментировал
#define NO_BLINK
, проверил - мерцаний вообще не вижу! Единственное, при раскоментированной этой строчке при перемотке (изменения температуры или дэльты) примерно раз в две секунды показания приостанавливаются, потом дальше бегут.
а это запрос данных с датчика раз в две секунды.

ну чтож, будем делать версию 4.0.3
спасибо!

Re: Термостат ∆T=0,1°C - работа над ошибками

Posted: 28 Dec 2014 15:00
by dandiv
propell_ant ну раз можно что-то еще изменить для лучшей работы, то дерзайте! :good:
Спасибо Вам за ваш труд!!! Даже имеющаяся прошивка уже достойна похвал. Работает отлично, вход в меню по двум кнопкам тоже отличное решение, индикация кода ошибки очень полезна (ведь всякие могут быть ситуации, а знать что проверять в таких ситуациях - намного облегчает жизнь. Если E 0.2 - ищем обрыв, если E 0.4 - ищем КЗ, E 0.1 - по моему опыту необходим подбор подтягивающего резистора (при длинной линии еще и перенос резистора на сам датчик), E 0.3 - ищем плохой контакт - у меня это разъем... это временная проблема, до выхода финальной версии)

Re: Термостат ∆T=0,1°C - работа над ошибками

Posted: 30 Dec 2014 10:41
by propell_ant
выложил в форуме версию 4.0.3
Коротенько опишу суть алгоритма подавления мерцания при обмене данными с датчиком.
При чтении данных индикатор на некоторое время "отпадает" - все разряды гаснут. После каждого запроса данных приходится делать подряд несколько циклов отображения данных на индикаторе. Ну и индикатор горит-горит-горит-не_горит. А между обменами данных - горит всё время. И глаз видит перепад яркости индикатора. Я решил просто добавить "пропуски" именно в промежутках между обменами данных, теперь горит-горит-горит-не_горит происходит вообще всегда. Только при обмене "не_горит" происходит из-за передачи данных, а всё остальное время - просто задержка. Итоговая яркость индикатора чуть меньше, визуально - процентов 7-10.

Re: Термостат ∆T=0,1°C - работа над ошибками

Posted: 30 Dec 2014 11:16
by dandiv
Хорошо, будем пробовать!

Re: Термостат ∆T=0,1°C - работа над ошибками

Posted: 30 Dec 2014 13:42
by propell_ant
dandiv, у вас-то всё уже протестировано!

Re: Термостат ∆T=0,1°C - работа над ошибками

Posted: 30 Dec 2014 15:06
by dandiv
А, я так понял, что доработка только в раскомментировании строки
#define NO_BLINK
?
Просто прошил версию 4.0.3 и не заметил изменений с версией 4.0.2 (в которой я эту строку раскомментировал для проверки).
p/s Если это так, то будем считать эту версию финальной?