Простой термометр для дома с двумя датчиками DS18B20.

Вопросы и замечания по статьям и схемам, представленным на нашем сайте

При поддержке РадиоКОТструктор.ру


Аватара пользователя
Gigavolt
Друг Кота
Сообщения: 4450
Зарегистрирован: Ср дек 05, 2007 19:39:08
Откуда: Мурманск

Сообщение Gigavolt »

А почему 0,5 градуса ?Без обид,собирал описанный в Радио 'Термометр-термостат'Шаталова,дак он с датчиками DS1820 обеспечивает точность 0,1 градуса.Сужу по показаниям индикатора,меняются через 0,1:).Так же согласен,что дома достаточно мерять температуру с точностью до градуса.Просто поиски истины,ничего более:).
Последний раз редактировалось Gigavolt Вс авг 24, 2008 03:46:58, всего редактировалось 1 раз.
Аватара пользователя
Kotische
Опытный кот
Сообщения: 885
Зарегистрирован: Сб июл 19, 2008 02:16:33
Откуда: Саратов

Сообщение Kotische »

Gigavolt писал(а):А почему 0,5 градуса ?Без обид,собирал описанный в Радио 'Термометр-термостат'Шаталова,дак он с датчиками DS1820 обеспечивает точность 0,1 градуса.
0.5*С - это штатное ( 9 бит ) разрешение микросхемы DS1820 в стандартном режиме.
Даташит писал(а):The DS18S20 Digital Thermometer provides 9-bit centigrade temperature measurements

В режиме High-Resolution она должна давать разрешение 0.06*С.
Аватара пользователя
LINKS_234
Поставщик валерьянки для Кота
Сообщения: 2296
Зарегистрирован: Пн июл 14, 2008 18:12:37

Сообщение LINKS_234 »

вроде пролистал весь ДШ на DS1820 и не увидел там ничего отличающегося от штатного режима в 8бит данных + 8 бит знак температуры .

пересмотрю ещё раз ...
пересмотрел . ничего похожего на расширение разрешения в ДШ нету , так что или что-то не то с источниками , или ДШ не такой . пока отправлю админу такие прошивки , а если у кого-либо есть описание команды на расширение разрешения , то позже попытаюсь перелопатить прошивку .
есть вопросы ? чего-то не знаешь ? [url=http://s61.radikal.ru/i174/1006/79/bc6a635c1451.jpg][color=blue][b]прежде всего смотри это[/b][/color][/url]
Аватара пользователя
Kotische
Опытный кот
Сообщения: 885
Зарегистрирован: Сб июл 19, 2008 02:16:33
Откуда: Саратов

Сообщение Kotische »

LINKS_234 писал(а):вроде пролистал весь ДШ на DS1820 и не увидел там ничего отличающегося от штатного режима в 8бит данных + 8 бит знак температуры.
TEMPERATURE REGISTER FORMAT Figure 2
Да, так и есть, 8+1=9 бит
только это не совсем знак, это называется дополнительный код... :roll:

LINKS_234 писал(а):ничего похожего на расширение разрешения в ДШ нету
Вот оно
Resolutions greater than 9 bits can be calculated using the data from the temperature, COUNT REMAIN
and COUNT PER °C registers in the scratchpad. Note that the COUNT PER °C register is hard-wired to
16 (10h). After reading the scratchpad, the TEMP_READ value is obtained by truncating the 0.5C bit
(bit 0) from the temperature data (see Figure 2).


Вечерком сляпаю програмку, и выложу исходник... :roll:
Аватара пользователя
LINKS_234
Поставщик валерьянки для Кота
Сообщения: 2296
Зарегистрирован: Пн июл 14, 2008 18:12:37

Сообщение LINKS_234 »

Kotische писал(а):только это не совсем знак, это называется дополнительный код... :roll:

зинаю :) только он немного растянут ... на целый байт :)))

Вот оно
Resolutions greater than 9 bits can be calculated using the data from the temperature, COUNT REMAIN
and COUNT PER °C registers in the scratchpad. Note that the COUNT PER °C register is hard-wired to
16 (10h). After reading the scratchpad, the TEMP_READ value is obtained by truncating the 0.5C bit
(bit 0) from the temperature data (see Figure 2).


Вечерком сляпаю програмку, и выложу исходник... :roll:


у меня ДШ неправильный :( поиском ничего не находит в ДШ .
ДШ на 155,2 кб .
а свои варианты уже отправил на добавление к статье .

всёравно не допонимаю как повысить разрешалово - или командой задавать , или же считывать из временной памяти ?
есть вопросы ? чего-то не знаешь ? [url=http://s61.radikal.ru/i174/1006/79/bc6a635c1451.jpg][color=blue][b]прежде всего смотри это[/b][/color][/url]
Аватара пользователя
Kotische
Опытный кот
Сообщения: 885
Зарегистрирован: Сб июл 19, 2008 02:16:33
Откуда: Саратов

Сообщение Kotische »

LINKS_234 писал(а):у меня ДШ неправильный :(

Выложил даташит к себе на страничку: Даташит на ds18s20

LINKS_234 писал(а):всёравно не допонимаю как повысить разрешалово - или командой задавать , или же считывать из временной памяти ?
Там кроме температурного есть ещё регистры в которых хранятся недостающие биты...
ща попробую запрограмить... если получится - выложу исходник :)))
Аватара пользователя
Kotische
Опытный кот
Сообщения: 885
Зарегистрирован: Сб июл 19, 2008 02:16:33
Откуда: Саратов

Сообщение Kotische »

Тааакс...
припаял микросхему, подправил програму...
получил удивительные результаты, вполне стыкующиеся с даташитом :)))

Итого:
COUNT_PER_C = SCRATCHPAD[7] = 10h = константа
COUNT REMAIN = SCRATCHPAD[6] = от 01h до 10h = меняется

протокол работы програмы
1 столбец = SCRATCHPAD[0]
2 столбец = SCRATCHPAD[1]
3 столбец = SCRATCHPAD[6]
4 столбец = SCRATCHPAD[7]

36h 00h 10h 10h
36h 00h 0Fh 10h
36h 00h 0Bh 10h
37h 00h 08h 10h
37h 00h 06h 10h
37h 00h 05h 10h
37h 00h 04h 10h
37h 00h 02h 10h
37h 00h 01h 10h
38h 00h 0Fh 10h
38h 00h 0Fh 10h
38h 00h 0Eh 10h
38h 00h 0Dh 10h
38h 00h 0Ch 10h
38h 00h 0Ah 10h
38h 00h 09h 10h
39h 00h 08h 10h
39h 00h 08h 10h
39h 00h 07h 10h
39h 00h 07h 10h
39h 00h 06h 10h
39h 00h 05h 10h
39h 00h 04h 10h
39h 00h 03h 10h
39h 00h 02h 10h
3Ah 00h 0Eh 10h
3Ah 00h 0Ah 10h
3Bh 00h 08h 10h
3Bh 00h 07h 10h
3Bh 00h 06h 10h
3Bh 00h 05h 10h
3Bh 00h 04h 10h
3Bh 00h 03h 10h
3Bh 00h 02h 10h
3Bh 00h 01h 10h
3Bh 00h 01h 10h
3Bh 00h 01h 10h
3Bh 00h 01h 10h
3Ch 00h 10h 10h
3Ch 00h 0Fh 10h

Видно что смена значения температуры происходит при переходе значения SCRATCHPAD[6] с 01h -> 10h и с 09h -> 08h
Я бы предложил вычислять недостающие биты так:
Tемпература( биты с 11 по 15 ) = SCRATCHPAD[1] биты с 0 по 4
Tемпература( биты с 4 по 10 ) = SCRATCHPAD[0] биты 1 по 7
Tемпература( биты с 0 по 3 ) = (10h - SCRATCHPAD[6]) у результата используем биты с 0 по 3
и получившееся целое число считать температурой в 1/16*С долях градуса Цельсия :idea:

Итого: у 18s20 разрешение получилось 0.06*С
такое же как и у 18b20 :)))
Аватара пользователя
LINKS_234
Поставщик валерьянки для Кота
Сообщения: 2296
Зарегистрирован: Пн июл 14, 2008 18:12:37

Сообщение LINKS_234 »

а теперь ещё один вопрос на засыпку :
DS1820 и DS18S20 одинаковые ??? почему-то мне казалось что это разные датчики . даже когда я покупал DS18B20 в прайсе были и простые 1820 и 18S20 .
есть вопросы ? чего-то не знаешь ? [url=http://s61.radikal.ru/i174/1006/79/bc6a635c1451.jpg][color=blue][b]прежде всего смотри это[/b][/color][/url]
Аватара пользователя
Kotische
Опытный кот
Сообщения: 885
Зарегистрирован: Сб июл 19, 2008 02:16:33
Откуда: Саратов

Сообщение Kotische »

LINKS_234 писал(а):а теперь ещё один вопрос на засыпку :
DS1820 и DS18S20 одинаковые ??? почему-то мне казалось что это разные датчики ... в прайсе были и простые 1820 и 18S20 .

Апаратно они разные, програмно одинаковые.
1820 - это старая (слегка глючная) микросхемя давно снятая с производства.
18S20 - новая улучшенная микросхема - полный аналог, умеющая нормально работать на паразитном питании и длинной (до 300м) линии.
Програмно они абсолютно идентичны.
Аватара пользователя
LINKS_234
Поставщик валерьянки для Кота
Сообщения: 2296
Зарегистрирован: Пн июл 14, 2008 18:12:37

Сообщение LINKS_234 »

спасибо за информацию .
думаю не буду делать пока новую прошивку , к тому же датчиков нету .
если хотите - можете выложить свою версию прошивки , но не думаю что для домашнего использования понадобиться такое разрешение :) 0.5 градуса по сути не сильно заметны :)

да , кстати , исходники и окончательная схема термометра , которые отправлял админу на добавление к статье :
Вложения
02.gif
окончательная схема термометра
SB1 - кнопка без фиксации (парралельно ей можно добавить конденсатор 10нФ для устранения возможного дребезга)
(22.48 КБ) 1122 скачивания
term-LINKS_2_DS18B20.c
2-ух строчник
датчики DS18B20
(12.45 КБ) 1061 скачивание
term-LINKS_2_DS1820.c
2-ух строчник
датчики DS1820
разрешение 0.5 *С
(12.54 КБ) 831 скачивание
есть вопросы ? чего-то не знаешь ? [url=http://s61.radikal.ru/i174/1006/79/bc6a635c1451.jpg][color=blue][b]прежде всего смотри это[/b][/color][/url]
гип
Родился
Сообщения: 5
Зарегистрирован: Вт авг 19, 2008 06:47:22
Откуда: Стерлитамак

Сообщение гип »

По DS1821+ такая проблема. По алгоритму high resolution необходимо применение команды 41h для последующего получения значения count_per_C. Однако после нее основной 8-битный регистр температуры "замораживается" на значении 125 и все измерение накрывается. Статусный регистр остается без изменений. Испытал несколько экземпляров - это не брак. Подскажите, что не так.
гип
Родился
Сообщения: 5
Зарегистрирован: Вт авг 19, 2008 06:47:22
Откуда: Стерлитамак

Сообщение гип »

Попробовал выдерживать паузу до завершения температурной конверсии, прежде чем подавать дальнейшие команды - проблема разрешилась: разрешение в среднем 150 единиц на градус.
Аватара пользователя
dimon-790
Мучитель микросхем
Сообщения: 442
Зарегистрирован: Пт авг 29, 2008 09:22:37
Контактная информация:

Сообщение dimon-790 »

Может ктонить выложить алгоритм работы с ds18b20???ООООчень надо весь инет перерыл нашел только это


Restart:
;Сброс всех устройств
;Подсаживаем линию
; задержка на 700мкс
;отпускаем линию
;Задержка в 65мкс,
;проверка сигнала
;уровень сигнала равен 0 передача управления дальше на3
;error уровень Равен 1 =обрыв линии
;3 формируем задержку в 500мкс проверяем уровень сигнала
;ок =уровень сигнала равен 1 переход на Readbit
;error уровень равен 0 =линия закорочена
;в переменную помешаем код ошибки и выходи 0=ок
reti
Readbit:
;Чтение чтение одного бита из устройства
;Формируем синхроимпульс, подсаживаем линию =задержка 1мкс отпускаем линию снова задержка 13мкс
;считываем уровень сигнала помешаем кудато
;заполняем слот задержкой в 60-120мкс (60мкс)
reti
writebit0:
;Запись в слот нулевого значения
;подсадить линию
;задержка в 80мкс
;отпустиь линию
;
reti
writebit1:
;Запись в слот единичного значения
;подсадить линию
;задержка в 4,5мкс
;отпустиь линию
;задержка в 75мкс
reti

но смущат одно, где приём 9-12 бит самой информации :shock: ?
Аватара пользователя
dimon-790
Мучитель микросхем
Сообщения: 442
Зарегистрирован: Пт авг 29, 2008 09:22:37
Контактная информация:

Сообщение dimon-790 »

Вымерли все чтоли...??? :roll: впрочем уже почти разобрался Большое спасибо!!! за помощ.
Dj.Boom
Родился
Сообщения: 9
Зарегистрирован: Сб май 17, 2008 00:22:57

Сообщение Dj.Boom »

Собрал с 16 сегметным индикатором показывет ероглефы не посдскажете в чем дело?

Да инепонял где схема на 4 датчика?
Аватара пользователя
LINKS_234
Поставщик валерьянки для Кота
Сообщения: 2296
Зарегистрирован: Пн июл 14, 2008 18:12:37

Сообщение LINKS_234 »

dimon-790 , все датчики DS18*20* работают с двумя байтами . младший байт всегда температура , а старший байт - или один знак , или знак и старшие биты температуры . всё зависит от модели . чтобы МК не загружать можно считать всего один бит знака , а все остальные пропустить , что там и реализованно .

Dj.Boom , 16 сегментов - это не полная спецификация индикатора , т.к. есть 16*1..16*4 . я не телепат .
что касается 4-ёх датчиков - не пойму где вы такое увидели ? если уж охота прицепить 4 датчика , то можно по два их комутировать , или же прицепить на разные ноги МК и в программе при одном алгоритме перебрасывать ноги , т.к. реализации считывания более 2-ух датчиков на 1 ноге я не напишу - слишком замудрёный алгоритм . а ещё проще повесить на каждую ногу по одному датчику - программа сильно упроститься , благо датчиков не много и ноги есть свободные . ещё советую почитать всю тему .
есть вопросы ? чего-то не знаешь ? [url=http://s61.radikal.ru/i174/1006/79/bc6a635c1451.jpg][color=blue][b]прежде всего смотри это[/b][/color][/url]
Dj.Boom
Родился
Сообщения: 9
Зарегистрирован: Сб май 17, 2008 00:22:57

Сообщение Dj.Boom »

16*1. Вообщем попробывал разные прошивки одна краказябра выводится.

Вот наваял завтра буду пробывать это.
Вложения
term.rar
Схема в Протеусе v6 и прошивка термометра на 6 датчиков.
(19.12 КБ) 475 скачиваний
Аватара пользователя
LINKS_234
Поставщик валерьянки для Кота
Сообщения: 2296
Зарегистрирован: Пн июл 14, 2008 18:12:37

Сообщение LINKS_234 »

вообще у вас судя по всему какой-то кривой индикатор . авторские прошивки нормально работают с однострочником , мои - с двухстрочником . свою я проверял и точно ещё один человек . всё без проблем (хотя всётаки проблема есть с обнулением ЖКИ - команда 0x01 не проходит и начинают появляться кракозяблы , но команда там только 1 раз встречается при инициализации ).

PS: возможно ещё придётся с таймингами поиграться на вывод в ЖКИ . да , ещё проблемы были с установкой фьюзов - деление на 8 не все убирали . тогда и будут кракозяблы.
есть вопросы ? чего-то не знаешь ? [url=http://s61.radikal.ru/i174/1006/79/bc6a635c1451.jpg][color=blue][b]прежде всего смотри это[/b][/color][/url]
Dj.Boom
Родился
Сообщения: 9
Зарегистрирован: Сб май 17, 2008 00:22:57

Сообщение Dj.Boom »

понятия не имею в чем прикол.
Но собрал свою схему все пашет. датчиков можно подключать от 0 до 8.
Dj.Boom
Родился
Сообщения: 9
Зарегистрирован: Сб май 17, 2008 00:22:57

Сообщение Dj.Boom »

доработал прошивку. Исправил некоторые мелкие огрехи и добавил точность теперь измерений 0.1

датчики забыл сказать ds1820.
Вложения
term.rar
(3.91 КБ) 559 скачиваний
Ответить

Вернуться в «Статьи»