Page 13 of 27

Re: Термометр на ATtiny2313 и DS18B20

Posted: 31 Jan 2011 22:35
by Artem
Датчик рабочий, проверял на другом термометре. В смысле линия? Провод? Там ведь кроме резистора и гореть нечему. Если только порт МК не спалил...

Re: Термометр на ATtiny2313 и DS18B20

Posted: 01 Feb 2011 07:41
by hardlock
Artem wrote:Если только порт МК не спалил...
если стоит стабилитрон на входе, то спалить сложно, но тоже можно. Попробуйте резистор подстроечный поставить на линию данных (вместо 4,7к) и покрутить... Убрать стабилитрон, если был...

Re: Термометр на ATtiny2313 и DS18B20

Posted: 01 Feb 2011 09:05
by wild wind
Добрый день. Собрал пару термометров и заметил такую вещь что они врут на 1.5 - 2 град с чем это связано не пойму. Где вычитал что рекомендуется опрос датчика делать не чаще 1 раза в 5 секунд чтобы не проиходил внутреннний разогрев. так ли это? Подключены датчики по второй схеме. Зарание спасибо за ответ.

Re: Термометр на ATtiny2313 и DS18B20

Posted: 02 Feb 2011 14:26
by Kazemir
Мне тоже на просторах интернета попадались аналогичные высказывания, вот одно из них дословно -
есть эффект саморазогрева датчика, если часто опрашиваете его. "нормальная" температура будет, если опрос не чаще 1 раз в 5сек, по собственному опыту
Частенько на форуме задаются вопросы насчет завышения показаний температуры, надо будет в этом плане поэкспериментировать!

Re: Термометр на ATtiny2313 и DS18B20

Posted: 04 Feb 2011 05:27
by wild wind
Провел маленький эксперемент, выключил подождал некоторе время и включил, показания не изменились...это говорит что внутрений разогрев это фигня....тут или датчик врет или что то еще... :-(

Re: Термометр на ATtiny2313 и DS18B20

Posted: 04 Feb 2011 17:01
by Artem
Сравнивал термометр на этом датчике и медицинский. Показания отличались на несколько десятых градуса. И судя по тому, как быстро изменяется температура, которая выводится на индикатор при разогреве или охлаждении, опрос там явно чаще чем раз в 5 сек.
Завышать он может, если находится на плате недалеко от того же стабилизатора (они иногда греются), такое было :)

Re: Термометр на ATtiny2313 и DS18B20

Posted: 04 Feb 2011 18:51
by Kazemir
Artem писал
опрос там явно чаще чем раз в 5 сек.
Судя по исходнику опрос примерно один раз в секунду.
Если датчик находится на плате, завышать будет однозначно, он очень чувствителен к окружающей температуре и на изменения реагирует моментально, поэтому монтировать его надо однозначно не на плате и вне корпуса изделия.

Re: Термометр на ATtiny2313 и DS18B20

Posted: 07 Feb 2011 06:20
by wild wind
Kazemir, у меня дачик весит за окном прям рядом с со спиртовым градусником чем больше температура лезет в минус тем больше разница. Около нуля разница минимальна. Оба термометра работают одинаково.

Re: Термометр на ATtiny2313 и DS18B20

Posted: 07 Feb 2011 07:31
by hardlock
wild wind, а ты попробуй датчик вынести на 0,5 - 1 метр от стены дома... Вместе с термометром.

От дома идёт тёплый воздух и нагревает термометр и датчик (кто-то из низ сильнее нагревается). Хотя может ещё сказыватьсясильная нелинейность спиртового термометра.

Re: Термометр на ATtiny2313 и DS18B20

Posted: 11 Feb 2011 10:48
by bablo_78
Уважаемый Hardlock. Подскажите пожалуйста (желательно кусочком кода) как перевести датчик DS18B20 в режим 9-бит. Я взял за основу термометр который сделал TELEK, а у него там датчик DS1820 и поэтому мой термометр завышает температуру. К сожалению в С я полный ноль. Насколько я понимаю
есть два пути: или перевести датчик в 9-бит или отбросить 3 бита, но как это сделать в коде я не знаю. Заранее благодарен.

Re: Термометр на ATtiny2313 и DS18B20

Posted: 11 Feb 2011 17:18
by hardlock
bablo_78, ну так и спросите у Телека. Я же его код не видел.

Re: Термометр на ATtiny2313 и DS18B20

Posted: 11 Feb 2011 19:58
by bablo_78
Ну спасибо что подсказали,
но я по-моему задал конкретный вопрос
hardlock wrote:Подскажите пожалуйста (желательно кусочком кода) как перевести датчик DS18B20 в режим 9-бит.
Вы и подсказали, спасибо.

Re: Термометр на ATtiny2313 и DS18B20

Posted: 11 Feb 2011 21:30
by hardlock
bablo_78 wrote:как перевести датчик DS18B20 в режим 9-бит.
смотрите мануал - я не помню, а даташита нету под рукой.

Re: Термометр на ATtiny2313 и DS18B20

Posted: 14 Feb 2011 09:35
by bablo_78
Может кто нибудь поможет. Надо написать кусок кода для перевода датчика DS18B20 в режим 9-бит. Я использую готовый проект от TELEKa, там у него датчик DS1820, чтобы не переписывать код пересчета (потому как в С я полный 0) его нужно перевести в 9-бит, тем более что так универсальнее - можно будет любые использовать (у DS1820 и DS18S20 нет "configuration register"). Да и еще TELEK не использует библиотеку CVAVR - DS18B20.H, он просто считывает два байта, а если в библиотеку добавить эту библиотеку то код будет превышен.
Вот ссылка на исходники http://hardlock.org.ua/download/file.php?id=49 на второй странице темы "Термометр на ATtiny2313 и DS18B20", чуть раньше на 1 странице проект для PROTEUSa.

Re: Термометр на ATtiny2313 и DS18B20

Posted: 14 Feb 2011 10:36
by hardlock
bablo_78 wrote:Да и еще TELEK не использует библиотеку CVAVR - DS18B20.H, он просто считывает два байта
и у меня тоже не используеся эта библиотека.

Re: Термометр на ATtiny2313 и DS18B20

Posted: 14 Feb 2011 11:08
by bablo_78
Так может напишет кто код как поменять разрешение датчика или мне из-за 2-3 строк учить С?

Re: Термометр на ATtiny2313 и DS18B20

Posted: 14 Feb 2011 12:50
by hardlock
bablo_78 wrote:или мне из-за 2-3 строк учить С?
так возмущаетесь, как будто кто-то Вам должен. Для вашего случая Си учить не надо, а только посмотреть в даташит по датчику и послать нужные команды, по аналогии с уже готовым кодом. Мне сейчас это делать некогда.

Re: Термометр на ATtiny2313 и DS18B20

Posted: 14 Feb 2011 16:19
by bablo_78
Я возмущаюсь? Да не в коем случае. Просто что не спросишь - "смотрите даташит", "читайте хелп", "гуглите" и т.д. Зачем тогда форум. Я работаю сист. администратором, если бы я на все вопросы так отвечал, я бы сидел без работы. А по своему опыту скажу, что мне проще сделать(написать) чем учить людей как это сделать(написать).

Re: Термометр на ATtiny2313 и DS18B20

Posted: 14 Feb 2011 16:53
by hardlock
bablo_78 wrote: А по своему опыту скажу, что мне проще сделать(написать) чем учить людей как это сделать(написать).
мне тоже проще написать, чем объёснить, только сейчас совсем не до этого...

ЗЫ: я тоже сисадмин... правда + энергетик, электрик и т.д.

Re: Термометр на ATtiny2313 и DS18B20

Posted: 15 Feb 2011 16:52
by bablo_78
Я попробовал написать так:
w1_write(0xCC); //SKIP ROM [CCh]
DisplayData8x();
w1_write(0x4E); //WRITE SCRATCHPAD [4Eh]
DisplayData8x();
w1_write(0); //TH
DisplayData8x();
w1_write(0); //TL
DisplayData8x();
w1_write(0x1F); //Config 9-bit
w1_write(0xCC);//SKIP ROM [CCh]
DisplayData8x();
w1_write(0x48);//Copy SCRATCHPAD

Все равно завышает температуру.

Добавлено спустя 16 часов 18 минут 49 секунд:
Собрал адаптер на COM-порт из этой статьи http://digit-el.com/files/open/ds18x20/ds18x20.html . Там написано что программа умеет писать бит конфигурации в датчик, а кнопка выбора разрешения не активна (((.

Re: Термометр на ATtiny2313 и DS18B20

Posted: 15 Feb 2011 23:51
by Andrejka
Господа! Тоже настоятельно присоединяюсь к просбе о переделке кода Телека под DS18B20 . Данке шон!

Re: Термометр на ATtiny2313 и DS18B20

Posted: 16 Feb 2011 01:27
by bablo_78
Andrejka wrote:
* Цитата выделенного текста
* Пожаловаться на это сообщение
* Ответить с цитатой

Re: Термометр на ATtiny2313 и DS18B20

Непрочитанное сообщение Andrejka » 16 фев 2011 00:51
Господа! Тоже настоятельно присоединяюсь к просбе о переделке кода Телека под DS18B20 . Данке шон!

Парень тебе несказанно повезло. После недельного копания кода (а в С я полный 0) я наконец то победил работу с датчиком DS18B20.
Все было очень просто, по другому вычислялись байты отвечающие за температуру:в коде TELEKA есть строки (для DS18S20/DS1820)

cLSB=cLSB>>1;
if (cMSB & 0xF0)
cLSB=cLSB | 0b10000000;
T=cLSB;

Надо поменять на то что написано у HARDLOCKa в оригинальном коде статьи (для DS18B20. Только у него там t1 и t2 вместо cMSB и cLSB)

cMSB = cMSB << 4;
cLSB = cLSB >> 4;
T = (cMSB & 0xF0) | (cLSB & 0x0F);

и будет тебе счастье.
Большое спасибо HARDLOCKу и TELEKу за девайс.
З.Ы. Пока бродил по инету встречал еще одного человека который спрашивал тоже самое, только в другом форуме. Вот он и нашелся! )

Re: Термометр на ATtiny2313 и DS18B20

Posted: 16 Feb 2011 10:44
by Andrejka
О большое спасибо! Заменил строчки кода, перекомпилил, прошил, все пучком. Арбаитен гут;)

Re: Термометр на ATtiny2313 и DS18B20

Posted: 17 Mar 2011 16:00
by Cannibal Corpse
Огромное спасибо вам за схему, мой первый пинок к контроллерам. Только датчик отказался работать по двухпроводной схеме, высвечивал "127,9". Попробовал по трехпроводной - получилось.
Один вопрос: можно ли модернизировать термометр, что бы он выдавал линейный температуре аналоговый сигнал?

Re: Термометр на ATtiny2313 и DS18B20

Posted: 18 Mar 2011 08:50
by hardlock
Cannibal Corpse wrote:можно ли модернизировать термометр, что бы он выдавал линейный температуре аналоговый сигнал?
теоретически - да. на борту есть ШИМ.... но практически - хватит ли памяти и т.д. - не знаю.