Меню

1 wire датчики схема

1-Wire

Содержание

Подключение

В контроллере уже есть резистор 3 кОм подтяжки между шиной Data и VCC — внешний резистор не нужен.

Подключение по трём проводам

Датчик имеет три вывода. Их цвета могут меняться от модели к модели, желательно найти документацию на свою модель.

Сигнал Клеммник Цвет: модель 1 Цвет: модель 2 Цвет: модель 3
Vdd (VCC, питание) +5V Out Красный Красный Красный
GND (земля) GND Чёрный Чёрный Желтый
DQ (DATA, данные) 1W Синий Жёлтый Зелёный

Подключение по двум проводам

Соедините контакты питания и земли датчика и подключите их к земле контроллера. При таком подключении датчик будет брать питание с канала данных.

Этот способ не рекомендуется, особенно для подключения нескольких датчиков: тока с линии данных может не хватить для всех датчиков, к тому же замедляется опрос — время тратится на зарядку внутренних емкостей датчиков напряжением от линии данных.

Прокладка шины 1-Wire

Количество возможных датчиков и надежность их работы зависит от длины шины, её топологии и кабеля. Обычно в домашних условиях надежно работает до 20 датчиков по 5 метров кабеля, соединенных звездой.

Основной документ при проектировании шины — инструкция от разработчика 1-Wire. Основные тезисы:

  • Длина шины при подключении одного датчика до 200 метров.
  • При подключении нескольких датчиков, подключайте их к питанию 5 В (не используйте двухпроводную схему).
  • Прокладка линии одной шиной лучше, чем прокладка звездой.
  • Для прокладывания длинной шины или в условиях повышенных помех (например, в щитке) — используйте витую пару, например, Cat 5, лучше экранированную.

Подключение по витой паре — это сигнал по одной жиле пары, земля по второй и аналогично питание: плюс питания по одной жиле пары, минус по второй. Минус питания соединить с сигнальной землёй. Экран с одной стороны соединить с минусом питания.

Поддержка в ПО

Значения датчика транслируются в очередь сообщений MQTT драйвером wb-mqtt-w1.

Источник

1-Wire

1-Wire — шина для подключения внешних датчиков, чаще всего температурных. Датчики подключаются по двум или трём проводам. Так как это шина, на один 1-Wire порт Wiren Board можно подключить несколько датчиков при соблюдении определённых условий.

Содержание

Поддерживаемые датчики

Wiren Board поддерживает один тип 1-Wire датчиков: температурные датчики на основе чипов DS18B20 и подобные. Они продаются в том числе в нашем магазине.

Диапазон измерения температуры: -55..+125 °C.

Возможна реализация поддержки других 1-Wire устройств по запросу на [1].

Подключение

Подключение одного датчика по трём проводам

Датчик имеет три вывода. Их цвета могут меняться от модели к модели, желательно найти документацию на свою модель.

Сигнал К какому клеммнику
Wiren Board подключать
Цвет: модель 1 Цвет: модель 2 Цвет: модель 3
Vdd (VCC, питание) +5V Out Красный Красный Красный
GND (земля) GND Чёрный Чёрный Желтый
DQ (DATA, данные) 1W Синий Жёлтый Зелёный

Подключение одного датчика по двум проводам

В некоторых случаях датчик можно подключить всего двумя проводами. Для этого нужно соединить контакты питания и земли датчика, и подключить их к земле контроллера. При таком подключении датчик будет брать питание с канала данных. Этот способ не рекомендуется, так как при этом замедляется опрос датчиков, особенно если их несколько на одном порту контроллера: время тратится на зарядку внутренних емкостей датчиков напряжением от линии данных. Этот способ крайне не рекомендуется при одновременном подключении нескольких датчиков, так как тока с линии данных может не хватить для зарядки нескольких датчиков

Подключение нескольких датчиков на одну шину

Внимание! Одновременная надёжная работа двух и более датчиков гарантируется только при соблюдении описанных ниже условий.

Читайте также:  Датчик коленвала ленд ровер дискавери 2

Основной документ при проектировании шины — инструкция от разработчика 1-Wire TUTORIAL 148: Guidelines for Reliable Long Line 1-Wire Networks. Основные тезисы оттуда:

  • Длина шины при подключении одного датчика может составлять 200 метров
  • Если вы собираетесь подключать несколько датчиков, обязательно подключайте их к питанию 5В (не используйте двухпроводную схему подключения)
  • Если вы прокладываете шину на несколько метров, или короткую, но в условиях повышенных помех (например, в щитке) — используйте витую пару, например, Cat 5, желательно экранированную
  • Количество датчиков, которые можно подключить к одному мастеру (например, контроллеру Wiren Board), зависит как от длины шины, так и от её топологии
  • Прокладка линии одной шиной лучше, чем прокладка звездой. При прокладке линии звездой надёжная работа не гарантируется

Поддержка в ПО

После подключения значения с датчиков сразу появятся в веб-интерфейсе. Если к контроллеру подключены несколько датчиков, они будут различаться своими идентификаторами. (Идентификаторы установлены в датчики на заводе,они содержат тип устройства, номер и контрольную сумму.) Значения датчика транслируются в очередь сообщений MQTT драйвером wb-homa-w1. 900px|thumb|center|MQTT-топик и идентификатор датчика в разделе Settings веб-интерфейса

Источник

Arduino, MK-90 и другие

Программирование Arduino, оживление микроэвм Электроника МК-90, аппаратный хакинг.

Страницы

16.04.2011

Сеть 1-Wire в «полевых условиях»

  • Скачать проект платы-подавителя помех в формате Eagle.

12 комментариев:

Большое спасибо за такую познавательную статью!
У меня возник вопрос. Есть микроконтроллер (какой нить Atmega) и датчик DS18B20, можно ли их соединить кабелем 100м без всяких усилителей (на транзисторах и т.д.), тоесть просто подключить к какому нить пину микроконтроллера. Питание не паразитное.

Да, вполне возможно! Именно такое подключение я и описывал. 100м — «серьезная дистанция» для нежной ножки MCU, посему очень рекомендую, использовать экранированный 3-х проводный кабель сечением 0,75мм и как минимум — два диода Шотки между GND, Data и VCC.

спасибо за ответ!
Еще вопрос: я хочу подключить датчик к одной ноге так как мне надо сделать сеть типа «звезда» в которой будет 10 датчиков (на каждой ветви по одному). Я решил к 10 ножкам микроконтроллера подключить по 1 датчику проводом 100м. Но может вы знаете более подходящее решение? Подключение звездой обязательно

а автор не экспереметировал с датчиками попроще ? то есть цифровыми и БЕЗ 1-WIRE

а то роюсь по прайсам местных магазинов и ничего кроме датчиков от 10 уе (без 1-wire) и DS18B20 не могу найти

а интересно покрутить термодатчик с встроенным АЦП без всякого лишнего и дешевле по идее должно быть

Прошу прощения, что встреваю: а о каких таких датчиках «цифровыми, но не 1-Wire» идет речь?

DS18B20 в своем классе точности и диапазоне — самое удачное решение среди полупроводниковых термодатчиков, 1-Wire позволяет для подключения N датчиков использовать всего один DIO MCU. Мнимая сложность программирования компенсируется многочисленными примерами кода и библиотеками в свободном доступе.

Ну а цена его — 2-3 USD, и если речь про экземпляры за 10 у.е. — это скорее всего не полупроводниковый или лучшая точность (диапазон у полупроводникового шире быть не может).

да действительно порылся на предмет датчиков подешевле — ничего нет 🙁 подороже с более высоким классом точности или в более сложным исполнением

и еще вопросик вы опрашиваете все подряд или или каждый по отдельности

если каждый по отдельности поделитесь или скетчем или куском кода а то роюсь уже несколько часов ничкго путного найти не могу 🙁

А чем Вас стандартный пример из библиотеки oneWire не устраивает?

Читайте также:  Датчик давления масла корандо дизель

Там вполне все вполне прозрачно, лишнее просто выкидывается (или комментируется),а остаток оформляется как своя функция.

«Не вдаваясь в сложности организации сети Ethernet, просто прошу поверить (и с мультиметром проверить) в то, что из-за значительного падения напряжения на длинных и весьма тонких проводах кабеля Cat.5e датчику сети 1-Wire банально не хватает напряжения питания!»

Проблема решается когда cat5 используется в качестве 4х проводной линии с внешним дополнительным питанием: GND, DATA, +12В, +18В.

Схема немного усложняется, добавляется 5В стабилизатор на шину +12В (для питания датчиков), и 12В стабилизатор на шину +18В (для питания относительно слаботочных исполнительных устройств если это необходимо)

Здравствуйте! Прислали из Китая сотню SMD-чипов, написали что это фербиды BLM21AG221. Маркировки на них никакой нет, тестер показывает почти нулевое сопротивление. Это похоже на правду? Есть ли какие-то другие способы проверить что это действительно они?

перезалейте картинки, не видно

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

Источник

Взаимодействие DS18B20, однопроводного (1-Wire) цифрового датчика температуры, с Arduino

Один из самых простых и недорогих способов добавить измерение температуры в ваш проект на Arduino – использовать однопроводный датчик температуры DS18B20. Эти датчики достаточно точны и не требуют для работы никаких внешних компонентов. Таким образом, с помощью всего нескольких соединений и некоторого кода Arduino вы измерите температуру в кратчайшие сроки!

Взаимодействие DS18B20, однопроводного (1-Wire) цифрового датчика температуры, с Arduino

DS18B20 – однопроводной датчик температуры

DS18B20 – это датчик температуры с однопроводным интерфейсом 1-Wire, изготовленный Dallas Semiconductor Corp. Уникальный интерфейс 1-Wire® требует только одного цифрового контакта для двухсторонней связи с микроконтроллером.

Датчик обычно поставляется в двух форм-факторах. Тот, что идет в корпусе TO-92, выглядит точно так же, как обычный транзистор. Другой, в виде водонепроницаемого зонда, может быть более полезен, когда вам нужно измерить что-то далеко, под водой или под землей.

Рисунок 1 – Типы датчиков температуры DS18B20

Датчик температуры DS18B20 достаточно точный и не требует для работы внешних компонентов. Он может измерять температуру от -55°C до +125°C с точностью ±0,5°C.

Разрешение датчика температуры настраивается пользователем до 9, 10, 11 или 12 бит. Однако разрешение по умолчанию при включении питания составляет 12 бит (то есть соответствует точности 0,0625°C).

Датчик может питаться от источника напряжения от 3 В до 5,5 В и потреблять всего 1 мА во время активных преобразований температуры.

Характеристики датчика температуры DS18B20

Напряжение питания от 3 В до 5,5 В
Потребляемый ток 1мА
Диапазон температур от -55°C до 125°C
Точность ±0,5°С
Разрешение от 9 до 12 бит (выбирается)
Время преобразования Рисунок 2 – Распиновка датчика температуры DS18B20 в корпусе TO-92 и в водонепроницаемом корпусе

DQ – это шина данных 1-Wire, которая должна быть подключена к цифровому выводу микроконтроллера.

Вывод VDD подает питание на датчик, которое может быть от 3,3 до 5 В.

Подключение датчика температуры DS18B20 к Arduino

Достаточно теории, давайте практиковаться! Давайте подключим DS18B20 к Arduino.

Подключение довольно простое. Начните с подключения VDD к 5V выходу на Arduino, и GND – к земле.

Затем подключите оставшийся цифровой сигнальный вывод DQ к цифровому выводу 2 на Arduino. Вам также необходимо добавить подтягивающий резистор 4,7 кОм между сигнальным выводом и выводом питания, чтобы обеспечить стабильную передачу данных (внутренние подтягивающие резисторы на ардуино не работают).

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

Рисунок 3 – Подключение датчика температуры DS18B20 к Arduino

Если вы используете водонепроницаемую версию DS18B20, подключите красный провод к 5V, черный провод соединится с землей, а желтый провод – данные, которые поступают на цифровой вывод 2 на Arduino. Вам всё еще нужно подключить подтягивающий резистор 4,7 кОм между линией данных и шиной 5 В.

Рисунок 4 – Подключение водонепроницаемого датчика температуры DS18B20 к Arduino

Установка библиотеки для DS18B20

Протокол Dallas 1-Wire несколько сложен и требует много кода для парсинга связи. Чтобы скрыть эту ненужную сложность, мы установим библиотеку DallasTemperature.h, чтобы мы могли выполнять простые команды для получения показаний температуры от датчика.

Чтобы установить библиотеку, перейдите в раздел «Скетч»→ «Подключить библиотеку» → «Управление библиотеками…». Подождите, пока менеджер библиотеки загрузит индекс библиотек и обновит список установленных библиотек.

Рисунок 5 – Установка библиотеки Arduino – выбор управления библиотеками в Arduino IDE

Чтобы отфильтровать результаты поиска, введите « ds18b20 ». Там должна быть пара записей. Ищите DallasTemperature от Miles Burton. Нажмите на эту запись, а затем выберите Установка.

Рисунок 6 – Установка библиотеки DallasTemperature в Arduino IDE

Эта библиотека DallasTemperature является аппаратно-зависимой библиотекой, которая обрабатывает функции более низкого уровня. Она должна быть связана с библиотекой OneWire для связи с любым устройством 1-Wire, а не только с DS18B20. Установите и эту библиотеку.

Рисунок 7 – Установка библиотеки OneWire в Arduino IDE

Код для Arduino

Следующий скетч даст вам полное представление о том, как считывать показания температуры с датчика температуры DS18B20, и может послужить основой для более практических экспериментов и проектов.

Вот как выглядит вывод в мониторе последовательного порта.

Рисунок 8 – Вывод показаний датчика температуры DS18B20 в мониторе последовательного порта

Объяснение кода:

Скетч начинается с включения библиотек OneWire.h и DallasTemperature.h и объявления вывода Arduino, к которому подключен сигнальный вывод датчика.

Затем мы создаем объект OneWire , передавая сигнальный вывод датчика его конструктору. Этот объект OneWire позволяет нам общаться с любым устройством 1-Wire, а не только с DS18B20. Для связи с датчиком DS18B20 нам нужно создать объект библиотеки DallasTemperature и передать ему ссылку на объект OneWire в качестве параметра.

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

  • Функция begin() ищет подключенные датчики на шине и устанавливает битовое разрешение (12 бит) для каждого.
  • Функция requestTemperatures() отправляет команду для всех датчиков на шине, чтобы выполнить преобразование температуры.
  • Функция getTempCByIndex(deviceIndex) считывает и возвращает показания температуры с датчика. deviceIndex – это не что иное, как расположение датчика на шине. Если вы используете только один DS18B20 на шине, установите этот параметр на 0.

Другие полезные функции в библиотеке DallasTemperature.h

Есть еще несколько полезных функций, которые вы можете использовать с объектом DallasTemperature . Несколько из них перечислены ниже:

  • Функция setResolution() устанавливает разрешение внутреннего аналого-цифрового преобразователя DS18B20 на значение 9, 10, 11 или 12 бит, что соответствует шагу температуры 0,5°C, 0,25°C, 0,125°C и 0,0625°C соответственно ,
  • Функция bool getWaitForConversion() возвращает значение флага waitForConversion . Это может быть полезно, когда вы хотите проверить, завершено ли преобразование температуры.
  • Функции setHighAlarmTemp() и setLowAlarmTemp() устанавливают внутренние пороги тревоги высокой и низкой температуры для устройства в градусах Цельсия. Допустимый диапазон от -55°C до +125°C
  • Функция bool hasAlarm() возвращает true , если устройство имеет состояние тревоги, когда температура выходит за пределы диапазона между верхним и нижним уровнями тревоги.

Источник

Adblock
detector