Page 17 of 109

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

Posted: 25 Feb 2010 23:23
by Andrey
VIK-m» 24 фев 2010 22:39
скажите, есть ли ошибка в пинципиальной схеме в подключении датчика, или ошибка в разводке платы которая сдесь прилагается.==
В схеме ошибки нет, в плате не знаю разводил свою под DIP. У датчика крайние ноги питание (полярность см. на схеме) центральная на PD6 11нога. PD6 через 4.7кОм на +питания.

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

Posted: 26 Feb 2010 04:01
by portos
hardlock wrote: Наверное не ту прошивку вы шьёте. Сейчас попробовал выставить - 55°C - всё получилось. Термостат стоит у меня на обогрев картошки :-)
Прошивка v3.2 (та которая с комментариями.)
150220101669_resize.jpg
прошифка termostat_led_oa_heat та что первая по списку на сайте. Прошивку v3.2 я там не нашол. есле не сложно то ткните носом.

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

Posted: 26 Feb 2010 15:00
by VladZ
День добрый.
Собрал Термостат. Кнопки работают - все устанавливается. А вот температуру индицировать отказывается - постоянно показывает 85.0. При отсоединении датчика 0.0 Пробовал менять прошивки - ничего. Что бы это значило. На датчике напряжение скачит от 1.8В до 4.9В
Датчик включал по обеим схемам - ничего. Сам датчик рабочий, так как при подключении его к другому устройству он нормально индицирует температуру.

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

Posted: 27 Feb 2010 09:52
by androlega
всем добрый день,собрал термостат но также как и у ( VladZ )всё работает кроме того что индикации ни как не меняются ,у меня всегда высвечивается 27.9 градусов,также проверил датчик в другой схеме он рабочий. в чём проблема помогите или просто шара закончилась?

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

Posted: 27 Feb 2010 13:04
by Coviraylhik
Датчик нужно строго DS18b20 у меня на три провода работает нормально ,проверял на -14°C и до +118°C

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

Posted: 27 Feb 2010 23:16
by androlega
да именно этот датчик и стоит даллас 18b20. я не использовал первый разряд подозреваю что мой экземпляр показывает 127.9 градусов

Добавлено спустя 8 минут 53 секунды:
перепроверил схему всё нормально,ошибок нет без датчика нули а с ним 127.9 градусов

Добавлено спустя 1 час 7 минут 12 секунд:
проверьте пожалуйста мою прошивку может в ней проблема,я вижу что есть разница но не уверен в этом проблема или нет моё.rar

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

Posted: 27 Feb 2010 23:38
by Legos
androlega wrote:да именно этот датчик и стоит даллас 18b20. я не использовал первый разряд подозреваю что мой экземпляр показывает 127.9 градусов

Добавлено спустя 8 минут 53 секунды:
перепроверил схему всё нормально,ошибок нет без датчика нули а с ним 127.9 градусов

Добавлено спустя 1 час 7 минут 12 секунд:
проверьте пожалуйста мою прошивку может в ней проблема,я вижу что есть разница но не уверен в этом проблема или нет моё.rar
Подсоедени датчик по трем проводам.

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

Posted: 28 Feb 2010 11:52
by androlega
да по трём проводам

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

Posted: 28 Feb 2010 14:12
by Alexander_KG
Приветствую,всех.Ребята.подскажите пожалуйста можно ли ввести в сему данного устройства аварийную сигнализацию?Тоесть на 38-39 градусов что-б срабатывал звуковой сигнал аварийной температуры или срабатывало реле включающее например.звонок?Может на порты PD2-PD3 в инкубаторе то нужен только один,на нагрев.....

Заранее,огромное спасибо.

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

Posted: 28 Feb 2010 15:51
by MAX]]]
Уважаемый hardlock, собрал ваш термостат! сразу не заработал, оказалась что 18b20 не рабочий, поменял начал работать только по трем проводам! Но работает! и работает отлично! За это автору огромное спасибо! Сверял устройство с лабораторным термометром с точностью 0,1 оказалось что датчик врет на 0,4 градуса в большую сторону. По этому не совсем удобно в пользовании каждый раз вычитать 0,4 градуса, а для инкубатора они могут с играть не очень хорошо! Хотелось бы чтоб автор Пояснил как можна сделать данную калибровку в прошивке. тоесть залил прошивку с сайта, проверил датчик на точность, откорректировал прошивку залил и вот оно "совершенство"!Это первое!
Дальше я проверял устройство на точность поддержания температуры! Проводил это так: поместил настольную лампу в картонную коробку и подключил её через термостат. всё работает темпеатура поддерживается стабильно в приделе 0,2 градуса (при правильном подборе мощности лампы! сразу была лампа на 100 Вт. прыжки были до 0,4-0,5градуса.) но наблюдается очень частое включение и отключение лампы (40-50 в минуту) а это не есть хорошо... по этому вторая просьба чтоб автор всё таки пересмотрел прошивку... нужен на 6-й ноге шим сигнал... (я слышал что сам далас дает точность 0,0625 градуса по 12битной системе можно попробовать).
И последнее , уже не раз вспоминалось про аварийку на 7-й ноге... Уважаемый hardlock, пожалуйста, очень нужно! Это устройство помогло бы многим конструкторам инкубаторов! Решите этот вопрос на уровне прошивки остальное сами решим))) (Я сам еще не опытный в радио технике, учусь так сказать, а с контроллерами вообще дремучий лес!!)

Добавлено спустя 15 минут 27 секунд:
Вот что у меня получилось

Добавлено спустя 2 минуты 10 секунд:

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

Posted: 28 Feb 2010 18:20
by Andrey
MAX]]]» 28 фев 2010 15:51
Уважаемый hardlock, собрал ваСверял устройство с лабораторным термометром с точностью 0,1 оказалось что датчик врет на 0,4 градуса в большую сторону. »»»
Датчик врать не может он таррируется на заводе. Я также проверял на стенде в Держ. метрологии разница 0.0 Проведи такой эксперимент, когда температура стабилизируется, возьмись за провода на расстоянии 10см от датчика и подержи некоторое время. Темп. начнет идти вверх. Так как медь хороший теплопроводник по ним (проводам) может подводиться или отводиться тепло. Поэтому в зону измерения нужно вводить не только датчик , а провод 30-50 см.

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

Posted: 28 Feb 2010 18:42
by MAX]]]
Andrey » 28 фев 2010 18:20
Датчик врать не может он таррируется на заводе...
Я на 100% утверждать не буду, но факт остается фактом... разбежность была.... и не у одного меня даже сам автор это оговаривал! к тому же я встречал терморегулятор в инете на PIKе, там даже было предусмотрено такая операция по калибровке постараюсь найти и кинуть ссылку!

Добавлено спустя 7 минут 57 секунд:
http://www.radioland.net.ua/sxemaid-341.html вот.....

Добавлено спустя 3 минуты 59 секунд:
Andrey я просто может неправильно выразился.. но разбежность присутствует)

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

Posted: 01 Mar 2010 06:50
by Legos
Andrey wrote:MAX]]]» 28 фев 2010 15:51
Датчик врать не может он таррируется на заводе. Я также проверял на стенде в Держ. метрологии разница 0.0 Проведи такой эксперимент, когда температура стабилизируется, возьмись за провода на расстоянии 10см от датчика и подержи некоторое время. Темп. начнет идти вверх. Так как медь хороший теплопроводник по ним (проводам) может подводиться или отводиться тепло. Поэтому в зону измерения нужно вводить не только датчик , а провод 30-50 см.
Врет с заводской точностью до 0.5 градусов.
У меня например испытан последний в инкубаторе с лабораторным ртутным, на ртутном 38.0 на датчике 37.6 - для инкубатора это плохо.
Я тут за несколько дней уже пять блоков на МК собрал.
Данная сборка имеет неточность 100% по калибровке.

Схема на Пике имеет точность 100%, после калибровки гистериса.
Хотелось бы тут тоже такую точность..но автор молчит давно, надоели мы ему наверно :sorry: .
Хотелось бы тож чтоб аварийка была и точность по гистерису (показания по отношению к лабораторным )ртутным термометрам.

P.S. кто собрал схему, проверти плиз такое:
В момент работы блока ( винкубаторе) в режиме включенного реле, резко отключить и включить питание на МК...что у вас произойдет ??? у меня такое МК виснет - а это ужасть если свет моргнет и инкубатор жариться будет, так как управление с релюшки не снимается и тэн/лампа включена постоянно.
P.S.2 это не мой вымысел, на одном из сайтов есть = очень простой термостат на атинити2313= так называется тема и я там увидел вопрос с такой бедой, дай думаю проверю ...и на тебе точно МК виснет.

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

Posted: 01 Mar 2010 12:43
by VladZ
День добрый.
Проблему о которой писал удалось решить.
Во первых зашил прошивку firmware v3.1_universal+Save+HI&LO.rar
В вторых, при подключении по двупроводному интерфейсу понизил сопротивление резистлора с 4к7 до 3к и температура начала отображаться. Вот правда не знаю насколько корректное такое снижение сопротивления, ведь в даташит 4к7.
С ирехпроводным интерфейсом также заработал при штатных номиналах резисторов.

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

Posted: 01 Mar 2010 12:56
by Andrey
По поводу точности датчика мне наверно повезло брал 20 шт. с одной партии. По поводу зависании МК по питанию можна включить ВАЧДОГ, но тот код который предложил автор чета не работает не хочет сбрасывать таймер поэтому путем проб пришел к следующему, включил BOD1и2 кондер 4700мкФ до кренки и 3300мкФ после, блок питания трансф. Подвесить МК пока не удалось.

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

Posted: 01 Mar 2010 18:11
by androlega
всем привет,большое спасибо VladZ за совет, я поставил 2.7 к и у меня тоже заработал,точность вроде не стала хуже проверил с другим градусником совпадения до десятой

Добавлено спустя 4 минуты 32 секунды:
Уважаемый hardlock если можете поясните как нибудь почему у меня только при 2.7 килоома схема заработала нормально,ну в принципе не только у меня

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

Posted: 01 Mar 2010 20:09
by MAX]]]
Legos
P.S. кто собрал схему, проверти плиз такое:
В момент работы блока ( винкубаторе) в режиме включенного реле, резко отключить и включить питание на МК...что у вас произойдет ??? у меня такое МК виснет - а это ужасть если свет моргнет и инкубатор жариться будет, так как управление с релюшки не снимается и тэн/лампа включена постоянно.

У меня тоже ерунда всякая... сбилась температура установки, появилось -99,9 и работала только кнопка "+" пролистал до срабатывания реле все стало на место, проверил дельту, там 0,0... при втором повторе разрыва цепи питания все было нормально. А при третем опять ерунда сразу показал 85,0 температуру, потом начал показывать истинную, дельта осталась без изменений а установленная опять сбилась стала 6,0....

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

Posted: 02 Mar 2010 10:44
by hardlock
Не надоели Вы мне. Просто времени не очень много. Я благодарен Вам за то, что тусуетесь тут и пытаетесь решать проблемы совместно.

Теперь к вопросам.
androlega wrote:Уважаемый hardlock если можете поясните как нибудь почему у меня только при 2.7 килоома схема заработала нормально,ну в принципе не только у меня
В каком-то документе от Даласа упоминалось, что номинал резистора может быть от 1к до 10к. На точность это никак повлиять не может, т.к. датчик цифровой, а на стабильность связи - очень даже может. Вы пошли правильным путём, подобрав резистор. Это нормально.
MAX]]] wrote: сбилась температура установки, появилось -99,9 и работала только кнопка "+" пролистал до срабатывания реле все стало на место, проверил дельту, там 0,0... при втором повторе разрыва цепи питания все было нормально. А при третем опять ерунда сразу показал 85,0 температуру, потом начал показывать истинную, дельта осталась без изменений а установленная опять сбилась стала 6,0....
Это испортился EEPROM (память где хранятся настройки) из-за перебоев с питанием. Правильное питание залог здоровья, кхм... стабильной работы!
Andrey wrote:можна включить ВАЧДОГ, но тот код который предложил автор чета не работает не хочет сбрасывать таймер поэтому путем проб пришел к следующему, включил BOD1и2 кондер 4700мкФ до кренки и 3300мкФ после, блок питания трансф. Подвесить МК пока не удалось.
БОД я отключаю из-за непонятной проблемы при отрицательных температурах - МК постоянно сбрасывается, как будто питание не в порядке. Попробуйте с включенным БОДом охладить устройство до -5°C. Встроенный Вачдог пока проверить не могу - даже термометра нет под рукой.
MAX]]] wrote: Сверял устройство с лабораторным термометром с точностью 0,1 оказалось что датчик врет на 0,4 градуса в большую сторону.
Насчёт точности. Производитель даёт погрешность ±0,5°С. Обычно получается точнее. Есть у меня партия с погрешностью 0,0°С. Для того, чтобы ввести коррекчию в программу надо дописать следующий код

Code: Select all

  Tnew = Tnew + 0;   //коррекция показаний датчика. +1 = +0,1°C; -1 = -0,1°C ну и т.д.
в середине процедуры timer1_ovf_isr
начиная со строки 372 (версия прошивки 3.2 с коментариями) до строки 394 должно получиться так:

Code: Select all

  if (T & 0b10000000) //если отрицательная температура
  { 
    Ff = ~Ff + 1;         //инвертируем значение дробной части и добавляем адын.
    Ff = Ff & 0b00001111; //убираем лишние биты
    
    if (!Ff)              //если дробная часть равна "0"
    {
      T--;                //значение температуры уменьшаем на адын
    }   
    
    Tnew = 1000 - (((~T & 0xFF) * 10) + (Ff * 10 / 16));  //вычисляем значение температуры если T < 0. 
                                                          //Формат хранения - смотри строку 58 этого файла.
  }
  else
  { 
    Tnew = 1000 + (T * 10) + ((Ff * 10) / 16);            //вычисляем значение температуры если Т > 0. 
                                                          //Формат хранения - смотри строку 58 этого файла.
  }    
  Tnew = Tnew + 0;   //коррекция показаний датчика. +1 = +0,1°C; -1 = -0,1°C ну и т.д.
}
else
{
  w1_write(0x44);          //выдаём в шину 1-wire код 0xCC, что значит "Convert T"
}
думаю разберётесь. Вообще хорошо было бы сделать программируемое с кнопок. Но опять таки - сейчас не могу.
MAX]]] wrote:И последнее , уже не раз вспоминалось про аварийку на 7-й ноге... Уважаемый hardlock, пожалуйста, очень нужно! Это устройство помогло бы многим конструкторам инкубаторов! Решите этот вопрос на уровне прошивки остальное сами решим)))
Аварийка... Аварийка... Аварийка... Аварийку надо делать как отдельное устройство с отдельным питанием. А это будет халтурка.
Но если хотите, то щас сообразим побырику тез настройкит через кнопы.

Итак для начала убираем все упоминания PORTD.3 из программы. Потом дополняем процедуру timer1_ovf_isr следующим:

Code: Select all

if (Tnew >= 1360)              //если температура больше 36,0. Как вычисляется температура - см коментарии в самом верху.
{                              
  PORTD.3 = 1;                 //то включаем пищалку, звонок или что там Вы повесите на 
                               //вывод PD3 (вывод 7)
}              
else
{
  PORTD.3 = 0;                 //хватит пищать! 
}
текст выше вставляем после (заметьте - убраны упоминания PORD.3):

Code: Select all

Temp = T_LoadOn + DeltaT;      //Temp - временная переменная.

if ((Tnew >= Temp) & (LoadOn)) //Если температура выше (установленной + Дэльта) и нагрузка включена,
{                              //то выключаем нагрузку
  PORTD.2 = 0;              
  LoadOn = 0;
}             

Temp = T_LoadOn;                //Temp - временная переменная.

if ((Tnew <= Temp) & (!LoadOn)) //Если температура ниже (установленной) и нагрузка выключена,
{                               //то включаем нагрузку
  PORTD.2 = 1;
  LoadOn = 1;  
} 
вообщем готовая, но не проверенная прошивка - во вложении. Корректируйте, проверяйте, выкладывайте. И на меня не сердитесь :oops:

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

Posted: 02 Mar 2010 12:21
by VladZ
День добрый.
Смотрю, что многих беспокоит тема питания МК.
В схеме вывод сброса МК висит в воздухе и поэтому, чтобы в EEPROM не прописывалась всякая билиберда при провалах питания нужно повесить супервизор. Я уже давно и успешно использую дешевую альтернативу (подсмотрено когда-то у UA4NX), а именно подключаю светодиод с 20 ножки (+5В) на первую (анодом на +5В) и с первой ножки резистор 3к3 на корпус.
Еще ни разу при такой защите EEPROM не слетала. А до этого случалось.

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

Posted: 02 Mar 2010 18:34
by Iesaul
Кому нужен даташит DS18B20,на русском языке,сюда:http://depositfiles.com/files/x5c4yyhea

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

Posted: 02 Mar 2010 23:41
by Legos
вообщем готовая, но не проверенная прошивка - во вложении. Корректируйте, проверяйте, выкладывайте.
Господа :).
кто попробовал выложите результат.
А то я даж не знаю на чем пробовать, я их сделал четыре штуки, как для холодильника так и для инкубатора, как на ОК так и на ОА.
И введена ли сюда точность по градусам ? ( ссори я по созданию прошивок танкист и в кучи циферов в HEX файле ни бум бум...даж не знаю где их править :wall: ).

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

Posted: 03 Mar 2010 07:29
by hardlock
Legos wrote:я по созданию прошивок танкист и в кучи циферов в HEX файле ни бум бум...даж не знаю где их править
там не хекс, а исходники на Си

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

Posted: 03 Mar 2010 11:20
by Advent
Для инкубатора сделал режим аларма с 7н. при темп. ниже 35 и выше 40 . Вставил код
if ((Tnew <= 1350)| (Tnew >= 1400))
{
PORTD.3 = 1;

}
else
{
PORTD.3 = 0;
}
Так же установил на чальное значение 37 гр.
if ((eeT_LoadOn > 1400) | (eeT_LoadOn < 1350))
eeT_LoadOn = 1370;
if (DeltaT > 900)
DeltaT = 10;

Регулировку темп. сделал от 35 до 40 гр. (для инкуб этого достаточно). Для этого в файле kdd.c изменил
if (T_LoadOn > 450) на if (T_LoadOn > 1350) и if (T_LoadOn < (2250 - DeltaT)) на if (T_LoadOn < 1400 )

Хотелось бы ещё сделать рег. дельта от 0.1 до 0.5 и с выхода 7н. в режиме аларма чтобы была не 1 на какой либо сигнал,можно сделать отдельно ждущий мулитивибратор но хотелось бы чтобы было поменьше деталей, мож кто знает как сделать сигнал с 7н. И для инкубатора было бы идеально .

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

Posted: 03 Mar 2010 12:37
by hardlock
Advent wrote:Хотелось бы ещё сделать рег. дельта от 0.1 до 0.5
копайте файл kbd.c
Advent wrote: и с выхода 7н. в режиме аларма чтобы была не 1 на какой либо сигнал
поставьте бузер с генератором и всех делов то!

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

Posted: 03 Mar 2010 13:46
by Advent
в файле kdd.c изменяю значение 900 в if (DeltaT < 900) на 5 для макс. предела регулировки 0.5 но почему-то изменений не проиходит что я делая не то мож ещё где-то что-то надо изменить :?: