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

Добавлено: Вс авг 16, 2009 14:34:51
Pooher
QZ_ писал(а): теперь вот еще вопрос: если DS18B20 повесть на паразитное питание, то когда запускаю преобразование (0х44) надо включить подтяжку на ногу, так?
У меня работает просто с HULLUPом на 750 Ом. 10 датчиков на расстоянии около 100 м. Только преобразование надо запускать не для всех сразу, а для одного датчика, по очереди.

PS: Но лучше, конечно, как в ДШ! У меня просто ног не хватало.

Добавлено: Вс авг 16, 2009 14:42:13
atlantix_xp
CCCP писал(а):
Тарас писал(а):У меня вопросик по теме как получить данные с датчика с точностью 0.1 градус?
Можно посмотреть исходник такой реализации? :)
Точность и разрешение это разные вещи. 12bit и разрешающая способность 1/16 градуса, ну а исходник есть в CV.
Из даташита:
ОПИСАНИЕ
DS18B20 цифровой термометр с программируемым разрешением, от 9 до 12–bit, которое может сохраняться в EEPROM памяти прибора. Диапазон измерений от –55°C до +125°C и точностью 0.5°C в диапазоне от –10°C до +85°C. Основные функциональные возможности DS18B20 - его температурный преобразователь. Разрешающая способность температурного преобразователя может быть изменена пользователем и составляет 9, 10, 11, или 12 битов, соответствуя приращениям (дискретности измерения температуры) 0.5 °C, 0.25°C, 0.125°C, и 0.0625°C, соответственно. Разрешающая способность по умолчанию установлена 12-бит.
Даташит около 1MB, и я не знаю как его прицепить.
Повышение разрешения влияет только на показзания которые в любом случае будут с погрешностью 0,5 градуса сколько бы не показывало

Добавлено: Вс авг 16, 2009 20:25:38
clawham
на самом деле точность 0,5 обусловлена ихним желанием перестраховаться чтоб получить сертификат :)
Вообще же я в реальности 5 штук ставил рядом на один стол и они показывали одинаковые температуры в 12 битах :)
самое интересное в 12-битном режиме это то что можно реагировать на малейшие колебания температуры которые ещё только начинаются и в 9-тибитном режиме никак не будут заметны - тем самым повышая скорость реакции на температурные изменения...я вот сделал себе на меге8 термостат для управления фанами в компе на 10 каналов так например та же видеокарта очень часто при входе в игру (изначально её кулер стоит - температура скажем 60 градусом и кулер как пассивный рассеивает тепло) а как только врубается кризис видуха тут же из 100 мегагерц проца и 300 памяти клацается в 800 мегагерц проц(1650 шейдеры) и память до 1800 мегагерц :) пока прийдёт измерение отработает фильтрация "шума" и раскрутится турбинка - ядро нагревается уже до 75 успевает....это не есть гут туда-сюда дёргать температуру камешка...расколется....а так у меня есть огромный запас по времени...так как я ещё за секунду вижу приближение бури и врубаю турбинку на 90% жду 10 секунд и потом только начинаю поддержку 60 градусов вот так вот :)
с другой стороны температуру тела 36.6250 они красиво показывают :) встал попрыгал температурка на пару шагов поклацала вверх :) так что это довольно таки точные устройства просто им нужна немного корекция того что они показывают (калибровка по таблице) и всё будет гут :)

Добавлено: Вс окт 18, 2009 20:52:21
IOPA4
skalish писал(а):MK знаходить только разные датчики наприклад: ds18b20+ds18s20+ds1822...а якщо поставить однакови дачикы ds18b20+ds18b20...то мк бачить только один датчик .
МК может працювати з однаковими датчиками? якщо так то як це реализувати?
Может посмотрите мою работу - в чем проблема? Подскажите: в CVAVR есть пример для DS1990 - какая частота МК для этого примера. МК Атмега8

Добавлено: Вс мар 07, 2010 18:04:14
nsl2004
Хотел бы уточнить. Кто нибудь использовал команду для DS18B20
ALARM SEARCH [ECh]
В help CVAVR присутствуют две конструкции
devices=w1_search(0xf0,rom_codes);
и если сделать так
printf("Detect %-u Device \n\r",devices) то получаем на терминале количество устройств
Все работает.
Другая конструкция. Для команды 0хec. Судя по даташету должна работать аналогично, но ... искать устройства , в которых текущая температура вышла за пределы temp_low и temp_high.
Я взял код из help'a CVAVR
printf("ALARM GENERATED BY %-u DEVICE(S)\n\r",
w1_search(0xec,alarm_rom_codes));
НЕРАБОТАЕТ показывает 0, хотя я явно создал аварийную ситуацию на датчиках. Думал что нибудь с синтаксисом, проверил заменой 0xec на 0хf0 - исправно показывает количество устройств. Выходит дело в другом? Может кто подскажет?

Re:

Добавлено: Сб мар 13, 2010 14:45:01
atlantix_xp
nsl2004 писал(а):Хотел бы уточнить. Кто нибудь использовал команду для DS18B20
ALARM SEARCH [ECh]
Я использовал и успешно сделал из этого всего счастия тнрморегулятор на две позиции (как охлаждение так и отопление), возможность переставить датчики местами (4 датчика) на экране 16*2 задание точности преобразования, задание пределов температур контроль датчика на линии и верификация данных и все такое, при желании пишите на atlantix_xp@mail.ru ну или могу исходники тут оставить все рабочие, кто хочет?
правда исходники для WinAVR

Re: Re:

Добавлено: Сб мар 13, 2010 18:47:14
nsl2004
atlantix_xp писал(а):
nsl2004 писал(а):Хотел бы уточнить. Кто нибудь использовал команду для DS18B20
ALARM SEARCH [ECh]
Я использовал и успешно сделал из этого всего счастия тнрморегулятор на две позиции (как охлаждение так и отопление), возможность переставить датчики местами (4 датчика) на экране 16*2 задание точности преобразования, задание пределов температур контроль датчика на линии и верификация данных и все такое, при желании пишите на atlantix_xp@mail.ru ну или могу исходники тут оставить все рабочие, кто хочет?
правда исходники для WinAVR
Люкс. Я Вам в личку написал. Заранее спасибо.