Меню

Ds18b20 калибровка датчика flprog

Самое простое добавление датчиков в сервис Народный мониторинг в программе FLProg.

В данной статье подключим датчик DS18B20 к Arduino и выведем значения с датчика на сервис Народного мониторинга.

Для этого нам понадобится:

Вот так выглядит самый распространенный вид датчика DS18B20

Датчик DS18B20 работает по шине 1-Wire и у него есть несколько вариантов подключения вот несколько из них:

По схеме подключения видно что датчик подключен к 6 пину ардуино.

В программе FLProg настраивается все очень просто.

Вот схема устройств в программе FLProg:

Если не хотите пользоваться программой FLProg то необходимо скопировать программный код приведенный ниже и вставить его в программу Arduino IDE и загрузить этот программный код в саму плату Arduino.

Демонстрация работы данной программы можно увидеть в видео приведенном в конце статьи.

Подробности в видео

Источник

Датчик температуры DS18B20

Основные характеристики датчика DS18B20 :

  1. Уникальный интерфейс 1-Wire Требуется только один контакт для связи
  2. Каждое устройство имеет уникальный 64-битный серийный адрес устройства который хранится в ROM
  3. Питание датчика в диапазоне температур от 3 вольт до 5,5 вольт
  4. Диапазон измеряемых температур от -55 0 C до +125 0 C (-67 0 F до +257 0 F)
  5. Программное обеспечение совместимо с DS1822
  6. Доступен в трех вариантах корпусов 8-Pin SO (150 mils), 8-Pin µSOP, и 3-Pin TO-92

Блок схема датчика DS18B20

Датчик температуры DS18B20 работает с arduino по протоколу передачи данных 1-Wire® и позволяет подключить несколько датчиков на одну шину.

Датчики подключаются к arduino двумя вариантами:

    1. Внешнее подключение ( по трем проводам )
    2. Паразитное подключение ( по двум проводам )

Мы рассмотрим внешнее подключение в котором обмен данными осуществляется по средней ноге датчика DQ . Между ногой DQ и VDD требуется подключить резистор номиналом 4,7 кОм. Питание подключается к ногам VDD и GND, а именно VDD подключаем к + питания 5 вольт, а GND к минусу питания ( земля). DQ подключаем к цифровому пину на Arduino

Если требуется подключить больше датчиков , то добавляем дополнительные датчики по схеме

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

Источник

DS18B20

Зонд для почвы в теплице.

Зонд для почвы в теплице. Зонд сделан из сломанного зарядника. Принцип работы основан на изменении емкости от диэлектрической проницаймости и влиянии емкостного сопротивления в RC делителе на амплитуду переменного тока высокой частоты. Преимущества данного метода в отсутствие электролиза и влияния электролитов на показания. Электроды (сварочные) вплавляются вместо вилки паяльником. В моем варианте добавлен датчик температуры …

Простой робот и метеостанция для квартиры.

Программа напоминает простейший искусственный интеллект по этому не требуется внешнее управление, но можно установить bluetooth модуль и для него программу от FLprog. Можно установить модуль инфракрасного дистанционного пульта. Вполне бюджетная конструкция сделана из куска оргалита. На нем установлены датчики: ультразвуковой дальномер, тепловой датчик, инфракрасный датчик, можно дополнять и другими. Два передних колеса с редуктором, два …

Часы на матричных дисплеях

Небольшие уличные часы с термометром. Источник: https://yadi.sk/d/UyF7YUVh3FtPsp Добавил: schurik_84

Голосовой термометр от -40 до +40

Собран на DS20B2, можно подключить и другие термодатчики, внеся изменения. Голосовые файлы записаны на СД карте (в составе СД модуля) и используется СД блок, недавно выложенный здесь. Количество файлов увеличен до 28, в проекте используются не все. Цифры 11-19 составлены из файлов 1-9 и «надцать», 21-29 из 20 и 1-9 и тд. Внутри проекта сделан …

Читайте также:  Датчик тахометра пежо 306

Термостат газового котла с управлением по CMC

Здравствуйте Всем. Реализовано — управление температурой в помещении управляя котлом через штатный вход внешнего термостата, косвенное определение неисправности котла и включение резервного источника тепла — тэн \ калорифер, получение информации о текущей температуре в помещении, контуре отопления. Не реализовано — получение баланса на номере тел. вся инфа — https://yadi.sk/d/njRKtMhk3AEcbY ОГРОМНАЯ БЛАГОДАРНОСТЬ АВТОРУ FLPROG за идею, …

Часы с термометром (метеостанция)

Давно хотел попробовать сделать что либо на ардуино. И в конце концов приобрел на Али-экспрресс ардуино нано, двухстрочный дисплей, часы реального времени, датчик температуры и влажности DHT22, а также датчик температуры DALLAS DS18B20. Однако надежды, что получится выучить С+ за короткое время мягко говоря не оправдались, и поэтому железо пол года лежало в ящике стола. …

Часы-будильник с температурой, на MAX7219 и светодиодной матрици 8х8

Установка времени осуществляется кнопкой на Pin-6, зажать на пол сек и отпустить (будет мигать светодиод установленный на Pin-10) выставить время затем снова нажать на 5 сек чтобы время установилось . Установка будильника кнопкой на Pin-9, зажать на 1 сек (будет мигать светодиод установленный на Pin-10) и отпустить выставить время затем снова нажать на 3 сек чтобы …

Контроль температуры в серверных шкафах и управление работой вентиляторов

Серверная на станции где я работаю, как и положено находится в отдельном помещении. Для охлаждения серверов там установлено два кондиционера. К сожалению это обычные бытовые модели, так что регулярно то один, то другой находятся в ремонте. Руководство отдела, зная о моей работе над проектом FLProg, предложило создать систему мониторинга температуры в серверных шкафах, и управления …

Датчик температуры DS18B20

Основные характеристики датчика DS18B20 : Уникальный интерфейс 1-Wire Требуется только один контакт для связи Каждое устройство имеет уникальный 64-битный серийный адрес устройства который хранится в ROM Питание датчика в диапазоне температур от 3 вольт до 5,5 вольт Диапазон измеряемых температур от -550C до +1250C (-670F до +2570F) Программное обеспечение совместимо …

Источник

Arduino.ru

Калибровка датчика DS18b20

Прошу подсказать сталкивался ли кто то с такими проблеммами с температурным датчиком DS18b20. Возникли у меня подозрения, что брешит у меня датчик температуры. Решил его проверить. Закипятил воду и опустил в кипящую воду датчик. При грубом приблежении считаю, что вода кипит при температуре 100 градусов (не учитываю погрешность на атмосферное давление, поскольку я нахожусь не в горах). Датчик показывает 93 градуса. На форуме встречал обсуждение, что эти датчики могут завышать немного температуру при измерениях, а у меня получается наоборот, температура занижается и причем значительно около 7%.

И вот сам вопрос. Как можно откалибровать датчик и вообще возможно ли это сделать?

Есть мысль провести простую калибровку по двум точкам 0 градусов и 100 градусов, составить уравнение прямой и записать это уравнение в скетч. Но возникло одно НО! Чобы построить график необходимо иметь 2 параметра один из которых будет температура и будет зависеть от второго параметра, но какой взять второй параметр не знаю. Поэтому и график не могу построить.

А вы провели хим. анализ воды? 100 градусов очень приблизительное значение для закипания и может сильно меняться в зависимости от состава воды (так же как и замерзание, где-то читал что при очень хороших условиях при нормальном давлении дистилированная вода превращается в лед аж при -20 градусов). При таких температурах если мне не изменяет память точность 18В20 составляет около 1 градуса в обе стороны.

Читайте также:  Датчик движения схема подключения vt 275 схема

Нет, хим анализ я не проводил. Я же сразу указал, что температуру кипения принимаем равной 100 градусов с большим приблежением. И даже погрешность около 1 градуса в обе стороны — это лучше чем 7 градусов как сейчас.

Берете лед кубиками, смешиваете с водой, ждете 10 мин, если лед еще остался в емкости температуру воды принимаем за 0 градусов

Про 100гр забудьте, их сможете проверить, только имея калиброванный термометр. Самая доступная в домашних условиях контрольная точка, это вы сами. Померили температуру ртутным термометром, потом на тоже место DS18 и следите по монитору, пока не перестала расти.
0 гр, вроде как получают при смешивании льда с водой, но не имея калиброванного термометра утверждать это не возьмусь.
Как то пытался экспериментировать на предмет погрешности, взял пять датчиков из разных партий, расположил на ткани рядом закрыв от сквозняков. Разброс температур оказался в 0,2гр от минимума до максимума. Так что датчики достаточно точные.
Ну и последний вопрос, зачем Вам такая точность?

Ну, о какой точности идет речь? Мне не нужна точность в 0,5 градусов, один градус туда сюда — это для меня нормально, а 7 градусов туда сюда — это уже не термометр. Я тоже с такой погрешностью могу температуру определять.

Где правда, Вы без соответствующих условий и инструментов понять никогда не сможете.
1. Вы не знаете точку кипения воды в Вашем случае (можем рассчитать по барометру).
2. Вы не знаете состав контролируемой воды. (можем взять дистиллированную).
3. Мы не знаем, как вы погружали датчик. (лапы, провода это все эффективные теплоотводы).

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

Нет, как сравнить показатели датчика с поверенным термометром — это не проблемма. Я это сделаю, благо на работе куча поверенного оборудования. Меня больше интересует, как потом в скетче скорректировать показания датчика? Вот в чем вопрос!

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

Соберите термомтер в каком-никаком корпусе, чтобы «не сопли». Отнесите в ближайшую метрологическую лабораторию. За небольшу денюшку получите таблицу поправок в указанном Вами диапазоне температур.

По документам DS18b20 +-0,5градуса. В реале все приезжавшие мне в неё укладывались, кроме одного в трубке нержавейке, но я его точно не проверял пока, а предварительно (по сравнению с рядом лежащим другим) занижал на 2град. Калибровать по кипению неточно и неудобно. Кипение жидкости процесс неравномерны, динамичный, возникают холодные и горячие точки и перегрев воды выше 100 не такая уж и экзотика. Если сильно хочется — термоизолируйте стенки, толстое дно и медленное кипение чуть подсолив воду.

Читайте также:  Замена датчика вторичного вала nissan sunny fb15

Начните с тающего льда, лед растолчите, чтоб получилась кашица и в пластиковой посуде (чтоб не таял быстро) дайте датчику полежать пару минут. провода от датчика на сантиметров 5 тоже должны быть в посуде. Это 0градусов. Для нормальной водопроводной воды отклонения до 0,1град. Для дистилированой еще меньше.

У меня датчик итак в алюминиевом корпусе и запян термоусадкой, так что соплей нет никаких. По поводу поправок, снова повторюсь, не проблемма их сделать. Я не понимаю как потом эти поправки применить на практике? Я думаю, что показанию датчика носят линейный характер, значит можно рассчитать уравнение кривой в формате:

где у-температура скорректированная, х-температрура показания датчика, а k и b поправочные коэффициенты.

Я не понимаю как это уравнение воткнуть в скетч, чтобы автоматически пересчитывать температуру. Вот в чем загвоздка.

Так вы сперва получите эти поправки по всему диапазону, а потом можно двигаться дальше. Пока, рассуждения ни о чем. В любом случае temp = temp+popr;. Вот получение popr уже зависит от полученных в эксперименте результатов.

Для табличного варианта будет упрощенно: if (temp > 20) if (temp > 30)

Если Ваш датчик в трубке, то это уже говорит о термоинерционности. Измерьте кривую показаний датчика от времени его нахождения в точке измерения. Может нужно дольше ждать пока тепло дойдёт до него? Сделайте эксперимент всухую.

Подскажите, а можно ли от этого датчика получить какой либо другой сигнал, например в мВ?

Есть мысль провести простую калибровку по двум точкам 0 градусов и 100 градусов, составить уравнение прямой и записать это уравнение в скетч. Но возникло одно НО! Чобы построить график необходимо иметь 2 параметра один из которых будет температура и будет зависеть от второго параметра, но какой взять второй параметр не знаю. Поэтому и график не могу построить.

линейности у этого датчика нет. и ваша прямая даст погрешность в температурах.

7 градусов это многовато. возможно бракованый.

Сразу надо убедится что там есть эти 7градусов. При аккуратной калибровке вероятно там окажется до 0,5 и никаких поправок и урванений не потребуется.

Подскажите, а можно ли от этого датчика получить какой либо другой сигнал, например в мВ?

1. По поводу построения графика: по одной оси (абсцисса) откладываются показания датчика, а по другой (ордината) — истинная температура.

2. Датчик нелинеен по определению. Поэтому что будет больше — пользы или вреда — от попрытки перерастянуть шкалу по двум точкам — совершенно неочевидно. Вполне вероятно, что в наиболее употребительном диапазоне после этого погрешность сильтно возрастет.

3. Единственное, что можно пытаться сделать — калибровать по эталонному прибору (т.е. образцовому термометру). Первую калибровку, думаю, можно попытаться провести с шагом порядка 5 градусов, а потом, при необходимости, на некоторых участках шаг можно будет уменьшить.

4. Да, если с прибором возникают проблемы, следовало бы проверить еще и на равномерность шкалы, т.е. в диапазоне нескольких градусов снять максимально подробную кривую (шаг не более 0.5 градуса) и убедиться в ее линейности.

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

Источник

Adblock
detector