Страница 1 из 1

DS18B20, железо <-> Proteus

Добавлено: Вт янв 10, 2012 14:17:00
jyraf
Доброго всем времени суток!
Есть проблема. Собрал терморегулятор, ATMega88+DS18B20, в Proteuse все прекрасно работает. Выставляю на термодатчике температуру, после преобразования получаю на индикаторе такое-же значение.
В железе, при температуре в комнате +19...+20С, на индикаторе +29...+30С!!! Питание +3,5В (не паразитное), измерение температуры каждые 10 сек, (сначала чтение температуры, потом запуск преобразования,.. повтор через 10 сек). Поскольку датчик отвечает, думаю сам протокол 1-Wire написан верно, алгоритм преобразования то-же (иначе в Proteuse было бы видно несоответствие температур)...
Ваше мнение? В каком месте руки ровнять?

Может вообще для этих датчиков нужен бубен особый? Когда-то собирал адаптер 1-Wire <-> RS232, так такой-же датчик выдавал завышенную температуру. У него случайно нет какой-то настраиваемой внутренней термокомпенсации? :shock:

Re: DS18B20, железо <-> Proteus

Добавлено: Вт янв 10, 2012 15:02:35
Мастер Ломастер
датчик отлично чувствует температуру компонентов платы - если там у вас что-то греется, будет завышать. кроме того, он сам по себе при постоянно поданном питании разогревается, и никак это компенсировать нельзя. но саморазогрев все же не на 10 градусов!

Re: DS18B20, железо <-> Proteus

Добавлено: Вт янв 10, 2012 15:28:12
jyraf
Рядом с ним ничего греющегося нет.
Может стоит пересадить его на паразитное питание (в печатной плате такая возможность предусмотрена)?..

А кстати, при паразитном питании он будет данные сохранять?
То есть, если запустить преобразование, а через 10 секунд считать данные, показания будут корректными?

Re: DS18B20, железо <-> Proteus

Добавлено: Вт янв 10, 2012 19:26:39
borys
При паразитном питании эти датчики работают хуже.

Re: DS18B20, железо <-> Proteus

Добавлено: Пт янв 13, 2012 06:57:37
GriSHok
А другой датчик пробовал? Может просто этот дефектный?

Re: DS18B20, железо <-> Proteus

Добавлено: Ср янв 18, 2012 13:50:54
jyraf
Уважаемые господа, всем спасибо за активную помощь.
Довожу до сведения сообщества результаты своих экспериментов...
1. Через два дня непрерывной работы расхождение между показаниями DS18B20 и комнатным (спиртовым) термометром составляют 2С! :shock: Уж сам не знаю почему. Прошивку контроллера не менял, может для нормальной работы датчика его нужно "обкатать" несколько дней, ну или спирта в бытовой термометр долить... :))
2. С паразитным питанием по данному алгоритму датчик работать вообще не хочет. То есть, для измерения температуры с периодом 10 сек и больше, нужно поступать так:
- запуск преобразования температуры
- пауза 750 мсек
- чтение данных от датчика
- пауза 10 сек...
Иначе данные в регистрах DS18B20 не сохраняются. При полном питании (подключение по трем проводам) данные в ОЗУ хранятся долго (проверял с периодом 10 минут)