ds18b20 не правильно показывает температуру.
- Войдите на сайт для отправки комментариев
Вс, 21/02/2016 - 19:28
Есть такой датчик температуры ds18b20, подключаю его по трем контактам с резисттором 4.7. Пробовал разные варианты скетча и разные платы ардуино, и всё время мне комнатную температуру показывает 92-93 градуса С. Рукой греть начинаешь изменяет сразу показания, температура растёт. Убираешь руку падает.
Короче комнатную температуру завышает примерно на 70 грудусов, вот думаю толи что то не так делаю. Толи датчик не рабочий. Ну и может быть просто эти 70 градусов отнять и будет работать правильно???
Или просто - показать свой код и увидеть, что скорее всего, в коде ошибка пересчёта показаний.
толи в фаренгейтах:)
Для начала, взять пример из OneWire и с ним запустить.
примеры тоже брал, все равно 93 градуса и выше показывает
неее, брал код где показывает и цельсиа и фаренгейты и всё равно там не правильно
у меня другая библиотека... вот кусок кода для работы с ней
Я боюсь что у меня все таки дело не в коде, потому что несколько разных брал, и итог один и то же
Я боюсь что у меня все таки дело не в коде, потому что несколько разных брал, и итог один и то же
Датчик то есть второй? Иначе действительно до бесконечности гадать можно.
под рукой нету, надо взять(((
Я боюсь что у меня все таки дело не в коде, потому что несколько разных брал, и итог один и то же
если есть проблема, то можно немного дольше подождать, пока АЦП закончит т.е. увеличить до 1 сек.
Я код кидал выше, там формула - обратите на нее внимание. какой результат?
у меня, по той формуле, получилось 6 градусов на датчике.
под рукой нету, надо взять(((
я сразу толпой беру и в проверенных магазинах
http://ru.aliexpress.com/item/5pcs-DS18B20-TO92-Sensor-18B20-TO-92-Digital-Thermometer/32380378618.html
я сразу толпой беру и в проверенных магазинах
ссылка это хорошо, а брака сколько было????
пока не было
пока не было
вот и мне сильно кривые не попадались, ну если только +-2С врут на улице, и то, сомневаюсь, скорее прибора более точного нет... пока собрал 5 датчиков - вроде норм, без брака.
UPD сколько времени на конвертацию выделяете?
пока не было
вот и мне сильно кривые не попадались, ну если только +-2С врут на улице, и то, сомневаюсь, скорее прибора более точного нет... пока собрал 5 датчиков - вроде норм, без брака.
UPD сколько времени на конвертацию выделяете?
ну вот по такому простенькому коду беру, по другим в том числе и из примеров показывает те же 90 с копейками градусы при комнатной 24
Попробуйте так вместо нижних пяти строк.
Примеры попробуйте вот отсюда..... https://github.com/milesburton/Arduino-Temperature-Control-Library
Вдруг у вас с проводами проблемма....
Попробуйте так вместо нижних пяти строк.
попробовал, те же 90 градусов с копейками, буду искать другой датчик
Попробуйте так вместо нижних пяти строк.
попробовал, те же 90 градусов с копейками, буду искать другой датчик
а оно нуобходимо? если датчик стабилен, сделать ему калибровку, если присутствует линейность - экстраполировать...
можно и попробовать. мне надо что бы он между 24-25 градусами правильно показывал, желательно с погрешностью меньше 0,5 за этими приделами +- локоть по карте
можно и попробовать. мне надо что бы он между 24-25 градусами правильно показывал, желательно с погрешностью меньше 0,5 за этими приделами +- локоть по карте
самое главное, чтоб датчик был стабилен, а доверия к нему уже нет...
Странная просто неисправность, выходит какой то бит, тупо не изменяется. Вопрос к ТС, схему пересобирали или только программно шаманите?
пересобирал, менял местами до резистора и после + и сигнальный не чего не менялось.
Если хочеться поэкспериментировать, собираем маломощный нагреватель в теплоизолированной коробочке, медленно нагреваем и в диапазоне 20-30 смотрим на монотонное прибавление по 0,0625 градуса. Если нигде не перескакивает, пытаемся обнаружить наш паленый бит, вычитаем его и пользуемся. Где и как такая неисправность выстрелит дальше, предсказать невозможно, это 100% хитрый брак.
По поводу точности, 0,5 это крайнее значение, прошло штук 30 через руки, из разных партий. При колхозной поверке, разброс максимум 0,2 и там половину можно на колхозность списать. Отгораживал только от сквозняков.
При контактном измерении температуры, необходим хороший контакт с объектом. Добрался наконец до своего ректификатора, пока не намазал КТП-8, прыгала как бешеная. После пасты, часами стоит на месте, даже младший разряд не шевелится. Разрядность ток маловата(((. Всего три шага до аварийного отклонения.
Если хочеться поэкспериментировать, собираем маломощный нагреватель в теплоизолированной коробочке, медленно нагреваем и в диапазоне 20-30 смотрим на монотонное прибавление по 0,0625 градуса. Если нигде не перескакивает, пытаемся обнаружить наш паленый бит, вычитаем его и пользуемся. Где и как такая неисправность выстрелит дальше, предсказать невозможно, это 100% хитрый брак.
По поводу точности, 0,5 это крайнее значение, прошло штук 30 через руки, из разных партий. При колхозной поверке, разброс максимум 0,2 и там половину можно на колхозность списать. Отгораживал только от сквозняков.
При контактном измерении температуры, необходим хороший контакт с объектом. Добрался наконец до своего ректификатора, пока не намазал КТП-8, прыгала как бешеная. После пасты, часами стоит на месте, даже младший разряд не шевелится. Разрядность ток маловата(((. Всего три шага до аварийного отклонения.
спасибо, попробую, время иногда есть, датчик новый все равно ждать на заказ, в городе второй пока не рискую брать.
bwn, возможно БИТ есть кривой (разряд АЦП), а может источник тока завышен в самом приборе. Т.е. брак сопротивления обратной связи по току - вот с ними (с сопротивлениями), относительно часто встречались проблемы.
По поводу бита (93 – 24)*16 = примерно 1024 -11 й разряд (инвертируйте 11й бит)
кто сколько времени дает на конвертацию АЦП ?????
самое главное, чтоб датчик был стабилен, а доверия к нему уже нет...
От ваших слов у меня рухнули основы мироздания:
Никому нельзя верить и даже ds18b20
можно и попробовать. мне надо что бы он между 24-25 градусами правильно показывал, желательно с погрешностью меньше 0,5 за этими приделами +- локоть по карте
0.5 ? Читайте даташит.
Это он делает по паспорту, а обычно 0.1 - 0.2 именно в этом диапазоне
...... необходим хороший контакт с объектом. Добрался наконец до своего ректификатора, пока не намазал КТП-8, прыгала как бешеная. После пасты, часами стоит на месте, даже младший разряд не шевелится.
Я бы синей изолентой обмотал всё многослойно.
Она и сквозняк держит хорошо, и прижимает....
...... необходим хороший контакт с объектом. Добрался наконец до своего ректификатора, пока не намазал КТП-8, прыгала как бешеная. После пасты, часами стоит на месте, даже младший разряд не шевелится.
Я бы синей изолентой обмотал всё многослойно.
Она и сквозняк держит хорошо, и прижимает....
Издеваешься? )))), там глухое отверстие в болтах, примерно 2,5см глубиной. Датчик обтачивать пришлось, в итоге сидел довольно туго, а вот тепловой контакт паршивый оказался. После КТП, температура градуса на 4 поднялась+ прыгать перестала.
А сквозняк тоже из личного опыта, поначалу проверял - ставим гирляндой в макетку, смотрим, а там и 0,6 и 0,7 разница бегает. Кладем ту же макетку в коробочку, даем полчасика вылежаться. Чудо, 0,1, максимум 0,2.
И так что имеем, на всех скечах и примерах одна картина около 93-94 градуса при комнатной температуре. Пробовал менять местами плюс минус, отрубается ардуино, перепаял еще раз схему, итог один. Сегодня взял в магазине другой датчик, та же картина, маркировка на датчике Dallas 18B20 0411B7 115AE
может датчики не те?))
последний используемый код:
Не знаю, откуда у тебя этот код, давай проще. Разбираем полностью схему, повторно собираем. + к +, - к -, средний контакт на 10 пин и к нему резистор 4к7 второй вывод резюка на плюс.
Открываем "Примеры", "OneWire", "DS18x20 Temperature". Запускаем и читаем, что пишет на экране. Все пункты выполняем последовательно, не пропуская.
Как обычно)) сначала показывает 93, потом пальцами взял начал изменять температуру
ROM = 28 D6 72 5D 0 0 0 C3
Chip = DS18B20
Data = 1 D8 5 0 0 1F FF 8 10 F7 CRC=F7
Temperature = 93.50 Celsius, 200.30 Fahrenheit
No more addresses.
ROM = 28 D6 72 5D 0 0 0 C3
Chip = DS18B20
Data = 1 F0 5 0 0 1F FF 10 10 EF CRC=EF
Temperature = 95.00 Celsius, 203.00 Fahrenheit
No more addresses.
Короче, я не знаю, что вы делаете не так, но датчик отдает температуры правильно.
Это 0 и 1 байты в вашем "Data". У меня получается 29,5 и 31 градус. Такая высокая, возможно перед измерением в руках крутили.
Мрак полный, не верю! И примеры тоже?
Если-бы 85 показывало тогда понятно было-бы, первое считывание
*The power-on reset value of the temperature register is +85°C.
Мрак полный, не верю! И примеры тоже?
Если-бы 85 показывало тогда понятно было-бы, первое считывание
*The power-on reset value of the temperature register is +85°C.
Ощущение, что нас либо откровенно троллят, либо что то не договаривают. В иначе считающий МК, не верю.
Про МК у меня подозрений нет, считал на Pro Micro тот же результат
заснял видео с рабочего стола, извиняюсь первой попалась демо версия, иногда попрыгивала, положил на облоко
https://cloud.mail.ru/public/BKvS/vhjDAHBcE
фотки МК, датчика и разводки проводов скину завтра
Data = 1 F0 5 0 0 1F FF 10 10 EF CRC=EF
bwn, тут первый слева - булевый байт наличия датчика. Второй младший байт темп-ры, третий -старший. Значит температура в хексе = 0x05F0 , что разделить на 16 и будет 95 градусов. Я бы как и уже говорили старшие колллеги тоже предположил что датчик битый, но тс как я понял купил второй... видимо битая партия, я в чудеса не верю :)
dimax, признаю, обсчитался, да еще и результат сошелся.(((( ТС тоже извинения. Первый раз про такое слышу. Берите датчики у дядюшки Вынь Сунь, а не импортозамещенные в отечественных магазинах.))))
А можно и вернуть попытаться. Внимания ни разу не обращал, но согласно описания 5,6,7 байты резервные и имеют константные значения FF OC 10, а здесь 6 принимает какие то произвольные значения.
Буду ковыряться, подключу гирлянду, посмотрю, что там пишет.
Да надо на ебаи брать да не париться, обманывать ни кого не хотел, просто интересно было разобраться, гугл таких ошибок не выдавал.
А так у меня осталось не замененным только резистор поменять(хотя цешка показывает его правильным) ну и на XP попробовать
Кстати, гляньте еще навесной монтаж, первоначально было на платке, думал косяк, перепаял навесом
https://cloud.mail.ru/public/5hLT/j77GxtX5R
осень плохо, нет конденсатора, маленького такого, с ним надежнее.
осень плохо, нет конденсатора, маленького такого, с ним надежнее.
надежней да, но когда работает через раз, у меня пока не работает даже через раз))
надежней да, но когда работает через раз, у меня пока не работает даже через раз))
не работает и работает не правильно - разное (в этой теме). пот 34 ведь образовался. как уже решили - списать на брак партии. А конденсаторы (блокировка по питанию) я всегда на ноги леплю, для моих мелких проектов хватает монтажки под пайку или навесной…
не работает и работает не правильно - разное (в этой теме). пот 34 ведь образовался. как уже решили - списать на брак партии. А конденсаторы (блокировка по питанию) я всегда на ноги леплю, для моих мелких проектов хватает монтажки под пайку или навесной…
Самое прикольное, что с точки зрения датчика, все работает правильно((((.
Кстати, гляньте еще навесной монтаж, первоначально было на платке, думал косяк, перепаял навесом
https://cloud.mail.ru/public/5hLT/j77GxtX5R
Жестокий вы человек. Заведите макеточку с проводами. И переделывать быстрее и оловом над платой не трясти.
Кстати, гляньте еще навесной монтаж, первоначально было на платке, думал косяк, перепаял навесом
https://cloud.mail.ru/public/5hLT/j77GxtX5R
Жестокий вы человек. Заведите макеточку с проводами. И переделывать быстрее и оловом над платой не трясти.
первоначальная схема и была на ней собрана, экспериментировал уже навесом
Самое прикольное, что с точки зрения датчика, все работает правильно((((.
и этим можно воспользоваться - если проблема в источнике тока, нарушен коэфф. обратной связи по току, но ток константа - можно просто отнимать лишнюю температуры (в парам. датчика - отнимать ток) - все должно быть линейно, если проблема в этом. Просто порежиться верхняя граница измерений - насыщение по току будет наступать раньше.
Самое прикольное, что с точки зрения датчика, все работает правильно((((.
и этим можно воспользоваться - если проблема в источнике тока, нарушен коэфф. обратной связи по току, но ток константа - можно просто отнимать лишнюю температуры (в парам. датчика - отнимать ток) - все должно быть линейно, если проблема в этом. Просто порежиться верхняя граница измерений - насыщение по току будет наступать раньше.
В принципе, да. Засунуть в морозилку и посмотреть на старший байт (05), если он изменяется, то скорее всего все работоспособно, по меньшей мере при комнатных температурах.
Если покажет ниже 80 (04) и ниже 64 (03), значит температурный регистр живой.