Автор |
Сообщение |
|
|
Заголовок сообщения: |
Re: Опрос цифрового датчика DS18B20 |
Цитата |
|
[quote="Sergos77"]Я хочу понять, это Ваш подход к написанию кода или это связано с задержками (быстродействием) МК ?[/quote] Что касается моих подпрограмм, то я бы не советовал их брать в пример… :-) так как они далеки от идеала… я ведь даже и близко не программист… потому если Вам видится более лучший вариант кода, то смело используйте свой алгоритм без какого либо сомнения… главное, чтобы всё работало правильно. 8-)
|
|
|
 |
Добавлено: 08 июн 2020, 15:48 |
|
|
 |
|
|
Заголовок сообщения: |
Re: Опрос цифрового датчика DS18B20 |
Цитата |
|
Извеняюсь. Я неверно понял перевод на датчик, подумал что в : "Только подчиненное устройство, которое точно соответствует 64 битам последовательности кода ROM, ответит на функциональную команду, выпущенную главным устройством.", говорится о самой команде rom (55h). Да ещё, ПОМОГИТЕ с пониманием работы с этим датчиком. Когда идёт отправка команды (1 байт), Вы используете подпрограмму DS_Send_Command , когда РОМ (8 байт), DS_Write_Dallasи. В этих двух подпрограммах исполюзуется один и тотже набор команд для определения какой временной задержкой кодировать 0 или 1. Почему это не сделать циклом , извлекать по одному байту РОМ из памяти и вызывать подпрограмму DS_Send_Command ? Я хочу понять, это Ваш подход к написанию кода или это связано с задержками (быстродействием) МК ?
Извеняюсь. Я неверно понял перевод на датчик, подумал что в : "Только подчиненное устройство, которое точно соответствует 64 битам последовательности кода ROM, ответит на функциональную команду, выпущенную главным устройством.", говорится о самой команде rom (55h). Да ещё, ПОМОГИТЕ с пониманием работы с этим датчиком. Когда идёт отправка команды (1 байт), Вы используете подпрограмму DS_Send_Command , когда РОМ (8 байт), DS_Write_Dallasи. В этих двух подпрограммах исполюзуется один и тотже набор команд для определения какой временной задержкой кодировать 0 или 1. Почему это не сделать циклом , извлекать по одному байту РОМ из памяти и вызывать подпрограмму DS_Send_Command ? Я хочу понять, это Ваш подход к написанию кода или это связано с задержками (быстродействием) МК ?
|
|
|
 |
Добавлено: 08 июн 2020, 10:43 |
|
|
 |
|
|
Заголовок сообщения: |
Re: Опрос цифрового датчика DS18B20 |
Цитата |
|
[quote="Sergos77"]Доброго времени суток. SVN подскажите, пересмотрел Ваши коды работы с DS18B20 по ROM, не могу понять, после отправки соответствия ROM(MATCH ROM), Вы сразу шлёте команду. По описанию датчика, тамммм, должен быть ответ его, что он есть на шине. У Вас большой опыт работы с DS18B20, раскажите как сделать опрос шины на наличие датчика по ROM ?[/quote] Я не считаю себя большим знатоком данного датчика… хотя есть не малый опыт работы с ним. :-)
А где Вы прочитали, что после отправки команды соответствия rom (55h), датчик должен ответить что он есть на шине? Я что-то этого не заметил.
|
|
|
 |
Добавлено: 08 июн 2020, 05:04 |
|
|
 |
|
|
Заголовок сообщения: |
Re: Опрос цифрового датчика DS18B20 |
Цитата |
|
IMG_2446.JPG [ 315.36 КБ | Просмотров: 26724 ]
[attachment=0]IMG_2446.JPG[/attachment]
|
|
|
 |
Добавлено: 08 ноя 2016, 10:27 |
|
|
 |
|
|
Заголовок сообщения: |
Re: Опрос цифрового датчика DS18B20 |
Цитата |
|
|
|
 |
Добавлено: 08 ноя 2016, 10:27 |
|
|
 |
|
|
Заголовок сообщения: |
Re: Опрос цифрового датчика DS18B20 |
Цитата |
|
Добавлю ещё одну библиотеку по датчикам DS18B20. Контроллер использовал ATmega32 8 МГц от внутреннего генератора. Дисплей МТ-16S2D (можно использовать любой 1602 (DH44780). Схема для теста:
1.png [ 38.13 КБ | Просмотров: 26728 ]
Алгоритм поддерживает поиск находящихся одновременно до 8 датчиков на шине (можно увеличивать с соответствующими добавлениями переменных и дополнениями в коде для их отображения). Сохранить в EEPROM можно не более 4 (в программе установлено ограничение). В алгоритме организовано два режима: 1) Отображения температуры сохранённых датчиков в памяти EEPROM – 4 датчика. 2) Поиск датчиков и сохранение их в память EEPROM с привязкой к конкретному каналу по желанию пользователя. Теперь подробней о втором режиме: Вход в режим поиска датчиков осуществляется нажатием кнопки «ОК». На дисплее высветится информация первого найденного датчика. На первой строке отображается значение читаемой температуры, затем поле для отображения к привязке номера канала, далее порядковый номер по уникальному коду и количество найденных датчиков. Если датчик ранее не был сохранён с привязкой к конкретному каналу (1…4), то в данном поле будет высвечиваться черта. Порядковый номер присваивается в порядке их нахождения. Поиск уникальных номеров начинается с меньшего к большему. На второй строке дисплея показан его уникальный 64 битный номер. При нажатии кнопки «Down», на экране высветится следующий датчик. Кнопка «Up» предназначена для выхода из данного режима. С первого по четвёртый найденный датчик на дисплее будет отображаться температура и знакоместо для привязки датчика к конкретному каналу (№1, №2, №3, №4). У датчиков с 5 по 8 будет данная информация заблокирована, видно будет только его порядковый номер, количество найденных датчиков и уникальный номер на второй строке. Чтобы сохранить выбранный датчик с привязкой к номеру канала необходимо нажать кнопку «ОК». Перед знакоместом номера канала появится стрелка, означающая готовность к выбору номера канала. Нажатием кнопки «Down» производится выбор номера канала от 1 до 4. При нажатии повторно кнопки «ОК» данный датчик (его уникальный номер) сохранится в EEPROM с привязкой к выбранному каналу. Сохранённые датчики с привязкой к номеру канала, так же можно и отвязать от канала, если в поле в место номера канала выбрать черту и нажать на кнопку «ОК». Если к одному и тому же номеру канала сохранить два датчика, то сохраненным останется последний, а предыдущий будут автоматически отвязан от данного канала. Вот такая получилась расширенная библиотека.
Search DS18B20.zip [82.93 КБ]
Скачиваний: 1485
IMG_2417.JPG [ 222.33 КБ | Просмотров: 26724 ]
Добавлю ещё одну библиотеку по датчикам DS18B20. Контроллер использовал ATmega32 8 МГц от внутреннего генератора. Дисплей МТ-16S2D (можно использовать любой 1602 (DH44780). Схема для теста: [attachment=2]1.png[/attachment] Алгоритм поддерживает поиск находящихся одновременно до 8 датчиков на шине (можно увеличивать с соответствующими добавлениями переменных и дополнениями в коде для их отображения). Сохранить в EEPROM можно не более 4 (в программе установлено ограничение). В алгоритме организовано два режима:
1) Отображения температуры сохранённых датчиков в памяти EEPROM – 4 датчика.
2) Поиск датчиков и сохранение их в память EEPROM с привязкой к конкретному каналу по желанию пользователя.
Теперь подробней о втором режиме: Вход в режим поиска датчиков осуществляется нажатием кнопки «ОК». На дисплее высветится информация первого найденного датчика. На первой строке отображается значение читаемой температуры, затем поле для отображения к привязке номера канала, далее порядковый номер по уникальному коду и количество найденных датчиков. Если датчик ранее не был сохранён с привязкой к конкретному каналу (1…4), то в данном поле будет высвечиваться черта. Порядковый номер присваивается в порядке их нахождения. Поиск уникальных номеров начинается с меньшего к большему. На второй строке дисплея показан его уникальный 64 битный номер. При нажатии кнопки «Down», на экране высветится следующий датчик. [u]Кнопка «Up» предназначена для выхода из данного режима.[/u] С первого по четвёртый найденный датчик на дисплее будет отображаться температура и знакоместо для привязки датчика к конкретному каналу (№1, №2, №3, №4). У датчиков с 5 по 8 будет данная информация заблокирована, видно будет только его порядковый номер, количество найденных датчиков и уникальный номер на второй строке. Чтобы сохранить выбранный датчик с привязкой к номеру канала необходимо нажать кнопку «ОК». Перед знакоместом номера канала появится стрелка, означающая готовность к выбору номера канала. Нажатием кнопки «Down» производится выбор номера канала от 1 до 4. При нажатии повторно кнопки «ОК» данный датчик (его уникальный номер) сохранится в EEPROM с привязкой к выбранному каналу. Сохранённые датчики с привязкой к номеру канала, так же можно и отвязать от канала, если в поле в место номера канала выбрать черту и нажать на кнопку «ОК». Если к одному и тому же номеру канала сохранить два датчика, то сохраненным останется последний, а предыдущий будут автоматически отвязан от данного канала. ;)
Вот такая получилась расширенная библиотека. :-) [attachment=0]Search DS18B20.zip[/attachment] [attachment=1]IMG_2417.JPG[/attachment]
|
|
|
 |
Добавлено: 08 ноя 2016, 01:31 |
|
|
 |
|
|
Заголовок сообщения: |
Re: Опрос цифрового датчика DS18B20 |
Цитата |
|
Упс… не сообразил. Так ведь это только библиотека опроса датчика. Если её открыть билдером, то можно прочесть комментарии, а также посмотреть что и как. Это кусок программы. Там ещё нужен код вывода на индикатор, которого разумеется там нет.
1.png [ 19.7 КБ | Просмотров: 27834 ]
Упс… не сообразил. Так ведь это только библиотека опроса датчика. Если её открыть билдером, то можно прочесть комментарии, а также посмотреть что и как. Это кусок программы. Там ещё нужен код вывода на индикатор, которого разумеется там нет. [attachment=0]1.png[/attachment]
|
|
|
 |
Добавлено: 30 июл 2015, 20:57 |
|
|
 |
|
|
Заголовок сообщения: |
Re: Опрос цифрового датчика DS18B20 |
Цитата |
|
Имеется в виду твоя библиотека, SVN в первом посте. На ардуино товарищ просто прошивает хексы сделанные билдером.
Имеется в виду твоя библиотека, SVN в первом посте. На ардуино товарищ просто прошивает хексы сделанные билдером.
|
|
|
 |
Добавлено: 30 июл 2015, 19:19 |
|
|
 |
|
|
Заголовок сообщения: |
Re: Опрос цифрового датчика DS18B20 |
Цитата |
|
О какой программе идёт речь? Если о библиотеке по опросу датчика для ардуино, то это не ко мне. Я не знаю этого языка. Чтобы понимать, что откуда берётся, необходимо хотя бы ознакомится с протоколом работы данной шины. Или как минимум найти статью, где это всё разжёвано.
О какой программе идёт речь? Если о библиотеке по опросу датчика для ардуино, то это не ко мне. Я не знаю этого языка. Чтобы понимать, что откуда берётся, необходимо хотя бы ознакомится с протоколом работы данной шины. Или как минимум найти статью, где это всё разжёвано.
|
|
|
 |
Добавлено: 30 июл 2015, 15:39 |
|
|
 |
|
|
Заголовок сообщения: |
Re: Опрос цифрового датчика DS18B20 |
Цитата |
|
Подскажите, как настроить программу и из какой переменной брать результат? Например, у меня Arduino nano и я припаял датчик ко второму цифровому порту.
--- Не кидайте тапками, я пока слабо разбираюсь в Algorithm Builder'е.
Подскажите, как настроить программу и из какой переменной брать результат? Например, у меня Arduino nano и я припаял датчик ко второму цифровому порту.
--- Не кидайте тапками, я пока слабо разбираюсь в Algorithm Builder'е.
|
|
|
 |
Добавлено: 30 июл 2015, 11:07 |
|
|
 |
|