Сканироваие 1-Wire. Массив DS18B20
Сканироваие 1-Wire. Массив DS18B20
Приветствую!
1. Я правильно понял что сканирование шины с записью в массив нескольких датчиков на одной шине не работает?
Неужели каждый датчик на отдельный пин сажать. Смысл тогда этой шины.
Цель такая - есть шина с несколькими датчиками, один вышел из строя, его просто меняем и сканируем. Продолжаем работу.
2. Как в EEPROM записать и считать массив (адрес датчиков)? Городить огород из 16 блоков (8 запись, 8 чтение)? И это только на один датчик (((
1. Я правильно понял что сканирование шины с записью в массив нескольких датчиков на одной шине не работает?
Неужели каждый датчик на отдельный пин сажать. Смысл тогда этой шины.
Цель такая - есть шина с несколькими датчиками, один вышел из строя, его просто меняем и сканируем. Продолжаем работу.
2. Как в EEPROM записать и считать массив (адрес датчиков)? Городить огород из 16 блоков (8 запись, 8 чтение)? И это только на один датчик (((
- karen
- Рядовой
- Сообщения: 66
- Зарегистрирован: 15 янв 2016, 22:45
- Откуда: Mars
- Имя: Karen
- Благодарил (а): 3 раза
- Поблагодарили: 1 раз
- Контактная информация:
Сканироваие 1-Wire. Массив DS18B20
Как я понял можно вешать и на 1 пин просто при скане не понятно какой 1 какой 3 ds, я пока повесил так, каждый ds на разный пин.
karens4
- Phazz
- Полковник
- Сообщения: 3120
- Зарегистрирован: 17 окт 2016, 15:38
- Откуда: Сургут
- Имя: Анатолий
- Благодарил (а): 232 раза
- Поблагодарили: 112 раз
Сканироваие 1-Wire. Массив DS18B20
Работает, но автоматически трудно понять какой датчик заменили
Отправлено спустя 2 минуты 28 секунд:
Есть вариант одна шина для чтения всех датчиков и одна для сканирования при замене. А потом копировать отсканированный массив на место неисправного датчика
Отправлено спустя 2 минуты 28 секунд:
Есть вариант одна шина для чтения всех датчиков и одна для сканирования при замене. А потом копировать отсканированный массив на место неисправного датчика
- Phazz
- Полковник
- Сообщения: 3120
- Зарегистрирован: 17 окт 2016, 15:38
- Откуда: Сургут
- Имя: Анатолий
- Благодарил (а): 232 раза
- Поблагодарили: 112 раз
Сканироваие 1-Wire. Массив DS18B20
Нет, копирование массива доступно без перепрошивки. Я даже как-то на форуме делал такое
Сканироваие 1-Wire. Массив DS18B20
[ref=#808080]Phazz[/ref], Не пойдет, нужно готовое устройство с дисплеем для человека который может только поменять датчик и понажимать на кнопки настроек, похоже придется каждый датчик вешать на отдельный пин. Буду разбираться как сделать меню для сканирования каждой шины. Может есть у кого наработки? Дисплей 1602, 3 канала (датчик +реле) через меню настройка температуры и гистерезиса. Сканирование тоже через меню. Настройки и адреса отсканированных датчиков сохранять в EEPROM.
- Phazz
- Полковник
- Сообщения: 3120
- Зарегистрирован: 17 окт 2016, 15:38
- Откуда: Сургут
- Имя: Анатолий
- Благодарил (а): 232 раза
- Поблагодарили: 112 раз
Сканироваие 1-Wire. Массив DS18B20
Не нужно отдельно сканировать шину если только 1 датчик на пине. Есть автосканирование
Отправлено спустя 6 минут 1 секунду:
Можно конечно извернуться и сначала отсканировать и вписать все датчики. А когда нужно будет заменить датчик, просто меняем и нажимаем в меню сканировать. При сканировании он сверяет установленные датчики с теми что в памяти и при нахождении непарного значения записываем туда новый датчик
Отправлено спустя 6 минут 1 секунду:
Можно конечно извернуться и сначала отсканировать и вписать все датчики. А когда нужно будет заменить датчик, просто меняем и нажимаем в меню сканировать. При сканировании он сверяет установленные датчики с теми что в памяти и при нахождении непарного значения записываем туда новый датчик
- Rovki
- Полковник
- Сообщения: 5722
- Зарегистрирован: 22 апр 2016, 17:25
- Откуда: Чехов
- Имя: Анатолий
- Благодарил (а): 68 раз
- Поблагодарили: 217 раз
- Контактная информация:
Сканироваие 1-Wire. Массив DS18B20
Делал до 16 датчиков на 1 шину , сканировал по очереди в веб интерфейсе все настройки https://youtu.be/wSVMBMNyP5I
Электронщик до мозга костей и не только
-
- Лейтенант
- Сообщения: 540
- Зарегистрирован: 03 сен 2020, 15:41
- Откуда: Питер
- Имя: Артем
- Поблагодарили: 1 раз
Сканироваие 1-Wire. Массив DS18B20
как я понял, при замене одного датчика, нужно ВСЕ остальные отсоединять.Rovki писал(а): 12 май 2022, 20:40 Делал до 16 датчиков на 1 шину , сканировал по очереди в веб интерфейсе все настройки
Сканироваие 1-Wire. Массив DS18B20
[ref=#ff8000]Rovki[/ref], Супер!
Ребята, посмотрите мой проект, что я не так делаю?
5 кнопок, долгое нажатие кнопки меню вход и выход из меню, далее в меню настройки температуры и гистерезиса для 1 и 2 реле, а на 3 канале реле не будет, просто зуммер будет пищать при достижении минимума или максимума (это 5 плата, там еще не рисовал схему). У меня какой то бред на дисплее отображается(((
ЗЫ. Решил все таки сделать для 3-х датчиков отдельные пины. Думаю так удобнее.
Ребята, посмотрите мой проект, что я не так делаю?
5 кнопок, долгое нажатие кнопки меню вход и выход из меню, далее в меню настройки температуры и гистерезиса для 1 и 2 реле, а на 3 канале реле не будет, просто зуммер будет пищать при достижении минимума или максимума (это 5 плата, там еще не рисовал схему). У меня какой то бред на дисплее отображается(((
ЗЫ. Решил все таки сделать для 3-х датчиков отдельные пины. Думаю так удобнее.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Сканироваие 1-Wire. Массив DS18B20
Все сделал, работает как и задумывалось кроме одного - датчики сканируются, но после отключения питания нужно опять сканировать.
Как записать адреса найденных датчиков в EEPROM ? три датчика и у каждого по 9 байт. И как потом адреса считывать из памяти и подсунуть программе?
Что ни у ко нет мыслей?
Как записать адреса найденных датчиков в EEPROM ? три датчика и у каждого по 9 байт. И как потом адреса считывать из памяти и подсунуть программе?
Что ни у ко нет мыслей?
-
- Рядовой
- Сообщения: 82
- Зарегистрирован: 24 июн 2020, 21:21
- Откуда: RUS31
- Имя: Egor
- Благодарил (а): 1 раз
Сканироваие 1-Wire. Массив DS18B20
Ранее выкладывал где то. Вносил изменения. Последняя версия, рабочая.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Сканироваие 1-Wire. Массив DS18B20
Вы не поймете - мне не нужно автосканитрование - нужно только при подключении МК к питанию, дальше при выборе в меню какой датчик сканировать -- он и сканируется. Тут загвоздка в том чтобы ---нажал скан1--датчик нашелся и его адрес был записан в память. 3 датчика на 3 пинах. через неделю включил и все датчики работают. А сканировать при каждом чихе - думаю это извращение.av писал(а): 21 май 2022, 11:32 Поменяйте блок датчика на пользовательский блок с автосканированием, здесь на форуме где то был.
Отправлено спустя 15 минут 14 секунд:
[ref]rogekam[/ref], Спасибо. Посмотрю ваш код. И все таки спортивный интерес -- штатным блоком датчики сканируются -- норм! но адреса не записаны
Сканироваие 1-Wire. Массив DS18B20
И опять все не то.
Есть три датчика, есть либо один пункт меню, либо три для сканирования.
Подключил три датчика - нажал один раз кнопку сканирования - все адреса записались в память.
Зачем постоянно сканировать их? Думаю в момент сканирования у реле будет свистопляска.
Контроль исправности можно и по показаниям определять.
Отправлено спустя 19 минут 25 секунд:
В выше приведенном блоке вообще какой то каламбур))
#include <string.h> зачем это? уже есть в компиляторе
Отправлено спустя 3 минуты 56 секунд:
Вообще вопрос то был простой - как отсканировать шину в массив, записать массив в EEPROM и при любых сбоях с питанием продолжать работу уже без сканирования?
Есть три датчика, есть либо один пункт меню, либо три для сканирования.
Подключил три датчика - нажал один раз кнопку сканирования - все адреса записались в память.
Зачем постоянно сканировать их? Думаю в момент сканирования у реле будет свистопляска.
Контроль исправности можно и по показаниям определять.
Отправлено спустя 19 минут 25 секунд:
В выше приведенном блоке вообще какой то каламбур))
#include <string.h> зачем это? уже есть в компиляторе
Отправлено спустя 3 минуты 56 секунд:
Вообще вопрос то был простой - как отсканировать шину в массив, записать массив в EEPROM и при любых сбоях с питанием продолжать работу уже без сканирования?
Сканироваие 1-Wire. Массив DS18B20
[ref]rogekam[/ref], Как то не правильно работает блок
При 1 на вход En и при задании timeout в 60000 то происходит не сканирование раз в минуту, а считывание показаний с датчика раз в минуту
Правильней было бы так:
1. настройка сканирования - 1 раз в час (например)
2. настройка считывания показаний - раз в 3 сек
На выходе add выводится строка с адресом датчика, ну и что мне с ней делать?
Нужно чтобы подключил датчик, нажал кнопочку сканировать (через меню)- адрес записался в память.
Далее работаем с известным нам адресом датчика
Зачем это автосканирование? Если только для контроля работоспособности раз в час например.
При 1 на вход En и при задании timeout в 60000 то происходит не сканирование раз в минуту, а считывание показаний с датчика раз в минуту
Правильней было бы так:
1. настройка сканирования - 1 раз в час (например)
2. настройка считывания показаний - раз в 3 сек
На выходе add выводится строка с адресом датчика, ну и что мне с ней делать?
Нужно чтобы подключил датчик, нажал кнопочку сканировать (через меню)- адрес записался в память.
Далее работаем с известным нам адресом датчика
Зачем это автосканирование? Если только для контроля работоспособности раз в час например.
-
- Рядовой
- Сообщения: 82
- Зарегистрирован: 24 июн 2020, 21:21
- Откуда: RUS31
- Имя: Egor
- Благодарил (а): 1 раз
Сканироваие 1-Wire. Массив DS18B20
Игорь, сюдя по вашим замечаниям, вам по силам самому написать пользовательский блок, согласно вашего технического задания. Успехов!))Igor писал(а): 24 май 2022, 12:12 В выше приведенном блоке вообще какой то каламбур))
#include <string.h> зачем это? уже есть в компиляторе
Сканироваие 1-Wire. Массив DS18B20
[ref]rogekam[/ref], Спасибо!
Я так и делаю, За пол дня написал скетч собранный из разных источников.
1. сканирует шину 1ware
2. записывает адрес датчика в массив
3.массив записывает по назначенному адресу в EEPROM
4. читает из адреса еепром в массив
библиотека подхватывает и показывает температуру совсем на другом скетче, без всяких сканирований!
Я совсем не программист, буду дальше развивать, думал уже есть решения ))
Я так и делаю, За пол дня написал скетч собранный из разных источников.
1. сканирует шину 1ware
2. записывает адрес датчика в массив
3.массив записывает по назначенному адресу в EEPROM
4. читает из адреса еепром в массив
библиотека подхватывает и показывает температуру совсем на другом скетче, без всяких сканирований!
Я совсем не программист, буду дальше развивать, думал уже есть решения ))
Сканироваие 1-Wire. Массив DS18B20
Накидал простейший блок на библиотеке DallasTemperature.h -- ее нужно установить, и конечно OneWire.h
Думаю библиотека DallasTemperature.h должна идеально подойти для разных задач с DS18B20
Никаких сканирований, в настройках только пин датчика, при 1 на входе блок отработает (рекомендую раз в 2 сек)
Пример проекта Блок
Думаю библиотека DallasTemperature.h должна идеально подойти для разных задач с DS18B20
Никаких сканирований, в настройках только пин датчика, при 1 на входе блок отработает (рекомендую раз в 2 сек)
Пример проекта Блок
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя