И вся эта возня, естественно, не ради скорости, а ради компактности кода - подобная задачка легко влезет и в тиньку с 1К флеши (512 машинных команд максимум).
вообще-то преобразование кода датчика в "осмысленное число градусов" необходимо только для визуализации человеку. у упомянутой вами тиньки вряд ли будет возможность выводить результат измерений на дисплей, а выполнять какие-то регулирующие функции она сможет и при использовании "сырых" кодов датчика, достаточно привести все необходимые "пороги" в единый формат. и это даст выигрыш куда бОльший, нежели оптимизация метода конвертации кодов температуры.
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
Скорее всего снова на грабли с расчетом минусовых значений при полноразмерном преобразовании (с дробной частью) кому-то повезло наскочить. Так все уже даавно пережовано многократно.
Карма: 13
Рейтинг сообщений: 163
Зарегистрирован: Сб дек 22, 2012 08:17:42 Сообщений: 744 Откуда: Караганда, Казахстан
Рейтинг сообщения:0
akl писал(а):
И получите в результате фигню.
Да, что-то я поторопился. Если смотреть на код температуры, как на целое число, то оно же получается умноженным на 16. Тогда еще проще. Умножаем код температуры на 10, прибавляем 8 и делим на 16, после чего преобразуем полученное целое число в строку. Последнюю цифру интерпретируем, как десятые, остальные - как целую часть. Не забываем о знаке - его перед всеми операциями надо отделить и работать с абсолютной величиной кода температуры.
ARV писал(а):
у упомянутой вами тиньки вряд ли будет возможность выводить результат измерений на дисплей
Если индикатор представляет набор простых семисегментных светиков - безусловно. А если там что-то с SPI, I2C, да, хотя бы, с банальным сдвиговым регистром и сигналом передачи из него в регистр отображения, вроде 4094 (если не врет мой склероз - те же TIC'и) - легко.
_________________ Кто мешает тебе выдумать порох непромокаемый? (К. Прутков, мысль № 133)
Для удобства работы автоматики регуляторов достаточно сделать смещение нуля к началу шкалы измерений. А использовать дробную часть или обойтись без неё - это уже вопрос конкретной системы. Не забываем также и про время разогрева/ изменения температуры самого датчик(инерционность/постоянная времени теплопередачи корпуса) может получится так, что больше чем на полградуса контроль будет просто лишен смысла...
Качественное и безопасное устройство, работающее от аккумулятора, должно учитывать его физические и химические свойства, профили заряда и разряда, их изменение во времени и под влиянием различных условий, таких как температура и ток нагрузки. Мы расскажем о литий-ионных аккумуляторных батареях EVE и нескольких решениях от различных китайских компаний, рекомендуемых для разработок приложений с использованием этих АКБ. Представленные в статье китайские аналоги помогут заменить продукцию западных брендов с оптимизацией цены без потери качества.
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
Так для термометра и пол-градуса есть избыточная точность. Тем более, что разброс даже среди рядышком лежащих экземпляров из одной коробушки может иметь минимум +/-1. У потребителя сразу споры о "неисправностях/истинности" начинаются.
А тут уже писали по поводу саморазогрева датчика? Я этого почти не наблюдаю. Что раз в 800 мс читаю, что раз в 5 секунд. Температура меняется всего на 0,1 градус, что скорее в пределах шума и погрешностей... Он без гильзы, просто висит в воздухе в коробочке.
А другие пишут что разогрев аж до 0,5 градуса. Врут собаки или датчики разные?
С какой скоростью рекомендуется читать чтобы соблюсти компромисс точности и разогрева?
З.Ы. Вот еще нашел важнейшую статью по поводу помехозащищенности проводов и фильтра: https://consense.com.ua/forum/viewtopic.php?f=70&t=183 Оказывается применив фильтр, можно не боятся длинной связи на обычных проводах без экрана и витой пары.
_________________ Не променяю медь на ржавую несгорайку!
Карма: 90
Рейтинг сообщений: 1289
Зарегистрирован: Чт мар 18, 2010 23:09:57 Сообщений: 4510 Откуда: Планета Земля
Рейтинг сообщения:4 Медали: 1
Upgrader писал(а):
Я этого почти не наблюдаю.
Дак это же прекрасно Вообще, любое устройство, потребляющее энергию, должно греться. И чем больше оно потребляет, тем больше греется. Это физика, которую не нае.... Другое дело, в какой среде находится датчик. Если он висит в воздухе, который очень плохо проводит тепло, то на нём саморазогрев будет более ощутим, чем, например, на опущенном в воду, которая хорошо (по крайней мере - лучше, чем воздух) проводит тепло.
Карма: 29
Рейтинг сообщений: 645
Зарегистрирован: Сб май 14, 2011 21:16:04 Сообщений: 2690 Откуда: г. Чайковский
Рейтинг сообщения:0 Медали: 1
Upgrader писал(а):
А другие пишут что разогрев аж до 0,5 градуса. Врут собаки или датчики разные?
Китайцы давно освоили выпуск квази DS18B20. Уже сталкивался что при параллельном включении нескольких китаедатчиков линия dq просаживался так, что МК воспринимал ее как лог.0. Т.е. ток потребления по DQ был крайне большим. По одиночке работали, но на изменения температуры реагировали медленно.
Недавно купил себе на али партию типо DSок. Вроде как рабочие. Пускай лежат для опытов. Даже удалось деньги вернуть с али. Как я выяснил самый первый критерий для выяснения подделки это считать scrathpad и сравнить со значениями по умолчанию. Спойлер Для скринов воспользовался прогой от ARV, удобненькая.
Я еще в MAXIM отправил фото маркировок и вот ответ.
Цитата:
The markings are like the ones on your component but we see that the 3rd line (date code) and the 4th line (lot code) do not match.
Надо же... Моя программка кому-то нужна... Прямо прослезился...
Что касается саморазогрева, то лично могу засвидетельствовать: факт имел место быть именно на настоящих датчиках, купленных у официального дилера Dallas Semiconductor ещё до слияния с максимкой. Саморазогрев наблюдался при постоянном питании датчика, не при паразитном. И да, это был DS1820 в чистом виде, без буковок. Проблема на тот момент была признана производителем и описана в каком-то апноуте. С тех пор, возможно, что-то и изменилось...
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
Ааа, возможно разогрев может идти просто когда подключено питание. У меня по 3 проводам оно всегда подключено. И скорее всего так оно и есть, потому что я уже затра№ался калибровать, сейчас одно, а завтра другое. Но вот частота опроса точно не влияет на нагрев.
А стоит ли дергать питание каждую секунду? Хм...
_________________ Не променяю медь на ржавую несгорайку!
Тормозной термометр это неприятно так-же как неприятно иметь тормозной мультиметр. Кроме того нужно еще фильтровать значения чтобы не прыгали десятые градуса, а фильтр сам по себе еще больше тормозит, по этому замерять нужно чаще.
Я понял что DS18(B/S)20 не самый лучший термометр
_________________ Не променяю медь на ржавую несгорайку!
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения