Перейти к содержанию
    

Забавное поведение датчика BS18B20

2. датчики ОЧЕНЬ ЧУВСТВИТЕЛЬНЫЕ
Вот!! Ваши слова да Богу в уши. Т.е. мне. Чуть раньше. :biggrin:

На фото датчики расположены перпендикулярно батарее с личной температурой +56,72 С (замерено DS18B20) . На расстоянии ~ 40 см. - этого вполне хватало при 12 битном разрешении для такого разброса. Повернул их параллельно - раброс 0,1 - 0,2.

3. датчики всегда саморазогреваются при постоянном поданном питании...следует ожидать завышение температуры на 2-4 градуса
Что-то DS и APP об этом молчат или не нашёл?

arv.radioliga.com
:smile3046: Добавил в закладки.

 

Я в таком случае выводил "голые" дампы с датчиков,
кстати , твоя мысль натолкнула подключиться к терминалке через MAX232 , так что видел весь обмен с датчиками побитно. За , что тебе отдельное спасибо!

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

если кому интересно, то на моем сайте arv.radioliga.com по теме 1-wire довольно много программных наработок - от калькулятора CRC до утилит, способствующих отладке самодельных slave-девайсов с этим интерфейсом.

Вот это море информации! Спасибо!!! :rolleyes:

За , что тебе отдельное спасибо!

:rolleyes:

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ds18b20 (ds18b20+ ?)

никаких паразитов, никаких стометровых лапшей по промзонам, всеми тремя ногами воткнуто напрямую в клеммы на плате, столе и в обычной жилой комнате

 

 

 

а). инициализация:

 

reset pulse

0xCC = "Skip ROM"

 

0x4E ... ""Write (to) Scratchpad"

0b01111101 ... "T low"

0b11001001 ..."T high"

0b01111111 ... 12 бит, т.е. разрешение 0.0625 градуса

 

reset pulse

0xCC ... "Skip ROM"

 

0x48 ... "Copy (from) Scratchpad (to EEPROM)"

 

 

 

б). раз в секунду:

 

reset pulse

0xCC ... "Skip ROM"

0xBE ... "Read Scratchpad", контрольная сумма сходится (или криво посчитана, но даже если - интерес не в ней, а далее по тексту)

 

reset pulse

0xCC ... "Skip ROM"

0x44 ... "Convert T"

 

 

 

в). дунул феном на датчик, убрал фен, датчик медленно остывает, внимательно смотрю на данные с него около 32 градусов:

 

10 0000 0000 = 32.0 С

01 1111 1111 = 31.9 С ___ 10 1111 1111 = 47.9 С ... старший байт так и остался

01 1111 1110 = 31.8 С ___ 10 1111 1110 = 47.8 С ... старший байт так и остался

01 1111 1101 = 31.7 С ___ 10 1111 1101 = 47.7 С ... старший байт так и остался

01 1111 1100 = 31.6 С ... старший байт просра актуализировался на конец

и далее остывает уже без вопросов

 

Так артефакт замечен при охлаждении конкретно на отметке 32.0 градуса ("сырые" с датчика двоичные данные соответственно и внимательно): старший байт обновляется с опозданием относительно младшего байта. Стабильно и повторяемо происходит.

В обратную сторону (при нагреве от 31 до 32+ градусов) всё выглядит прилично... но при быстром нагреве артефакт получается тоже. Но менее удобным для рассмотрения и осознавания.

 

 

 

На физический смысл артефакта имело бы смысл взмедитнуть через разъяснение интерфейса протокола библиотеки для принципа действия датчика внутри.

Где-то раньше попадалось мне такое разъяснение, но потерял его я - и осталось в в гугле моём по теме только про интерфейсы с библиотеками теперь. И всё это го оно разное одинаковое уныло, даже с пересказами на русский язык.

Изменено пользователем нечитатель

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А интерфейс-то у Вас правильно реализован? Я имею в виду программно/аппаратно. М.б. имеет смысл вместо термодатчика подключить тот же DS1990 и сверить считанный серийник с написанным на корпусе. Да варьировать при этом питанием, температурой, фазой луны)))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ds18b20 (ds18b20+ ?)

никаких паразитов, никаких стометровых лапшей по промзонам, всеми тремя ногами воткнуто напрямую в клеммы на плате, столе и в обычной жилой комнате

...

0b01111111 ... 12 бит, т.е. разрешение 0.0625 градуса

...

раз в секунду:

 

Преобразование при такой разрядности занимает время порядка секунды (750мс).

Вполне можно нарваться на пограничное значение, что преобразование еще не закончилось, а результат уже считывается.

Попробуйте увеличить задержку до 10 секунд - опрашивать этот датчик все равно часто не нужно, поскольку будет саморазогрев.

 

Ну, и тайминги слотов проверить - может не правильно различаются "0" и "1".

 

Кстати, CRC совпадает?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...