Подключение DS18b20 и I2C датчиков

Обсуждение статей, технологий домашней автоматизации, программных и аппаратных решений
Ответить
martiniman
Сообщения: 528
Зарегистрирован: 09 авг 2016, 15:09
Откуда: Сочи

Подключение DS18b20 и I2C датчиков

Сообщение martiniman » 08 авг 2018, 14:25

Добрый день.
Нужно подключить 5шт DS18B20, 4шт I2C BME280, 3шт T6703 - в среднем длина витой пары до датчиков 15м.
Есть 4 меги и MegaD-14-IOR (как БП). Свободных входов не хватает.
Правильно ли подключить так:
DS18B20 - все вешаю на порт Mega XT2, питание +5 взять с MegaD-14-IOR.
4шт I2C BME280 - по одной на каждую Мегу, и T6703 к этим же Мегам на теже SDA/SCL только +5 взять с MegaD-14-IOR.

Andrey_B
Администратор
Сообщения: 5327
Зарегистрирован: 18 мар 2011, 12:06

Re: Подключение DS18b20 и I2C датчиков

Сообщение Andrey_B » 08 авг 2018, 14:46

martiniman писал(а):
08 авг 2018, 14:25
DS18B20 - все вешаю на порт Mega XT2, питание +5 взять с MegaD-14-IOR.
4шт I2C BME280 - по одной на каждую Мегу, и T6703 к этим же Мегам на теже SDA/SCL только +5 взять с MegaD-14-IOR.
Для питания DS18B20 не обязательно +5В. Можно +3.3В с той же клеммы XT2.
По I2C-датчикам. Если длина кабеля несколько метров и датчики висят на одной шине (именно на шине/на одном кабеле, а не подключены "звездой"), то в рамках одного контроллера можно использовать одну SCL-линию.
Таким образом, 4 x BME280 могут занять всего 5 портов (4xSDA, 1xSCL). Если от каждого датчика приходит свой кабель, то есть "звезда", то использовать одну линию SCL вряд ли получится.
Соответственно, к одним и тем же портам можно подключать разные датчики (датчики с разными адресами), но только в том случае, если они висят на одной шине.
То есть, если BME280 и T6703 висят на одном кабеле/шине, то совместно линии SDA и SCL, как вы написали, использовать можно. Если от каждого датчика идет свой кабель, то работать на 15 метрах вряд ли будет.
Для питания T6703 +5В можно взять из MegaD-14-IOR. Если же используется отдельный БП, то минус 5В БП и минус 12В БП от которого запитан контроллер необходимо объединить.

martiniman
Сообщения: 528
Зарегистрирован: 09 авг 2016, 15:09
Откуда: Сочи

Re: Подключение DS18b20 и I2C датчиков

Сообщение martiniman » 08 авг 2018, 15:04

Andrey_B писал(а):
08 авг 2018, 14:46
Если от каждого датчика идет свой кабель, то работать на 15 метрах вряд ли будет.
Тут не понятно.
Да, у меня звезда. Если я каждый кабель из 4х заведу на отдельную мегу и подключу к четырём XT2 (внизу меги) - должно работать?

Andrey_B
Администратор
Сообщения: 5327
Зарегистрирован: 18 мар 2011, 12:06

Re: Подключение DS18b20 и I2C датчиков

Сообщение Andrey_B » 08 авг 2018, 15:56

15 метров для I2C - это не мало, но думаю работать должно. Во всяком случае MAX44009 у меня уже очень долго работает на ощутимо большем расстоянии без единого сбоя.
Речь про то, что если к одним и тем же портам подключить не один кабель, на котором висит 2 датчика (шина), а два разных кабеля от разных датчиков (звезда), то на расстояниях в несколько метров работать скорее всего не будет. И это связано с законами физики. Ведь не даром I2C BUS (шина), 1-wire BUS (шина). Все это шины, а не звезды. При подключении звездой датчики работать будут только на коротких отрезках. На длинных отрезках электрические характеристики шины не позволят звезде работать стабильно с пассивной подтяжкой.

Burst
Сообщения: 113
Зарегистрирован: 25 янв 2018, 13:22
Откуда: Балашиха

Re: Подключение DS18b20 и I2C датчиков

Сообщение Burst » 08 авг 2018, 17:12

Andrey_B писал(а):
08 авг 2018, 15:56
15 метров для I2C - это не мало, но думаю работать должно. Во всяком случае MAX44009 у меня уже очень долго работает на ощутимо большем расстоянии без единого сбоя.
Речь про то, что если к одним и тем же портам подключить не один кабель, на котором висит 2 датчика (шина), а два разных кабеля от разных датчиков (звезда), то на расстояниях в несколько метров работать скорее всего не будет. И это связано с законами физики. Ведь не даром I2C BUS (шина), 1-wire BUS (шина). Все это шины, а не звезды. При подключении звездой датчики работать будут только на коротких отрезках. На длинных отрезках электрические характеристики шины не позволят звезде работать стабильно с пассивной подтяжкой.
У меня сейчас 3 датчика на одном SCL работают звездой - один MAX44009 и два HTU21D. Расстояния примерно 8, 7 и 15 метров соответственно.

Andrey_B
Администратор
Сообщения: 5327
Зарегистрирован: 18 мар 2011, 12:06

Re: Подключение DS18b20 и I2C датчиков

Сообщение Andrey_B » 08 авг 2018, 18:50

Это хорошо, что у вас работает, но в других условиях, например, когда к каждому датчику кабель по 15 метров, может и не заработать. Поэтому гарантировать работу в таких обстоятельствах нельзя. Но, martiniman, можете попробовать.

martiniman
Сообщения: 528
Зарегистрирован: 09 авг 2016, 15:09
Откуда: Сочи

Re: Подключение DS18b20 и I2C датчиков

Сообщение martiniman » 09 авг 2018, 10:35

Вопрос по питанию MegaD-14-IOR.
Т.к. хочу запитать от него все 3.3в и 5в датчики, +12в прямо на MegaD-14-IOR заводить?

Andrey_B
Администратор
Сообщения: 5327
Зарегистрирован: 18 мар 2011, 12:06

Re: Подключение DS18b20 и I2C датчиков

Сообщение Andrey_B » 09 авг 2018, 10:41

Ничего заводить не нужно.
+12В передается по 34-пиновому шлейфу из контроллера.

Burst
Сообщения: 113
Зарегистрирован: 25 янв 2018, 13:22
Откуда: Балашиха

Re: Подключение DS18b20 и I2C датчиков

Сообщение Burst » 10 авг 2018, 12:42

Andrey_B писал(а):
08 авг 2018, 18:50
Это хорошо, что у вас работает, но в других условиях, например, когда к каждому датчику кабель по 15 метров, может и не заработать. Поэтому гарантировать работу в таких обстоятельствах нельзя. Но, martiniman, можете попробовать.
Андрей, а вы не находили готовых плат с i2c хабами? Тогда без проблем звезду можно сделать на меге. Просто чипы понятно есть, например pca9518 или на репитере pca9517 можно сделать, а вот готовой платы я что то не нашел.

martiniman
Сообщения: 528
Зарегистрирован: 09 авг 2016, 15:09
Откуда: Сочи

Re: Подключение DS18b20 и I2C датчиков

Сообщение martiniman » 11 авг 2018, 19:21

Всё же на DS18B20 3.3 или 5в заводить?

Andrey_B
Администратор
Сообщения: 5327
Зарегистрирован: 18 мар 2011, 12:06

Re: Подключение DS18b20 и I2C датчиков

Сообщение Andrey_B » 11 авг 2018, 20:47

Напряжение питания DS18B20 согласно документации производителя от 3.0 до 5.5В.
Если длина кабеля до датчиков 10-20 метров, то достаточно будет 3.3В.

pr200sd
Сообщения: 15
Зарегистрирован: 02 мар 2019, 23:50

Re: Подключение DS18b20 и I2C датчиков

Сообщение pr200sd » 03 мар 2019, 11:58

У меня шина метров 30, может даже больше, запустил на 3.3 вольта работает, сами датчики местами имеют ответвление до 1-2м, пока набрал статистику за месяц, редко попадаются значения 85, понаблюдаю еще. А вот I2C на большие расстояния не проверял, поставил 2 датчика рядом с платой.

Ответить