Прошу прощения, как-то неправильно что-то нажал... Пожалуйста, дайте ссылку, где посмотреть следующее решение (желательно, без использования библиотеки Dallas Temperature). Насколько я понял, при параллельном подключении сенсоров данные считываются в связи с их серийными номерами. На практике подключение датчиков будет произвольным: возможно - не все датчики, возможно все, но в произвольном порядке. Или замена датчика при выходе из строя. Мне нужно, чтобы температура снималась, будучи подвязанной именно к разъемам. К примеру: 1 разъем - температура за окном, 2 разъем - в подвале, 3 разъем в комнате, 4 разъем - на чердаке. Заранее спасибо!
дак оне адресами отличаются, можно привязать каждый адрес даччика к месту установки, через структуру, хранить в ROM. Как только один из даччиков в каком либо месте поменялся - сохранить вместо прежнего. Константой будет PlaceIndex - место где установлен даччик (типа номер разъема, как хочет ТС), а адреса даччиков структурой будут привязаны к ним.
С этими датчиками точно не решается сидя на одной линии. Задача - не лазя в программу заменить датчик и должно работать. Как определить в какую структуру что писать если заменили сразу два датчика?
С этими датчиками точно не решается сидя на одной линии. Задача - не лазя в программу заменить датчик и должно работать. Как определить в какую структуру что писать если заменили сразу два датчика?
С этими датчиками точно не решается сидя на одной линии. Задача - не лазя в программу заменить датчик и должно работать. Как определить в какую структуру что писать если заменили сразу два датчика?
Повесить инструкцию: менять по одному.
Но читать её не будут.
Какие еще инструкции для себя родимого! По одному все блеск. А по несколько - делаю с "меню" т.е. списком точек установки. Но у меня везде экран есть где такая проблема. А вот без экрана и если датчики погорели... наверно никак.
Хотя есть там регистры EEPROM для тригера. В них перед установкой нового датчика можно зашить код места установки. Если устройство обнаруживает ранее неизвестный датчик то читает куда его поставили из его же памяти. Но я так не пробовал.
Вариант с подключением на разные пины имеет минус - много лишних проводов.
Мне нужно, чтобы температура снималась, будучи подвязанной именно к разъемам. К примеру: 1 разъем - температура за окном, 2 разъем - в подвале, 3 разъем в комнате, 4 разъем - на чердаке. Заранее спасибо!
Если для комнат, то, как уже здесь сказали, без дополнительных проводв - никак.
Если для колонны, то можно автоопределять датчики по грандиенту роста температур после включения нагрева.
Если для колонны, то можно автоопределять датчики по грандиенту роста температур после включения нагрева.
Это правда. Но представим себе ситуацию, что аппарат стоит в теплом помещении. Заливаем в куб холодное содержимое (брага, СС...). И ага? То есть, надо ждать некоторое время для разгрева и только потом автоопределять датчики. Неизящный выход. Но спасибо за мнение. Выудил из темы, что (и для колонны и для комнат-окон-чердаков) надо сажать датчики на разные пины. Самое простое решение.
не. не очень. Если датчики внутри оборудования, той же колонны, то с зажигалкой к ним не доберешся. И даже пальцем не нагреешь (я обычно где можно достать без зажигалки обхожусь). Но у контроллеров таких серьезных устройств как правило есть экран, а значить меню и без вопросов. Кстати "режим привязки" как бы тоже предполагает то самое меню. А вот лишние провода в оборудовании создают проблему не только сами по себе, им еще раземы нужны многоконтактные, что сводит на нет основное преимущество интерфейса. Так уж лучше терморезисторы ставить.
То есть, надо ждать некоторое время для разгрева и только потом автоопределять датчики. Неизящный выход.
Очень изящный на самом деле, т.к. "автоопределять датчики" только раз при первом пуске (например пробном, на воде), потом сохранить в eeprom и пользоватся готовым.
В меню устройства сделать служебный пункт "Замена датчиков", железка опрашивает все датчики - вытаскиваем "больной" - прога говорит датчик №Х удален, вставляем новый - скетч спрашивает это вставили в №Х? - говорим да - MAC адрес привязался к нужному месту.
ты слов не жалей, ты же хочешь, чтоб мы чонибуть поняли?
Прошу прощения, как-то неправильно что-то нажал... Пожалуйста, дайте ссылку, где посмотреть следующее решение (желательно, без использования библиотеки Dallas Temperature). Насколько я понял, при параллельном подключении сенсоров данные считываются в связи с их серийными номерами. На практике подключение датчиков будет произвольным: возможно - не все датчики, возможно все, но в произвольном порядке. Или замена датчика при выходе из строя. Мне нужно, чтобы температура снималась, будучи подвязанной именно к разъемам. К примеру: 1 разъем - температура за окном, 2 разъем - в подвале, 3 разъем в комнате, 4 разъем - на чердаке. Заранее спасибо!
Без особых трудозатрат - только рассадив далласы на разные пины контроллера.
struct {
uint8_t PlaceIndex;
uint64_t SensorAddress;
};
Меню городить придёцца, чтоб вручную привязывать адрес даччика к его месту установки.
Спасибо, но ой-йой! Лучше на разные пины: в Меге их за глаза :)
Понял, спасибо!
Дед, какое меню?
Садим каждый на свой пин и читаем то что есть.
ну дак если Мега, тогда смысл вопроса теряется.
Да даже если не Мега, то можно их подключить в несколько раз больше, чем на картинке.
Меню городить придёцца, чтоб вручную привязывать адрес даччика к его месту установки.
Хранить в ROM.
поясни свою мысль. - не понял.
На мой взгляд, если подключать как на картинке ТС - задача нерешаемая в принципе. Два параллельных провода невозможно различить программно...
поясни свою мысль. - не понял.
Адрес #1 - место #1 (сортир), адрес #2 - место #2 (диван). Потом просто в цыкле всё делаем.
дак оне адресами отличаются, можно привязать каждый адрес даччика к месту установки, через структуру, хранить в ROM. Как только один из даччиков в каком либо месте поменялся - сохранить вместо прежнего. Константой будет PlaceIndex - место где установлен даччик (типа номер разъема, как хочет ТС), а адреса даччиков структурой будут привязаны к ним.
На мой взгляд, если подключать как на картинке ТС - задача нерешаемая в принципе
Да чойта? всё решается.
ну ладно...значит я понял задачу по другому
С этими датчиками точно не решается сидя на одной линии. Задача - не лазя в программу заменить датчик и должно работать. Как определить в какую структуру что писать если заменили сразу два датчика?
С этими датчиками точно не решается сидя на одной линии. Задача - не лазя в программу заменить датчик и должно работать. Как определить в какую структуру что писать если заменили сразу два датчика?
Но читать её не будут.
Повесить инструкцию: менять по одному.
Но читать её не будут.
Даже если прочтут - это ничего не гарантирует, трактовок идеи "менять по одному" может быть несколько :)
С этими датчиками точно не решается сидя на одной линии. Задача - не лазя в программу заменить датчик и должно работать. Как определить в какую структуру что писать если заменили сразу два датчика?
Но читать её не будут.
Какие еще инструкции для себя родимого! По одному все блеск. А по несколько - делаю с "меню" т.е. списком точек установки. Но у меня везде экран есть где такая проблема. А вот без экрана и если датчики погорели... наверно никак.
Хотя есть там регистры EEPROM для тригера. В них перед установкой нового датчика можно зашить код места установки. Если устройство обнаруживает ранее неизвестный датчик то читает куда его поставили из его же памяти. Но я так не пробовал.
Вариант с подключением на разные пины имеет минус - много лишних проводов.
Вариант с подключением на разные пины имеет минус - много лишних проводов.
Ну это только если все датчики одним пучком в одном месте, рядом или размещены последовательно, а если
1 разъем - температура за окном, 2 разъем - в подвале, 3 разъем в комнате, 4 разъем - на чердаке
то - что в лоб, что по лбу, один хрен тянуть кучу проводов надо.
Мне нужно, чтобы температура снималась, будучи подвязанной именно к разъемам. К примеру: 1 разъем - температура за окном, 2 разъем - в подвале, 3 разъем в комнате, 4 разъем - на чердаке. Заранее спасибо!
Если для комнат, то, как уже здесь сказали, без дополнительных проводв - никак.
Если для колонны, то можно автоопределять датчики по грандиенту роста температур после включения нагрева.
Если для колонны, то можно автоопределять датчики по грандиенту роста температур после включения нагрева.
Это правда. Но представим себе ситуацию, что аппарат стоит в теплом помещении. Заливаем в куб холодное содержимое (брага, СС...). И ага? То есть, надо ждать некоторое время для разгрева и только потом автоопределять датчики. Неизящный выход. Но спасибо за мнение. Выудил из темы, что (и для колонны и для комнат-окон-чердаков) надо сажать датчики на разные пины. Самое простое решение.
Всё очень просто:
Входим в режим привязки.
Греем первый датчик зажигалкой, сохраняем под номером 1
И так далее...
не. не очень. Если датчики внутри оборудования, той же колонны, то с зажигалкой к ним не доберешся. И даже пальцем не нагреешь (я обычно где можно достать без зажигалки обхожусь). Но у контроллеров таких серьезных устройств как правило есть экран, а значить меню и без вопросов. Кстати "режим привязки" как бы тоже предполагает то самое меню. А вот лишние провода в оборудовании создают проблему не только сами по себе, им еще раземы нужны многоконтактные, что сводит на нет основное преимущество интерфейса. Так уж лучше терморезисторы ставить.
То есть, надо ждать некоторое время для разгрева и только потом автоопределять датчики. Неизящный выход.
Очень изящный на самом деле, т.к. "автоопределять датчики" только раз при первом пуске (например пробном, на воде), потом сохранить в eeprom и пользоватся готовым.
В меню устройства сделать служебный пункт "Замена датчиков", железка опрашивает все датчики - вытаскиваем "больной" - прога говорит датчик №Х удален, вставляем новый - скетч спрашивает это вставили в №Х? - говорим да - MAC адрес привязался к нужному месту.
В общем, тема позволила сделать мне следующие выводы:
1. Что так, что так - будет одинаковое количество проводов (такова уж конфигурация устройства) .
2. На Меге пинов достаточно, поэтому городить программный огород нет смысла: буду ставить сенсоры каждый на свой пин.
Всем большое спасибо!