Страница 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
Люкс. Я Вам в личку написал. Заранее спасибо.