Page 6 of 12

Re: Применение термостата 0,1°C в инкубаторе

Posted: 08 Mar 2012 20:47
by prn21
Флюс отмыл полностью. Отказ чтения происходит через неодинаковое время и такое ощющение что сбрасывается контроллер во время чтения. В режиме настройки все нормально, только немного, еле заметно светиться минус. Наверное что то с контроллером. Прошивка и верификация проходит на отлично. Спаяю наверное плату с нуля. Спасибо.

Re: Применение термостата 0,1°C в инкубаторе

Posted: 08 Mar 2012 22:29
by hardlock
Tim, максимальная длина до 300м (теоретическая, со специальными драйверами на линии, подробнее - смотрите даташит). Экранированый кабель - ни в коем случае, а вот обычная витая пара - самое оно.

Re: Применение термостата 0,1°C в инкубаторе

Posted: 08 Mar 2012 23:07
by Tim
hardlock wrote:Экранированый кабель - ни в коем случае
А почему так??? Объясните неучу.... Просто пока я ждал ответа - использовал кабель "стерео" - две жилы + экран! Длина - примерно 1.5 метра. Полёт нормальный! Хоть показывать температуру стал более-менее правильную! (до этого, как датчик был на плате - показывал комнатную 26-27... как на проводе - 21-22, последнему значению я больше верю!)

Re: Применение термостата 0,1°C в инкубаторе

Posted: 08 Mar 2012 23:10
by hardlock
Tim wrote:Длина - примерно 1.5 метра.
не критично, а вот больше - ёмкость будет большая и будут траблы. Это же не аналоговый сигнал, а цифровой.
Tim wrote:как датчик был на плате - показывал комнатную 26-27...
так он же от платы грелся. Надо на проводах и чем тоньше, тем точнее будет температура и меньше инерционность измерения.

Re: Применение термостата 0,1°C в инкубаторе

Posted: 04 Apr 2012 16:32
by RADIOTEHNIC
Перекомпоновка из исходников:
Перед компиляцией открываем файл tempcfg.h и комментим/раскомментим нужные строки (всё, что после "//" - это комментарий) :-) .
Для моей платы: В файле tempcfg.h закомментировать #define Cathode и #define Anode, раскомментировать #define CathodeNPN:

Code: Select all

#define CathodeNPN        //раскомментировать, если индикатор с ОК и NPN транзисторами в цепи катодов
//#define Cathode         //раскомментировать, если индикатор с ОК 
//#define Anode           //раскомментировать, если индикатор с ОА
Для схемы с ОК: В файле tempcfg.h закомментировать #define CathodeNPN и #define Anode, раскомментировать #define Cathode:

Code: Select all

//#define CathodeNPN     //раскомментировать, если индикатор с ОК и NPN транзисторами в цепи катодов
#define Cathode          //раскомментировать, если индикатор с ОК 
//#define Anode          //раскомментировать, если индикатор с ОА
Для схемы с ОА: В файле tempcfg.h закомментировать #define CathodeNPN и #define Cathode, расскоментировать #define Anode:

Code: Select all

//#define CathodeNPN        //раскомментировать, если индикатор с ОК и NPN транзисторами в цепи катодов
//#define Cathode           //раскомментировать, если индикатор с ОК 
#define Anode               //раскомментировать, если индикатор с ОА
Открыть в CodeVisionAVR файл проекта termostat_led.prj, make - Shift+F9, залить в проц hex файл, получившийся с папке с проектом.
Termostat v3.2_univ_incubat+alarm+correct_v0.22a by Grey4ip.rar
Просьба отписываться о результатах прошивки и проверки.
Выражаю благодарность Hardlock'у за термостат и предоставленные исходники платы и прошивки.[/quote]


НАРОД А ЭТО ОБЯЗАТЕЛЬНО? МОЖНО ЛИ СКАЧАТЬ HEX И ЧЕРЕЗ СВОЮ ПРОГРАММУ ПРОШИТЬ?

Re: Применение термостата 0,1°C в инкубаторе

Posted: 16 Apr 2012 17:03
by Tim
Уважаемые форумчане, помогите пожалуйста...

Спаял два термостата...
Прошивка: Termostat_led_OA_v0.22a_by_Grey4ip
Фьюзы: Fuses_2313_Termostat_led + BOD enable 4.3V

1й термостат стоит на одном инкубаторе... Сама плата термостата лежит на самом инкубаторе без корпуса - и работает отлично! Температура окружающей среды 16-18гр.

2й термостат (плата) находится в корпусе (внутри) самого инкубатора (инкубаторы разные)... Сам отсек, в котором нах. плата тоже греется... И вот через минуту-вторую начинаются глюки... На экране с аплитудой примерно 0.5 сек моргает то температура на датчике, то температура, при которой должны включатся нагревательные элементы... Кнопки перестают работать и кажждые эти 0.5 сек. пытаются загореться нагревательные элементы, но не загораются... Лечится это обесточением терморегулятора! При повторном включении минуту-две работает отлично - поом опять тот же заскок! Повесил над платой терморегулятора вентилятор, который обдуёт её холодным воздухом - заскоков вроде нету! Но яйца закладывать боюсь! В чём может быть причина???

Re: Применение термостата 0,1°C в инкубаторе

Posted: 01 May 2012 17:53
by scotland
Здраствуйте,
Tim wrote:На экране с аплитудой примерно 0.5 сек моргает то температура на датчике, то температура, при которой должны включатся нагревательные элементы...
ето значит что собако сторожевой делает ресет из за спирание виьполнение програма. Если кто-то увидет 2 раза или больше установленая температура
в процесе работу не нажая никокую кнопку и температура внутри горазда различная то значит собака сбрасиьвает. Почему ето произходить ето другой вопрос.

Ну я здесь другая тема хочу разгадать. Реално соществуют 2 типа делта одна из них ето програмированая заданная в програму и другая ето делта
из за инертности нагревателя которая не очень малинкая. Уважаемиье hardlock и Grey4ip у ваших схемах первая делта виьше Туст. а вторая из за
инерции всегда виьше первая. Тогда думаю я температура будет поддерживатся всегда виьше Туст. лудше и логично програмироват делту ниже Туст.
Зделает ето очень просто. Биьла так :

Code: Select all

if ((Tnew <= T_LoadOn) && (Tnew != CorT)) //Если температура ниже либо равна установленной // mod by Grey4ip
{                               //то включаем нагрузку (если температура ноль - обрыв датчика, не включаем)
  HeatPin = 1;
  LoadOn = 1;
}

if ((Tnew >= (T_LoadOn + DeltaT)) || (Tnew == CorT))    //Если температура выше либо равна (установленной + Дэльта), //mod by Grey4ip
{                                                       // или равна 0 (обрыв датчика), то выключаем нагрузку
  HeatPin = 0;
  LoadOn = 0;
}
зделаем так:

Code: Select all

if ((Tnew <= (T_LoadOn - DeltaT)) && (Tnew != CorT)) //Если температура ниже либо равна (установленной - Дэльта) // mod by Grey4ip
{                               //то включаем нагрузку (если температура ноль - обрыв датчика, не включаем)
  HeatPin = 1;
  LoadOn = 1;
}

if ((Tnew >= T_LoadOn) || (Tnew == CorT))    //Если температура выше либо равна установленной , //mod by Grey4ip
{                                                       // или равна 0 (обрыв датчика), то выключаем нагрузку
  HeatPin = 0;
  LoadOn = 0;
}
Добавлено спустя 25 минут 56 секунд:
следует также ето подменить в kbd.c :
строк 133

Code: Select all

if (T_LoadOn > MinAllowT) //если "Установленная температура" > MinAllowT, то  //mod by Grey4ip
будет

Code: Select all

if (T_LoadOn > (MinAllowT + DeltaT))
строк 161

Code: Select all

if (T_LoadOn < (MaxAllowT - DeltaT))    // если температура ниже MaxAllowT - Дельта //mod by Grey4ip
будет

Code: Select all

if (T_LoadOn < MaxAllowT)
строк 169

Code: Select all

if (DeltaT < MaxDeltaT)     //если Дельта меньше MaxDeltaT,
будет

Code: Select all

if ((DeltaT < MaxDeltaT) && (DeltaT < (MaxAllowT - T_LoadOn)))

Re: Применение термостата 0,1°C в инкубаторе

Posted: 29 May 2012 10:34
by stolbtlt
Здравствуйте!
У меня вопрос к grey4ip
В своем термостате использую вашу универсальную прошивку, так как в ней есть контроль наличия датчика и отключекние нагрузки если тот отвалится. Хочу понять алгоритм работы программы (не силен в Си) в моей ситуации когда на экране 0.0, на кнопки реакция адекватная и после передергивания питания все востанавливается. Получается что программа не возращается к опросу датчика, или тот не отвечает (завис). Так ли это? Датчик подключен по трехпроводке, длина проводов менее метра от витой пары, сопро 4к7 уменьшил до 4к3.
Спасибо!

Re: Применение термостата 0,1°C в инкубаторе

Posted: 20 Dec 2012 10:42
by spotok
Здраствуйте. Может кто сделал таймер для инкубатора на этой плате, отзовитесь. Нечем яйца переворачивать. Спасибо.

Re: Применение термостата 0,1°C в инкубаторе

Posted: 20 Dec 2012 21:44
by IYra
spotok wrote:Здраствуйте. Может кто сделал таймер для инкубатора на этой плате, отзовитесь. Нечем яйца переворачивать. Спасибо.
Все зависит от реализации исполнительного механизма. Посылаю свой вариант. В железе еще не готов.
Описание в архиве.
Кстати в этом варианте вроде удалось убрать моргание при опросе датчиков.

Кое-что поправил и добавил скомпилированный проект с файлами прошивки.
Индикатор с общим АНОДОМ, время импульса 7 сек

Re: Применение термостата 0,1°C в инкубаторе

Posted: 25 Dec 2012 19:56
by spotok
Переворот я делаю из РД-09 и 2 концевика, или два кулачка и один концевик. Как коленвал, устанавливается в 2 положения. Сигнал от таймера нужен длительностью 5-7 сек., чтобы проехать концевик.
Спасибо за вариант прошивки, но мне бы НЕХ под любой индикатор.

Re: Применение термостата 0,1°C в инкубаторе

Posted: 25 Dec 2012 21:17
by IYra
spotok wrote: Спасибо за вариант прошивки, но мне бы НЕХ под любой индикатор.
Кое-что поправил и добавил скомпилированный проект с файлами прошивки.
Индикатор с общим АНОДОМ, время импульса 7 сек Смотри выше.
А что мешает поставить CodeVisionAVR ? Делай сам что хочешь.

Re: Применение термостата 0,1°C в инкубаторе

Posted: 27 Dec 2012 14:44
by spotok
Я скачал ,пробовал ставить, седьмой виндовс что-то ругается, по моему из-за лицензии.
У hardlockа вообще удалили. Спасибо.

Re: Применение термостата 0,1°C в инкубаторе

Posted: 30 Jan 2013 11:20
by scotland
Имейте ввиду что ето схема подключчивания не подходит для инкубатор все равно если там 1ком - хуже.

Image

Етого нету в pdf-а датчика. Там есть паразитное питание датчика но програмное не так.
Дря виьчисления температура тоности 0,1 С, 18B20 нуждается 750 милисекунди минимум ( команда 0xCC )
в етого моменту потенциала линеа 1 Wire нискии - ето значить что виь нагреваете датчика с не малой мощности.
Таким образом он вас обманивает.

Добавлено спустя 9 минут 19 секунд:
Програма ето время ждания НЕ гарантирует - провериль все.

Re: Применение термостата 0,1°C в инкубаторе

Posted: 21 Feb 2013 11:50
by soznik
Уважаемые форумчане, помогите пожалуйста.
Собрал уже несколько термостатов работают отлично. Сейчас решил сделать терморегулятор на электро титан. Изменил в исходнике
#define MaxAllowT 1880 // Макс. температура +80.0°C при дельте 8.0°C
#define DefT_LoadOn 1366 // Температура по умолчанию.+36.6°C !!! Внимание!!! должна быть в диапазоне MinAllowT..MaxAllowT
#define MinAllowT 1200 // Мин. температура +20.0°C
Подскажите где исправить чтоб не было десятых долей градусов т.к. на титане они не нужны.
Если тупо удалить младший разряд, то скорость изменения установок маленькая.

Re: Применение термостата 0,1°C в инкубаторе

Posted: 21 Feb 2013 15:53
by IYra
soznik wrote: Подскажите где исправить чтоб не было десятых долей градусов т.к. на титане они не нужны.
Если тупо удалить младший разряд, то скорость изменения установок маленькая.
Если дело только в скорости установок то проще вместо
T_LoadOn -- , T_LoadOn ++ и т.д. поставить
T_LoadOn -=10 , T_LoadOn +=10
Что-бы реально убрать десятые надо много переделывать

Re: Применение термостата 0,1°C в инкубаторе

Posted: 22 Feb 2013 10:09
by soznik
T_LoadOn -=10 , T_LoadOn +=10

Огромное спасибо все получилось.

Re: Применение термостата 0,1°C в инкубаторе

Posted: 14 Mar 2013 15:07
by asicorp2001
Вот вопрос, может кто тоже столкнулся. Собрал термостат, установил в рабочий инкубатор. В нем работала у меня схема на уд608. надеялся на то, что температура постабильнее будет. А на деле получается температура плавает от 37.3 до 37,8, при установленной на 37.5. Нагреватель ТЭН, стоит вентилятор. Воздух готовится в отдельной камере, потом подается в отсек с яйцами. У регулятора на уд608 был тоже недостаток - зависимость от напряжения в сети, но температуру держал стабильно, стояла как вкопанная на 37,5 .... я сначала мерил этим-же цифровым регулятором.
Вот и не знаю теперь, может цифровой для измерения и контроля аварии поставить. А для регулировки вернуть назад на уд608. Или не все так плохо и можно что-нить помудрить ?

Re: Применение термостата 0,1°C в инкубаторе

Posted: 14 Mar 2013 15:37
by hardlock
asicorp2001, по идее система сильно энерционная и надо вводить задержку в регулировке и в идеале ШИМ регулирование нагрузки. Тогда можно добиться абсолютной точности.

Re: Применение термостата 0,1°C в инкубаторе

Posted: 14 Mar 2013 15:57
by asicorp2001
hardlock, А в этой прошивке, ШИМ в алгоритм реально добавить ? В ней я так понимаю обычное вкл-выкл реализовано. Я поменял немного алгоритм, но все что я добился - это сместил среднюю точку. Т.е сделал от 37,5 в плюс и минус 0,3 гр. Еще я пробовал собрать регулятор по ШИМ схеме с сайта http://startcd.narod.ru, первую схему. Но там тоже плавает. А вот про задержку я тоже думал, но пока не могу понять как ее в алгорим перевести. Смысл наверное в том, что-бы подбирать время нагрева и время ожидания реакции. Но вот можно-ли как-то в программе организовать отсчет времени? Например брать время между началом нагрева и моментом начала подъема температуры. Тогда пробуя уменьшить это время можно попытаться подобрать момент отключения тена. Но может я и ошибаюсь.

Re: Применение термостата 0,1°C в инкубаторе

Posted: 14 Mar 2013 18:49
by spotok
Привет, а гистерезис ты установил какой? Запрограммируй 0,1 градуса.

Re: Применение термостата 0,1°C в инкубаторе

Posted: 14 Mar 2013 20:05
by asicorp2001
spotok, Да стоит дельта 0.1, коррекция стоит 0.

Re: Применение термостата 0,1°C в инкубаторе

Posted: 14 Mar 2013 20:50
by hardlock
asicorp2001 wrote: Но вот можно-ли как-то в программе организовать отсчет времени?
всё можно, только надо полностью переделывать алгоритм...

Re: Применение термостата 0,1°C в инкубаторе

Posted: 16 Mar 2013 21:44
by asicorp2001
Я вот тут поправил немного алгоритм, но вот незадача в CodeVision при формировании hex файла возникает ошибка, хотя сам файл и формируется. Пробовал его прошить, но полная тишина. Может кто глянет на досуге - что можно поправить?

Добавлено спустя 2 минуты 43 секунды:
Да чтоб проще было - добавил строки
void Pidf(void)
{
Tdelta = Tnew-T_LoadOn;
PIDi = PIDi+(Tdelta)/0.1;
// PIDd = ((Tdelta)-TnewErr)/0.1;
PID = (2*(Tdelta))+(1*PIDi);
//+(0*PIDd);
//TnewErr = Tdelta;
if (PID<0)
{ PID = 0;}
delay_ms(PID*100);
}

Re: Применение термостата 0,1°C в инкубаторе

Posted: 16 Mar 2013 21:53
by hardlock
asicorp2001, а ошибка какая и в какой строке?