DS18B20 адрес
DS18B20 адрес
Почему, если у датчика адрес занимает 8 байт, под него создается массив 9 байт? Под что занят дополнительный байт? И как в этом массиве располагается собственно адрес датчика, с 0 или с 1-го индекса и начиная со старшего или с младшего байта адреса?
Сканирование шины - это конечно хорошо, но если датчиков несколько, то как определить какой откуда? Какой стоит на подаче, а какой на обратке например. Поэтому, я планирую вручную заполнять массивы адресов и хранить их в EEPROM, а поэтому мне и нужна информация по заполнению массива.
Кстати, при создании массива для датчика, нет возможности его заполнить начальными значениями - нет кнопок "Заполнить" и "Очистить", которые указаны в описании на блок в Инете.
Сканирование шины - это конечно хорошо, но если датчиков несколько, то как определить какой откуда? Какой стоит на подаче, а какой на обратке например. Поэтому, я планирую вручную заполнять массивы адресов и хранить их в EEPROM, а поэтому мне и нужна информация по заполнению массива.
Кстати, при создании массива для датчика, нет возможности его заполнить начальными значениями - нет кнопок "Заполнить" и "Очистить", которые указаны в описании на блок в Инете.
- Phazz
- Полковник
- Сообщения: 3120
- Зарегистрирован: 17 окт 2016, 15:38
- Откуда: Сургут
- Имя: Анатолий
- Благодарил (а): 232 раза
- Поблагодарили: 112 раз
DS18B20 адрес
Если есть свободные пины, то можно каждому датчику выделить отдельный пин. И сканировать автоматически.
DS18B20 адрес
Нет свободных пинов. Нужна именно шина. Я планирую сделать на отдельной Ардуинке тестер датчиков, для проверки исправности и определения адреса. А в целевой системе этот адрес будет вводиться с экрана для каждого установленного датчика. Это необходимо не только для определения какой датчик какую температуру измеряет, но и для замены неисправного датчика без перепрошивки системы.
Кстати, при сканировании шины, стандартный блок ЗАПОЛНЯЕТ массивы найденными адресами, или пытается найти датчик по адресу из массива и при наличии выдает сигнал на выходе? Как вообще работает этот блок, в случае, если сначала датчиков было 3 (три строки массивов), а потом вдруг один (средний например) перестал отвечать? Блок сдвинет адреса, или оставит пустое место?
Кстати, при сканировании шины, стандартный блок ЗАПОЛНЯЕТ массивы найденными адресами, или пытается найти датчик по адресу из массива и при наличии выдает сигнал на выходе? Как вообще работает этот блок, в случае, если сначала датчиков было 3 (три строки массивов), а потом вдруг один (средний например) перестал отвечать? Блок сдвинет адреса, или оставит пустое место?
- Phazz
- Полковник
- Сообщения: 3120
- Зарегистрирован: 17 окт 2016, 15:38
- Откуда: Сургут
- Имя: Анатолий
- Благодарил (а): 232 раза
- Поблагодарили: 112 раз
DS18B20 адрес
И в массив можно записать без проблем через запись элемента в массив
Отправлено спустя 2 минуты 18 секунд:
сканирование работает только с одним датчиком. Можно конечно сделать режим записи датчика в память и подключать их по очереди меняя им номера а значения сохранять
Отправлено спустя 2 минуты 18 секунд:
сканирование работает только с одним датчиком. Можно конечно сделать режим записи датчика в память и подключать их по очереди меняя им номера а значения сохранять
- Rovki
- Полковник
- Сообщения: 5722
- Зарегистрирован: 22 апр 2016, 17:25
- Откуда: Чехов
- Имя: Анатолий
- Благодарил (а): 68 раз
- Поблагодарили: 217 раз
- Контактная информация:
DS18B20 адрес
Для меня тоже темный лес по работе нескольких (до 8) датчиков по одной шине . Как узнать их адреса и считать с каждого температуру. ? Пин (gpio0-D3 esp8266) используется один . 

Электронщик до мозга костей и не только
DS18B20 адрес
Я знаю как записать в массив. И в общем мне не нужно сканирование. Но я в начале написал - "адрес датчика 8 байт, а массив под него создается - 9 байт, почему?" И как в этом массиве располагается адрес? Я конечно сам выясню, методом проб и ошибок. Но я думал мне здесь специалисты подскажут?
-
- Подполковник
- Сообщения: 1202
- Зарегистрирован: 14 фев 2016, 14:16
- Откуда: kazahstan
- Благодарил (а): 32 раза
- Поблагодарили: 6 раз
DS18B20 адрес
У каждого датчика свой адрес и он не повторяется, просто сканируете и запоминаете в блокноте адрес и подписываете датчик чтоб не путаться ,это плохо когда датчик один крякнет то другой не поставишь адрес другой будет и без перепрошивки ни как . А если создать масив для каждого датчика то у меня так не получилось ,либо один пин один датчик или несколько датчиков со своими адресами на один пин.starmos писал(а): 16 апр 2020, 08:02 Сканирование шины - это конечно хорошо, но если датчиков несколько, то как определить какой откуда?
- Rovki
- Полковник
- Сообщения: 5722
- Зарегистрирован: 22 апр 2016, 17:25
- Откуда: Чехов
- Имя: Анатолий
- Благодарил (а): 68 раз
- Поблагодарили: 217 раз
- Контактная информация:
DS18B20 адрес
А как из сканера(массива) прочитать адрес ???vovka1973 писал(а): 16 апр 2020, 12:23У каждого датчика свой адрес и он не повторяется, просто сканируете и запоминаете в блокноте адрес и подписываете датчик чтоб не путаться ,это плохо когда датчик один крякнет то другой не поставишь адрес другой будет и без перепрошивки ни как . А если создать масив для каждого датчика то у меня так не получилось ,либо один пин один датчик или несколько датчиков со своими адресами на один пин.starmos писал(а): 16 апр 2020, 08:02 Сканирование шины - это конечно хорошо, но если датчиков несколько, то как определить какой откуда?
Электронщик до мозга костей и не только
DS18B20 адрес
Сканер определяет адрес датчика и пишет его в массив. (Как я понимаю). Этот массив можно прочитать стандартными средствами/блоками. Для определения адреса датчика есть "Сканирование Шины" в "Инструменты" FLProg - работает, я проверял. Массив для каждого датчика можно создать в соответствующем стандартном блоке FLProg. Записать туда полученный адрес тоже несложно, стандартными блоками. Но массив создается 9 байт, а размер адреса 8. Т.е. можно заполнять массив либо с индекса 0, либо с 1. Опять же, заполнять можно: младший байт адреса по младшему индексу, или наоборот. Как правильно? Сам я попробовать не могу, а то бы не спрашивал - у меня под рукой нет "железа" пока.
-
- Подполковник
- Сообщения: 1202
- Зарегистрирован: 14 фев 2016, 14:16
- Откуда: kazahstan
- Благодарил (а): 32 раза
- Поблагодарили: 6 раз
DS18B20 адрес
[spoiler] [/spoiler]
У вас нет необходимых прав для просмотра вложений в этом сообщении.
- Phazz
- Полковник
- Сообщения: 3120
- Зарегистрирован: 17 окт 2016, 15:38
- Откуда: Сургут
- Имя: Анатолий
- Благодарил (а): 232 раза
- Поблагодарили: 112 раз
DS18B20 адрес
Попробуйте такstarmos писал(а): 16 апр 2020, 08:02 Почему, если у датчика адрес занимает 8 байт, под него создается массив 9 байт? Под что занят дополнительный байт? И как в этом массиве располагается собственно адрес датчика, с 0 или с 1-го индекса и начиная со старшего или с младшего байта адреса?
Сканирование шины - это конечно хорошо, но если датчиков несколько, то как определить какой откуда? Какой стоит на подаче, а какой на обратке например. Поэтому, я планирую вручную заполнять массивы адресов и хранить их в EEPROM, а поэтому мне и нужна информация по заполнению массива.
Кстати, при создании массива для датчика, нет возможности его заполнить начальными значениями - нет кнопок "Заполнить" и "Очистить", которые указаны в описании на блок в Инете.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
- kulibinsvv
- Лейтенант
- Сообщения: 487
- Зарегистрирован: 18 сен 2015, 10:04
- Откуда: Омск
- Благодарил (а): 3 раза
- Поблагодарили: 5 раз
DS18B20 адрес
Вы описание к блоку DS18x2x внимательно читали? Там всё написано.
Посмотрите уроки:
Автоопределение DS18B20
Датчик температуры DS18B20 – Характеристики, распиновка, нюансы подключения
Мой змей, этот ползучий соблазн сомнения,всё шевелится, побуждая «искать концы»... (Станислав Ермаков)
- Rovki
- Полковник
- Сообщения: 5722
- Зарегистрирован: 22 апр 2016, 17:25
- Откуда: Чехов
- Имя: Анатолий
- Благодарил (а): 68 раз
- Поблагодарили: 217 раз
- Контактная информация:
DS18B20 адрес
соединил два датчика параллельно - не работает как нужно . Грею один любой ,а температура растет на двух индикаторах одинаково...
Отправлено спустя 2 минуты 39 секунд:
вот проект Отправлено спустя 2 часа 8 минут 54 секунды:
Проверил проект с двумя разными блоками -сканерами шины (разные массивы) ,но один пин для двух датчиков . Вывод- блоки сканеров не поддерживают такое соединение (на один пин) - значение одинаковое по двум датчикам при нагреве любого ..

вот проект Отправлено спустя 2 часа 8 минут 54 секунды:
Проверил проект с двумя разными блоками -сканерами шины (разные массивы) ,но один пин для двух датчиков . Вывод- блоки сканеров не поддерживают такое соединение (на один пин) - значение одинаковое по двум датчикам при нагреве любого ..
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Электронщик до мозга костей и не только
- Phazz
- Полковник
- Сообщения: 3120
- Зарегистрирован: 17 окт 2016, 15:38
- Откуда: Сургут
- Имя: Анатолий
- Благодарил (а): 232 раза
- Поблагодарили: 112 раз
DS18B20 адрес
Так не будет работать, только сначала подключать по одному с сохранением каждого в отдельный массив. А потом присваивать эти массивы конкретным датчиками.
-
- Полковник
- Сообщения: 4005
- Зарегистрирован: 12 фев 2016, 11:40
- Откуда: Шатура
- Имя: Энвер
- Благодарил (а): 137 раз
- Поблагодарили: 153 раза
DS18B20 адрес
Мой опыт по этому вопросу - в сети 1-Wire все работает хорошо, но на практике удобнее 1 пин=1 датчик DS1820. Шина разрабатывалась Dallas для использовании в научных установках, но оказалась удачной, в домофонах многоквартирных домов например используется.
- Rovki
- Полковник
- Сообщения: 5722
- Зарегистрирован: 22 апр 2016, 17:25
- Откуда: Чехов
- Имя: Анатолий
- Благодарил (а): 68 раз
- Поблагодарили: 217 раз
- Контактная информация:
DS18B20 адрес
Именно подключение по одному ? Это можно проверить ...но пин один и нужно что бы при команде дать адрес ,ранее подключенный датчик молчал ...Phazz писал(а): 17 апр 2020, 22:05 Так не будет работать, только сначала подключать по одному с сохранением каждого в отдельный массив. А потом присваивать эти массивы конкретным датчиками.
Не совсем понял про присваивание массивов ...
Отправлено спустя 1 минуту 32 секунды:
Вся фишка в одной шине для N датчиков ,а так бы незачем было городить разные адреса из 64битecoins писал(а): 17 апр 2020, 22:13 Мой опыт по этому вопросу - в сети 1-Wire все работает хорошо, но на практике удобнее 1 пин=1 датчик DS1820. Шина разрабатывалась Dallas для использовании в научных установках, но оказалась удачной, в домофонах многоквартирных домов например используется.
Отправлено спустя 12 минут 14 секунд:
Проверил- подключил 1 датчик ,отсканировал шину , отключил первый ,подключил второй ,отсканировал , потом подключил 1 датчик , не отключая питания - все работает . Но только отключил питание и все пропало ....что то не продумано в блоках или скажите как правильно делать ,плиз.

Электронщик до мозга костей и не только
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 5 гостей