Z-uno 1-wire

Данный раздел предназначен для русскоязычных пользователей. Если вы владеете английским, рекомендуем также просмотреть общую ветку обсуждений на английском.
Post Reply
ekc
Posts: 17
Joined: 15 Nov 2013 09:58

Z-uno 1-wire

Post by ekc »

Добрый день!
Я знаю, на arduino можно использовать более 1-й шины 1-wire (с разных цифровых пинов). Можно ли такое с Z-Uno (не получилось протянуть шину по всей квартире - идут три луча, на которых хотелось бы по 3-4 DS18B20)? Если можно, буду очень признателен за небольшой пример, так сказать вектор направляющий!

User avatar
PoltoS
Posts: 5696
Joined: 26 Jan 2011 19:36

Re: Z-uno 1-wire

Post by PoltoS »

В теории - да. Но что мешает все лучи соединить? Ведь у 1-wire параллельное соединение

ekc
Posts: 17
Joined: 15 Nov 2013 09:58

Re: Z-uno 1-wire

Post by ekc »

Добрый вечер! Пробовал, получается звезда - датчики не определяются ( по отдельности в луче - Ок, в звезде 0 датчиков)...

ekc
Posts: 17
Joined: 15 Nov 2013 09:58

Re: Z-uno 1-wire

Post by ekc »

Добрый вечер! Попробовал, получилось подцепить на 12-й пин 2-й луч 1-wire. Датчики видны на обоих лучах. Кстати вопрос, можно ли увидеть (вывести куда-нибудь) 64-х битный код DS18B20 - чтобы исключить возможность "переиндексирования" при следующем перезапуске Z-Uno (актуально, для управления термостатами тёплыми полами например)?

User avatar
PoltoS
Posts: 5696
Joined: 26 Jan 2011 19:36

Re: Z-uno 1-wire

Post by PoltoS »

Вы можете из сохранить в EEPROM и вывести в Serial (USB-консоль)

ekc
Posts: 17
Joined: 15 Nov 2013 09:58

Re: Z-uno 1-wire

Post by ekc »

Спасибо, попробую...

p0lyg0n1
Posts: 181
Joined: 04 Aug 2016 07:14

Re: Z-uno 1-wire

Post by p0lyg0n1 »

Здравствуйте!
Тут есть несколько советов.
1) по-умолчанию для подобных задач можно использовать только пины с 9-го по 16-ый (PWM4), т.н. s_pin. У Z-Uno реализация шины 1-Wire полностью программная и вы можете создать несколько объектов шины OneWire и объектов датчиков DS18B20 с нужной шиной.
2) Для начального получения устройств на шине можно/нужно использовать сканирование, посмотрите вот этот пример с GitHub https://github.com/Z-Wave-Me/Z-Uno-Test ... S18B20.ino
Далее значение температуры возможно получить по ROM-датчика.Методы getTempC100/getTemperature принимают единственным параметром указатель на ROM. Если датчика нет, то функция getTempC100 вернет значение BAD_TEMP(определено в ZUNO_DS18B20.h), равное -32767
3) Для сохранения полученных при сканировании ROM датчиков используйте модуль EEPROM. Пример работы c EEPROM: https://z-uno.z-wave.me/Reference/EEPROM/
4) Версия ядра, на которой вы работаете. На первых версиях 2.15 и ранее были проблемы со всеми софтверными шинами при питании Z-Uno от USB, если не уверены что у Вас последняя версия переустановите еще раз Core-файлы. Попробуйте использовать 2.16 beta, доступную в репозитории: http://z-uno.z-wave.me/files/z-uno/test ... index.json
5) Есть еще "железные" особенности самой шины, которые нужно учитывать.
1. Емкость шины. Если Вы используете Z-Uno без внешних подтягивающих резисторов, то у нее используется штатный встроенный в чип подтягивающий резистор. Его сопротивление порядка нескольких десятком кОМ. Это негативно влияет на максимальную длину соединения. В этом случае нужно добавить внешний подтягивающий резистор между сигнальным выводом и питанием, причем подбирать его начиная от 4.7кОм и если датчики не находятся понижать это значение до 1кОм постепенно. Нужно подобрать оптимальное значение для вашей длины шины.
2. Питание датчиков. Проверьте значение напряжения с помощью мультиметра на дальних датчиках, если оно ниже 2.9В - то это может быть источником проблемы.
Удачи.

Александр

ekc
Posts: 17
Joined: 15 Nov 2013 09:58

Re: Z-uno 1-wire

Post by ekc »

1. Спасибо за советы, попробую
2. Ядро 2.15.1 и питание внешнее 14.2В
3. Я в другой теме спрашивал, чип горячий (случайно затронул пальцем) - это нормально при внешнем питании...
4. Н а данный момент использую 3 шины 1-wire (пины 9,11,12) резистор подтяжки 4,7кОм, питание датчиков 3.1В

Post Reply