Кабель витая пара 5е экранированный жила 0.51 медь. Использую метод подключения как рекомендуют в этой статье. Линия исключительно Линейной топологии 25 метров 10 датчиков с длинной примерно 60 см. Отдельное питание датчиков. Плата Nano. На конце линии конденсатор 200мф на 10В. При опросе датчиков каждую минуту примерно раз или два раза в сутки бывает из 10 датчиков пару не находит.
Второй интересующий вопрос в размере подтягивающего резистора в рекомендации резистор 4,7кОм. Понятно, что линия тоже имеет сопротивление. Но непонятно почему у меня диапазон на моем кабеле в 25 метров от 1 кОм до 2 кОм. Если 1 кОм учащаются потери датчиков. Свыше 2 кОм ошибки контрольных сумм. 1.5 кОм примерно работает. Почему такая зависимость от сопротивления? И в какую сторону склонять больше или меньше?
Если линия запитана от контроллера и запускается одновременно преобразование на всех датчиках, может просаживаться питание и тогда датчики непредсказуемо сбоят.
если линия - 4-парник заведите питание с двух сторон линии.
также правильно запитать линию от отдельного понижателя.
также около каждого датчика можно повесить электролит 100-450 мкф.
В рекомендациях написано (пруф искать не хочу) что при длинной линии и множестве датчиков подтягивать резистором 1..1,8кОм, при этом в разрыв линии данных КАЖДОГО датчика 100Ом. От себя добавил бы на каждый датчик по питанию 0,1мкФ и по шине 100пФ.
Что есть длинная линия? 25 метров и 6 датчиков является таковой?
Понятное дело, что резистор необходимо меньшего сопротивления. Вопрос как он влияет на канал и опрос датчиков. Везде все пишут по-разному. необходимо как можно меньше или наоборот. Или он вообще не как не влияет любой какой найдешь делаешь от 1 до 2 КоМ и все будут работать?
Меньше сопротивление - больше ток потребления но выше помехоустойчивость. Гипотетически, при довольно малых сопротивлениях (рассчитать конкретные цифры невозможно не имея параметров выходных ключей датчиков, но думаю это начнёт проявляться уже на 1кОм и ниже) возможно искажение температуры в большую сторону за счёт разогрева самих этих ключей. Если ошибок нет, то, опять же гипотетически, чем больше тем лучше. Попробуйте поставить переменник и покрутить от 5кОм в меньшую сторону вплоть до сотен Ом.
Тут проблема не в сопротивлении линии, а в её ёмкости.
Поэтому правильно делаете снижая резистор привязки.
Попробуйте ради эксперимента подавать питание и сигнал не так как рекомендует коран,
то есть сигнал пустите не свитым с землёй, а сразу по двум свитым проводам витой пары.
Не знаю почему у вас всё так плохо,
у меня на несколько десятков метров по каким попало кабелям работают.
Витая пара переходит в сигнализационный кабель.
Несколько десятков датчиков.
И даже по звезде.
Не знаю почему у вас всё так плохо,
у меня на несколько десятков метров по каким попало кабелям работают.
Точно не знаете? Объясняю.
У Darkheraldчто имеется:
//При опросе датчиков каждую минуту примерно раз или два раза в сутки бывает из 10 датчиков пару не находит.
Т.е. очень изредка сбоит. Скорей всего и у Вас оно гдето также. Но нормальная программная реализация работы с датчиком должна эти сбои обнаруживать и както реагировать на них, например повторить запрос. Или считать валидным предыдущее измерение. Соответственно для системы это будет не критичным, пока интенсивность сбоев не высока и все как бы работает, а можно считать что и не как бы, а вполне нормально. Но если подход строгий - ошибка так ошибка, да еще с фиксацией, да с логами то такая фигня будет обнаруживатся.
О природе артефакта. Я не согласен что дело в емкости линии. Её влияние не проявляется пару раз в сутки, оно стабильно или пошти стабильно валило бы обмен. Здесь таки импульсная помеха изредка прилетает. Чем больше сопротивление тем меньшая мощность помехи вызовет сбой. Но не исключен и косяк в коде, будет там какое прерывание изредка попадать на обмен - будет похожий эффект.
Довольно длительный опыт использования в разных условиях выявил следующие недостатки Dallas'ов, в частности ds18D20:
1. При переподключении питания иногда возможна рандомная смена адреса датчика. Причём как правило с правильного (для 18b20) 0x28.. на 0x20, иногда после очередного переподключения старый адрес возвращается. При этом контрольная сумма естественно совпадать перестаёт, хотя датчик исправно откликается на новый адрес и продолжает отдавать значения регистров в шину. Так что контролировать корректность данных на шине вычислением контрольной суммы бессмысленно.
2. Варианты исполнения в металлических колбах все как один завышают температуру на несколько градусов, особенно в холодных условиях. Поэтому крайне не рекомендую их к покупке. Могу предположить что связано это c плохой теплопроводностью клея, которым они залиты в колбе. Соответственно тепловой контакт с окружающей средой ухудшен и начинает влиять паразитный "саморазогрев" кристалла.
1. При переподключении питания иногда возможна рандомная смена адреса датчика. Причём как правило с правильного (для 18b20) 0x28.. на 0x20, иногда после очередного переподключения старый адрес возвращается. При этом контрольная сумма естественно совпадать перестаёт, хотя датчик исправно откликается на новый адрес и продолжает отдавать значения регистров в шину. Так что контролировать корректность данных на шине вычислением контрольной суммы бессмысленно.
Это у Вас, сильная трава.)))
Влад, по какой-то причине прет непонятный мусор, к адресу датчика отношения не имеющий. У меня годами работают и все адреса на месте.
Возможно мне попалась такая партия (брал 20шт.). Но уже как минимум три раза такое наблюдал. В данный момент в рабочем изделии такой один стоИт. Работает, температуру отдаёт, но адрес с недавних пор имеет 0x20... В причины особо не вникал, да и какой смысл. Заметил лишь, что это происходит после отключении питания: перестаёт отвечать один датчик, запрашиваем адрес, получаем 0x20 в первом байте. Меняем в скетче (в моём случае адреса сидят в EEPROM и меняются без перезаливки скетча), всё, продолжает работать как раньше.
p.s. Хотя нет, вспомнил, партия не при чём. C "колпачковыми" такое же творилось, брал в другое время, у другого продавца, вероятность того что сами микросхемы были "из той же коробки" практически нулевая.
C "колпачковыми" такое же творилось, брал в другое время, у другого продавца, вероятность того что сами микросхемы были "из той же коробки" практически нулевая.
Имею парочку колпачковых. Ниче они не завышают, один вот прямо сейчас подключал, показывает как и безкорпусной. Второй с самогонном трудится, регулярно поверяется ;) Ну по температуре кипения не воды. Все четко. Единственное что более инерционные конечно.
CRC контролю всегда, я его прямо в либе контролю, потому не контролить в проектах несколько затруднительно ;) Все с ней как положено, раз 5 в жизни видел ошибку эту.
ПС. Пойду ка поверю датчики в аппарате, поверочный раствор дозрел )))
Результаты поверки. Первая капля при показаниях в баке 90,4С. Там "неколпачковый" в медной трубке ниже уровня жидкости. Колпачковый в дефлегматоре при этом показал 78,1. Все в соответствии с квантовой физикой и опытом побратимов;) Почему так точно получается? Датчики перед установкой калибровались по 2-м точкам: тающий лед и кипящая вода. При работе применяется коррекция таким кодом.
case OneWire::TRUE_RESULT:
Tkorr=*Termo1Val;
Tkorr-=sq(Tkorr-240)/114921-4;
*Termo1Val=(Tkorr*10+8)>>4;
return true;
Я уже даже и не помню откуда оно такое и что там что значит, но оно работает.
Не знаю почему у вас всё так плохо,
у меня на несколько десятков метров по каким попало кабелям работают.
Точно не знаете? Объясняю.
У Darkheraldчто имеется:
//При опросе датчиков каждую минуту примерно раз или два раза в сутки бывает из 10 датчиков пару не находит.
Т.е. очень изредка сбоит. Скорей всего и у Вас оно гдето также. Но нормальная программная реализация работы с датчиком должна эти сбои обнаруживать и както реагировать на них, например повторить запрос. Или считать валидным предыдущее измерение. Соответственно для системы это будет не критичным, пока интенсивность сбоев не высока и все как бы работает, а можно считать что и не как бы, а вполне нормально. Но если подход строгий - ошибка так ошибка, да еще с фиксацией, да с логами то такая фигня будет обнаруживатся.
О природе артефакта. Я не согласен что дело в емкости линии. Её влияние не проявляется пару раз в сутки, оно стабильно или пошти стабильно валило бы обмен. Здесь таки импульсная помеха изредка прилетает. Чем больше сопротивление тем меньшая мощность помехи вызовет сбой. Но не исключен и косяк в коде, будет там какое прерывание изредка попадать на обмен - будет похожий эффект.
Можно Вас попросить помочь сделать повторный опрос датчиков? Как он может быть реализован? Необходимо опросить все датчики, затем сбросить поиск и заново опросить датчики. Я правильно понял?
Не помню! Давно было, года 4 назад. Поискал маленько по инету, вот это https://www.adventx.com.ua/automation/article/ds18b20_precision/ я точно тогда изучал. Картинку помню. А что потом, сам както посчитал или где нашел готовое - не помню. Но буду вспоминать ))
По коду поправка считается только в стр.3 . Стр.4 это преобразование значения температуры из формата датчика в двоичнодесятичный с точностью до десятой (например при *Termo1Val =234 значить температура 23,4С) и округлением к ближайшему целому (отсюда +8 перед сдвигом). Поправка считается по сырым данным с датчика, потому температуры везде перевожу в формат датчика. Из теории по ссылке следует что есть "TZERO_SLOPE значение температуры в которой кривая ошибки имеет нулевой наклон" Для 15С в формате датчика будет 15*16=240, первый коэффициент похож, погрешность при этой температуре наверно -0,25С в формате датчика будет 0,25*16=4, тоже есть. Кипело при 99,75С по образцовому термометру, а датчик давал 100,5С погрешность 0,75С, тогда в формате датчика (99,75-15)*16=1356 и (0,75-(-0,25))*16=16, а коэффициент (1356^2)/16=114921.
Можно Вас попросить помочь сделать повторный опрос датчиков? Как он может быть реализован? Необходимо опросить все датчики, затем сбросить поиск и заново опросить датчики. Я правильно понял?
Можно конечно и так, но самый простой вариант - игнорировать неудачные попытки. Это основывается на том, что температура не изменяется резко (ну не атомный реактор или реактивный двигатель у Вас!). Поэтому при ошибке считаем что температура осталась такой как была на прошлом удачном опросе. При редких ошибках это отлично работает.
Можно Вас попросить помочь сделать повторный опрос датчиков? Как он может быть реализован? Необходимо опросить все датчики, затем сбросить поиск и заново опросить датчики. Я правильно понял?
Можно конечно и так, но самый простой вариант - игнорировать неудачные попытки. Это основывается на том, что температура не изменяется резко (ну не атомный реактор или реактивный двигатель у Вас!). Поэтому при ошибке считаем что температура осталась такой как была на прошлом удачном опросе. При редких ошибках это отлично работает.
Именно так. Но это должно быть всего пару раз. На случай если реально обрыв датчика это было видно.
Значить тулим счетчик. После успешного получения значения в него пишем 0. После не успешного делаем +1 и проверяем не насчитал ли он допустим 5. Если насчитал, значить 5 раз подряд данных не пришло, считаем что обрыв.
Привет нужна помощь с дс18б20, суть вопроса один и тот же набор датчиков выдает разные показания на разных ардуино нано! Поясняю, есть у меня холодильная камера на 4 камеры, каждая камера оснащена пятью датчиками ds18b20, каждая камера подключена к разным ногам нано. Так вот столкнулся с проблеммой заменил ардуинку( менял скетч и дабы не лезть с ноутбуком вставил другую нано ) и показания начали прыгать +-2 ГРАДУСА, а некоторые датчики просто поднялись на 4-5 градусов, долго искал проблемму в коде, пока методом научного тыка не вставил старую нано с новой прошивкой и все заработало! Новых нано у меня много, и ведут себя все +- одинаково, одни брешут на 3, другие на 4 градуса, а старая нано одна, из предидущей закупки -показывает идеально. Новые нано при подключении датчиков на коротком проводе тоже показывает корректно, датчики установлены в камерах на витой паре 50-70 метров. Скетч одинаковый заливаю и на новые и на старую! Подскажите в чем проблемма и где капать
Капать в обращении к специалисту по месту проживания. Он и проверит как установлены датчики, какое воздействие на них оказывает окружающая среда и т.п.
Руководствуясь же данным описанием можно только пальцем тыкать в любое место конструкции. Шанс найти в этом месте проблему - 80%.
Капать в обращении к специалисту по месту проживания. Он и проверит как установлены датчики, какое воздействие на них оказывает окружающая среда и т.п.
Руководствуясь же данным описанием можно только пальцем тыкать в любое место конструкции. Шанс найти в этом месте проблему - 80%.
То градусники врут, то Наны, схемы подключения и установки нет, кода нет, перед установкой градусники не тестировались. В таких условиях только энопланетяне проблему сразу детектируют.
Как подается питание на датчики? Не меняется ли оно при смене ардуины? Сохранится ли изменение температуры, если запитать от отдельного источника? Можно проверить на тестовом скетче.
Как подается питание на датчики? Не меняется ли оно при смене ардуины? Сохранится ли изменение температуры, если запитать от отдельного источника? Можно проверить на тестовом скетче.
Питание от внешнего источника, напряжение на датчики непосредственно 5.09 вольта, просадки нет, всё аналогично, на одном порту ардуинки 5 датчиков, тестовый скетч на новой ардуинке показывает скачки температуры и завышение- занижение, тестовый скетч на старой ардуинке показывает все ровно, разница между датчиками 0,13, есть ещё косяк - при подключении новой ардуинки к сериал порт некоторое время идут иероглифы на компорт- 10 сек, потом иероглифы перекодируются в показания, на старой такой странности не наблюдается, скетчи одинаковые, схема тоже, меняется только ардуино нано, она на штырьках, старая достаётся, новая ставится???
Что написано на чипе ? Какой кварц установлен? Частоту миллисом проверяли?
Частоту не проверял, она может влиять? Вавгат надписи нет, фото по ссылке Посмотреть альбом «1 декабря 2020» можно по ссылке: https://yadi.sk/a/uUxsGw953PyDmA, старая выглядит почти так же, снизу транзистора или диода нет, её не могу сфотать, установлена
Нашёл старую на фото слева новая которая даёт плавающие показания, справа старая, на ней всё ровно на оранжевом фоне Посмотреть альбом «1 декабря 2020» можно по ссылке: https://yadi.sk/a/uUxsGw953PyDmA
Почему все тянут "чистый" 1-ware подтяжками и не используют указанный метод? От незнания или нехотения без трудностей?
Поддерживаю вопрос, подскажите где купить ?
Здравствуйте.
Подскажите советом.
Кабель витая пара 5е экранированный жила 0.51 медь. Использую метод подключения как рекомендуют в этой статье. Линия исключительно Линейной топологии 25 метров 10 датчиков с длинной примерно 60 см. Отдельное питание датчиков. Плата Nano. На конце линии конденсатор 200мф на 10В. При опросе датчиков каждую минуту примерно раз или два раза в сутки бывает из 10 датчиков пару не находит.
Второй интересующий вопрос в размере подтягивающего резистора в рекомендации резистор 4,7кОм. Понятно, что линия тоже имеет сопротивление. Но непонятно почему у меня диапазон на моем кабеле в 25 метров от 1 кОм до 2 кОм. Если 1 кОм учащаются потери датчиков. Свыше 2 кОм ошибки контрольных сумм. 1.5 кОм примерно работает. Почему такая зависимость от сопротивления? И в какую сторону склонять больше или меньше?
где стоит 4,7кОм ?
где стоит 4,7кОм ?
У контролера, но проверял и в конце линии не заметил разницы.
Кабель витая пара 5е экранированный жила 0.51 медь.
Точно медь? Не омедненная как почти все сейчас.
ПС. Потрясен... По ссылке в схеме последовательно 4,7КОм стоит предохранитель 8/
Кабель витая пара 5е экранированный жила 0.51 медь.
Точно медь? Не омедненная как почти все сейчас.
Точно
Если линия запитана от контроллера и запускается одновременно преобразование на всех датчиках, может просаживаться питание и тогда датчики непредсказуемо сбоят.
если линия - 4-парник заведите питание с двух сторон линии.
также правильно запитать линию от отдельного понижателя.
также около каждого датчика можно повесить электролит 100-450 мкф.
В рекомендациях написано (пруф искать не хочу) что при длинной линии и множестве датчиков подтягивать резистором 1..1,8кОм, при этом в разрыв линии данных КАЖДОГО датчика 100Ом. От себя добавил бы на каждый датчик по питанию 0,1мкФ и по шине 100пФ.
Что есть длинная линия? 25 метров и 6 датчиков является таковой?
Понятное дело, что резистор необходимо меньшего сопротивления. Вопрос как он влияет на канал и опрос датчиков. Везде все пишут по-разному. необходимо как можно меньше или наоборот. Или он вообще не как не влияет любой какой найдешь делаешь от 1 до 2 КоМ и все будут работать?
Меньше сопротивление - больше ток потребления но выше помехоустойчивость. Гипотетически, при довольно малых сопротивлениях (рассчитать конкретные цифры невозможно не имея параметров выходных ключей датчиков, но думаю это начнёт проявляться уже на 1кОм и ниже) возможно искажение температуры в большую сторону за счёт разогрева самих этих ключей. Если ошибок нет, то, опять же гипотетически, чем больше тем лучше. Попробуйте поставить переменник и покрутить от 5кОм в меньшую сторону вплоть до сотен Ом.
Тут проблема не в сопротивлении линии, а в её ёмкости.
Поэтому правильно делаете снижая резистор привязки.
Попробуйте ради эксперимента подавать питание и сигнал не так как рекомендует коран,
то есть сигнал пустите не свитым с землёй, а сразу по двум свитым проводам витой пары.
Не знаю почему у вас всё так плохо,
у меня на несколько десятков метров по каким попало кабелям работают.
Витая пара переходит в сигнализационный кабель.
Несколько десятков датчиков.
И даже по звезде.
Заметьте год- 2015. До сих пор работает.
http://arduino.ru/forum/obshchii/kolko-ds18b20-mozhno-povesit-na-odnu-shinu#comment-114638
http://arduino.ru/forum/obshchii/kolko-ds18b20-mozhno-povesit-na-odnu-shinu#comment-114914
А теперь 2012 год пошёл:
http://arduino.ru/forum/apparatnye-voprosy/ds-18b20-udlinil-kabel#comment-19896
Есть ещё схемка на транзисторах - "обостритель" фронтов сигнала для Далласа
https://uchil.net/?cm=79983
Не знаю почему у вас всё так плохо,
у меня на несколько десятков метров по каким попало кабелям работают.
Точно не знаете? Объясняю.
У Darkheraldчто имеется:
//При опросе датчиков каждую минуту примерно раз или два раза в сутки бывает из 10 датчиков пару не находит.
Т.е. очень изредка сбоит. Скорей всего и у Вас оно гдето также. Но нормальная программная реализация работы с датчиком должна эти сбои обнаруживать и както реагировать на них, например повторить запрос. Или считать валидным предыдущее измерение. Соответственно для системы это будет не критичным, пока интенсивность сбоев не высока и все как бы работает, а можно считать что и не как бы, а вполне нормально. Но если подход строгий - ошибка так ошибка, да еще с фиксацией, да с логами то такая фигня будет обнаруживатся.
О природе артефакта. Я не согласен что дело в емкости линии. Её влияние не проявляется пару раз в сутки, оно стабильно или пошти стабильно валило бы обмен. Здесь таки импульсная помеха изредка прилетает. Чем больше сопротивление тем меньшая мощность помехи вызовет сбой. Но не исключен и косяк в коде, будет там какое прерывание изредка попадать на обмен - будет похожий эффект.
https://www.maximintegrated.com/en/design/technical-documents/tutorials/...
https://www.maximintegrated.com/en/support/faqs/ds18b20-faq.html
Довольно длительный опыт использования в разных условиях выявил следующие недостатки Dallas'ов, в частности ds18D20:
1. При переподключении питания иногда возможна рандомная смена адреса датчика. Причём как правило с правильного (для 18b20) 0x28.. на 0x20, иногда после очередного переподключения старый адрес возвращается. При этом контрольная сумма естественно совпадать перестаёт, хотя датчик исправно откликается на новый адрес и продолжает отдавать значения регистров в шину. Так что контролировать корректность данных на шине вычислением контрольной суммы бессмысленно.
2. Варианты исполнения в металлических колбах все как один завышают температуру на несколько градусов, особенно в холодных условиях. Поэтому крайне не рекомендую их к покупке. Могу предположить что связано это c плохой теплопроводностью клея, которым они залиты в колбе. Соответственно тепловой контакт с окружающей средой ухудшен и начинает влиять паразитный "саморазогрев" кристалла.
Самовольная смена прошитого лазером идентификатора датчика?
Сказочное поведение ds18b20...
1. При переподключении питания иногда возможна рандомная смена адреса датчика. Причём как правило с правильного (для 18b20) 0x28.. на 0x20, иногда после очередного переподключения старый адрес возвращается. При этом контрольная сумма естественно совпадать перестаёт, хотя датчик исправно откликается на новый адрес и продолжает отдавать значения регистров в шину. Так что контролировать корректность данных на шине вычислением контрольной суммы бессмысленно.
Самовольная смена прошитого лазером идентификатора датчика?
Отдаваемого в шину при опросе.
Самовольная смена прошитого лазером идентификатора датчика?
Отдаваемого в шину при опросе.
Это у Вас, сильная трава.)))
Влад, по какой-то причине прет непонятный мусор, к адресу датчика отношения не имеющий. У меня годами работают и все адреса на месте.
Возможно мне попалась такая партия (брал 20шт.). Но уже как минимум три раза такое наблюдал. В данный момент в рабочем изделии такой один стоИт. Работает, температуру отдаёт, но адрес с недавних пор имеет 0x20... В причины особо не вникал, да и какой смысл. Заметил лишь, что это происходит после отключении питания: перестаёт отвечать один датчик, запрашиваем адрес, получаем 0x20 в первом байте. Меняем в скетче (в моём случае адреса сидят в EEPROM и меняются без перезаливки скетча), всё, продолжает работать как раньше.
p.s. Хотя нет, вспомнил, партия не при чём. C "колпачковыми" такое же творилось, брал в другое время, у другого продавца, вероятность того что сами микросхемы были "из той же коробки" практически нулевая.
Первый байт - это ID семейства. По ходу дела DS18B20 трансформировался во что-то другое.
А нет возможности уйти от подтягивающего резистора? Обвязка которая подстраивалась под емкость и длину линии?
Все дело в емкости линии, я думаю, и заваленных фронтах.
А нет возможности уйти от подтягивающего резистора? Обвязка которая подстраивалась под емкость и длину линии?
а зачем? резисторы нынче не на вес золота....
А нет возможности уйти от подтягивающего резистора? Обвязка которая подстраивалась под емкость и длину линии?
а зачем? резисторы нынче не на вес золота....
Чтобы не ловить больше меньше под каждую линию и емкость сети.
C "колпачковыми" такое же творилось, брал в другое время, у другого продавца, вероятность того что сами микросхемы были "из той же коробки" практически нулевая.
Имею парочку колпачковых. Ниче они не завышают, один вот прямо сейчас подключал, показывает как и безкорпусной. Второй с самогонном трудится, регулярно поверяется ;) Ну по температуре кипения не воды. Все четко. Единственное что более инерционные конечно.
CRC контролю всегда, я его прямо в либе контролю, потому не контролить в проектах несколько затруднительно ;) Все с ней как положено, раз 5 в жизни видел ошибку эту.
ПС. Пойду ка поверю датчики в аппарате, поверочный раствор дозрел )))
Результаты поверки. Первая капля при показаниях в баке 90,4С. Там "неколпачковый" в медной трубке ниже уровня жидкости. Колпачковый в дефлегматоре при этом показал 78,1. Все в соответствии с квантовой физикой и опытом побратимов;) Почему так точно получается? Датчики перед установкой калибровались по 2-м точкам: тающий лед и кипящая вода. При работе применяется коррекция таким кодом.
Я уже даже и не помню откуда оно такое и что там что значит, но оно работает.
Заметил особенность отвала датчиков.
Если в сеть 220 вставляют зарядное устройство или блок питания от планшета. Появляются проблемы с датчиками.
Как можно уберечь шлейф, от наводок по 220В. Фильтр на питании блока питания Arduino?
Как можно уберечь шлейф, от наводок по 220В.
дроссели и конденсаторы разных номиналов на питание - ничего нового вроде не придумали.
Не знаю почему у вас всё так плохо,
у меня на несколько десятков метров по каким попало кабелям работают.
Точно не знаете? Объясняю.
У Darkheraldчто имеется:
//При опросе датчиков каждую минуту примерно раз или два раза в сутки бывает из 10 датчиков пару не находит.
Т.е. очень изредка сбоит. Скорей всего и у Вас оно гдето также. Но нормальная программная реализация работы с датчиком должна эти сбои обнаруживать и както реагировать на них, например повторить запрос. Или считать валидным предыдущее измерение. Соответственно для системы это будет не критичным, пока интенсивность сбоев не высока и все как бы работает, а можно считать что и не как бы, а вполне нормально. Но если подход строгий - ошибка так ошибка, да еще с фиксацией, да с логами то такая фигня будет обнаруживатся.
О природе артефакта. Я не согласен что дело в емкости линии. Её влияние не проявляется пару раз в сутки, оно стабильно или пошти стабильно валило бы обмен. Здесь таки импульсная помеха изредка прилетает. Чем больше сопротивление тем меньшая мощность помехи вызовет сбой. Но не исключен и косяк в коде, будет там какое прерывание изредка попадать на обмен - будет похожий эффект.
Можно Вас попросить помочь сделать повторный опрос датчиков? Как он может быть реализован? Необходимо опросить все датчики, затем сбросить поиск и заново опросить датчики. Я правильно понял?
А каким образом считать поправочные коэффициенты???
Не помню! Давно было, года 4 назад. Поискал маленько по инету, вот это https://www.adventx.com.ua/automation/article/ds18b20_precision/ я точно тогда изучал. Картинку помню. А что потом, сам както посчитал или где нашел готовое - не помню. Но буду вспоминать ))
По коду поправка считается только в стр.3 . Стр.4 это преобразование значения температуры из формата датчика в двоичнодесятичный с точностью до десятой (например при *Termo1Val =234 значить температура 23,4С) и округлением к ближайшему целому (отсюда +8 перед сдвигом). Поправка считается по сырым данным с датчика, потому температуры везде перевожу в формат датчика. Из теории по ссылке следует что есть "TZERO_SLOPE значение температуры в которой кривая ошибки имеет нулевой наклон" Для 15С в формате датчика будет 15*16=240, первый коэффициент похож, погрешность при этой температуре наверно -0,25С в формате датчика будет 0,25*16=4, тоже есть. Кипело при 99,75С по образцовому термометру, а датчик давал 100,5С погрешность 0,75С, тогда в формате датчика (99,75-15)*16=1356 и (0,75-(-0,25))*16=16, а коэффициент (1356^2)/16=114921.
Можно Вас попросить помочь сделать повторный опрос датчиков? Как он может быть реализован? Необходимо опросить все датчики, затем сбросить поиск и заново опросить датчики. Я правильно понял?
Можно конечно и так, но самый простой вариант - игнорировать неудачные попытки. Это основывается на том, что температура не изменяется резко (ну не атомный реактор или реактивный двигатель у Вас!). Поэтому при ошибке считаем что температура осталась такой как была на прошлом удачном опросе. При редких ошибках это отлично работает.
Можно Вас попросить помочь сделать повторный опрос датчиков? Как он может быть реализован? Необходимо опросить все датчики, затем сбросить поиск и заново опросить датчики. Я правильно понял?
Можно конечно и так, но самый простой вариант - игнорировать неудачные попытки. Это основывается на том, что температура не изменяется резко (ну не атомный реактор или реактивный двигатель у Вас!). Поэтому при ошибке считаем что температура осталась такой как была на прошлом удачном опросе. При редких ошибках это отлично работает.
Именно так. Но это должно быть всего пару раз. На случай если реально обрыв датчика это было видно.
Значить тулим счетчик. После успешного получения значения в него пишем 0. После не успешного делаем +1 и проверяем не насчитал ли он допустим 5. Если насчитал, значить 5 раз подряд данных не пришло, считаем что обрыв.
Привет нужна помощь с дс18б20, суть вопроса один и тот же набор датчиков выдает разные показания на разных ардуино нано! Поясняю, есть у меня холодильная камера на 4 камеры, каждая камера оснащена пятью датчиками ds18b20, каждая камера подключена к разным ногам нано. Так вот столкнулся с проблеммой заменил ардуинку( менял скетч и дабы не лезть с ноутбуком вставил другую нано ) и показания начали прыгать +-2 ГРАДУСА, а некоторые датчики просто поднялись на 4-5 градусов, долго искал проблемму в коде, пока методом научного тыка не вставил старую нано с новой прошивкой и все заработало! Новых нано у меня много, и ведут себя все +- одинаково, одни брешут на 3, другие на 4 градуса, а старая нано одна, из предидущей закупки -показывает идеально. Новые нано при подключении датчиков на коротком проводе тоже показывает корректно, датчики установлены в камерах на витой паре 50-70 метров. Скетч одинаковый заливаю и на новые и на старую! Подскажите в чем проблемма и где капать
Капать в обращении к специалисту по месту проживания. Он и проверит как установлены датчики, какое воздействие на них оказывает окружающая среда и т.п.
Руководствуясь же данным описанием можно только пальцем тыкать в любое место конструкции. Шанс найти в этом месте проблему - 80%.
Странно. Они или работают нормально или вообще не работают.
Капать в обращении к специалисту по месту проживания. Он и проверит как установлены датчики, какое воздействие на них оказывает окружающая среда и т.п.
Руководствуясь же данным описанием можно только пальцем тыкать в любое место конструкции. Шанс найти в этом месте проблему - 80%.
Вот это совет на спец форуме получил!
Подумал решил упростить вопрос, могут ли отличаться друг от друга китайские надо на чипе атмега 328 одинаковые на вид?
Датчики все одинаково сдвигаются по показаниям ?
Питание какое? Не паразитное, случаем?
Вот это совет на спец форуме получил!
Какой вопрос, такой ответ.
То градусники врут, то Наны, схемы подключения и установки нет, кода нет, перед установкой градусники не тестировались. В таких условиях только энопланетяне проблему сразу детектируют.
Как подается питание на датчики? Не меняется ли оно при смене ардуины? Сохранится ли изменение температуры, если запитать от отдельного источника? Можно проверить на тестовом скетче.
Как подается питание на датчики? Не меняется ли оно при смене ардуины? Сохранится ли изменение температуры, если запитать от отдельного источника? Можно проверить на тестовом скетче.
Питание от внешнего источника, напряжение на датчики непосредственно 5.09 вольта, просадки нет, всё аналогично, на одном порту ардуинки 5 датчиков, тестовый скетч на новой ардуинке показывает скачки температуры и завышение- занижение, тестовый скетч на старой ардуинке показывает все ровно, разница между датчиками 0,13, есть ещё косяк - при подключении новой ардуинки к сериал порт некоторое время идут иероглифы на компорт- 10 сек, потом иероглифы перекодируются в показания, на старой такой странности не наблюдается, скетчи одинаковые, схема тоже, меняется только ардуино нано, она на штырьках, старая достаётся, новая ставится???
Кварц штоле гуляет? Чудеса какие то.
Сбросьте фото Ваших нан с двух сторон.
А новые Нано не "вавгат" случаем?
Что написано на чипе ? Какой кварц установлен? Частоту миллисом проверяли?
А новые Нано не "вавгат" случаем?
Что написано на чипе ? Какой кварц установлен? Частоту миллисом проверяли?
Частоту не проверял, она может влиять? Вавгат надписи нет, фото по ссылке Посмотреть альбом «1 декабря 2020» можно по ссылке: https://yadi.sk/a/uUxsGw953PyDmA, старая выглядит почти так же, снизу транзистора или диода нет, её не могу сфотать, установлена
Нашёл старую на фото слева новая которая даёт плавающие показания, справа старая, на ней всё ровно на оранжевом фоне Посмотреть альбом «1 декабря 2020» можно по ссылке: https://yadi.sk/a/uUxsGw953PyDmA
dts, подскажите, удалось решить проблему? У меня ситуация точь в точь такая же. 4 датчика работают, не более...