#1 Re: Апаратні питання » Умерла точность в датчике температуры DS18B20. Как такое возможно? » 2016-12-24 16:38:45

Nefreemen пише:

Непонятно зачем у Вашем новом примере висит функция
void printAddress(DeviceAddress deviceAddress)

эта функция была в исходном примере, не стал сразу удалять т.к. подумал что адрес поможет с адресацией к датчикам. Но учитывая, что все показания без проблем снимаются по индексу, то адрес вроде как в текущем примере бесполезен, и действительно ее можно удалить. Ну закомментировать т.к. в будущем возможно появится задача обращения по адресу (на самом деле хз). Например нужно еще два датчика влажности приделать (пока их еще не достал), не знаю понадобится-ли там обращение по адресу или нет.

Nefreemen пише:

Да, еще забыл, в даташите есть рекомендуемое время опроса датчиков, и он по моему больше 3с (я к сожалению не помню какое sad ). Некоторые юзеры пишут что частый опрос меньше 10с приводит к "разогреву" датчика что влияет на погрешность.

насчет разогрева не слышал, спасибо что сказали, поставлю тогда 10с, такое время не критично smile

#2 Re: Апаратні питання » Умерла точность в датчике температуры DS18B20. Как такое возможно? » 2016-12-24 16:21:40

похоже я облажался второй раз. Честно говоря думал что print(var,1) просто отсекает вторую цифру, а оказалось что округляет smile весь мой колхоз оказался не нужен. Еще раз спасибо!  smile

#3 Re: Апаратні питання » Умерла точность в датчике температуры DS18B20. Как такое возможно? » 2016-12-24 13:46:47

спасибо огромное, все получилось!

дело в том, что я действовал с помощью высокоинтеллектуального метода "copy&paste", не особо понимая что в этом примере происходит. Но со временем конечно и опытом ситуация будет лучше. Плюсы мне показались намного более сложным языком чем PHP или JavaScript. Код упростил  http://pastebin.com/RgxKPzpj

пришлось правда написать костыль для округления до одной цифры после запятой, но по другому не смог
lcd.print((float)lrint(sensors.getTempC(cat) * 10) / 10, 1);

результат:
4CqqumJ.png

один датчик на улице, два дома

#4 Апаратні питання » Умерла точность в датчике температуры DS18B20. Как такое возможно? » 2016-12-23 19:10:41

petrovnn
відповідей: 7

Приветствую!

Есть датчики температуры DALLAS, которые работали безупречно до тех пор, пока не попытался подключить сразу два датчика к одному экрану. После этого датчики, которые подключал одновременно, стали выдавать значения с точностью в 0.5 градуса. Хотя до этого они выдавали точность в 0.01. Единственный датчик, который остался точным тот - который я не пытался подключить с помощью библиотеки "Arduino-Temperature-Control-Library", с этим примером:
https://github.com/milesburton/Arduino- … ltiple.pde

до этого подключал с помощью библиотеки OneWire, которая идет вместе с Arduino IDE, стандартный пример отлично работал (правда только с одним датчиком): http://pastebin.com/rUPTjZeu

Вопросы, которые возникают:
1). может-ли программа "испортить" датчик таким образом, что он начал показывать в 20 раз меньшую точность (даже если подключать примитивную схему на примере где он всегда работал точно)?
2). может-ли ошибка схемы (распиновка, питание, резисторы) убить точность датчика?
3). есть-ли у этого датчика какое-то API, которым можно управлять и он запоминает режимы работы? Может быть в коде есть команды, которые переключили датчики в другой режим?

а датчики такие:
dXeGTDT.png

Підвал форуму