Вопросы по работе с термометрами DS18B20

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Аватара пользователя
delay
Нашел транзистор. Понюхал.
Сообщения: 173
Зарегистрирован: Чт мар 20, 2008 20:33:43
Контактная информация:

Сообщение delay »

Так, какова же частота опроса датчика получается? Насколько я знаю высокую частоту им давать нельзя, - будут греться.
В бесконечном цикле, это на частоте кристала получается?
сергейф
Родился
Сообщения: 6
Зарегистрирован: Пн мар 23, 2009 16:36:14

Сообщение сергейф »

Помогите пожалуйста разобраться, у меня такая проблема:
в общем стоит на авто термометр, термостат управления вентилятором охлаждения, оба устройства на МК и подключены к одному датчику DS18B20. Термометр показывает температуру как положено, термостат включает вентилятор когда положено. Все работает. Оба устройства на пик16ф84. В термометре по схеме со средней ножки датчика подтяжка - резистор на 10к к плюсу. В термостате тоже на 10к. Тут я подцепил к датчику еще одно устройство на меге8. Те два устройства продолжали исправно регестрировать температуру, а новое не определяло эту самую тепературу. Так вот вопрос, может ли такая комбинация устройств работать в принципе? Если да, то в чем может быть причина не видиния третим устройством датчика?
Ставить второй датчик расточительствоЮ, да и место для него нет.
Аватара пользователя
Pooher
Мучитель микросхем
Сообщения: 491
Зарегистрирован: Вс янв 07, 2007 01:45:48
Откуда: Российская Федерация, будь она неладна...

Сообщение Pooher »

delay писал(а):Так, какова же частота опроса датчика получается? Насколько я знаю высокую частоту им давать нельзя, - будут греться.
В бесконечном цикле, это на частоте кристала получается?

Запуск преобразования температуры не рекомендуется выполнять чаще одного раза в секунду. В противном случае DS-ка начинает греться, и соответственно, врать.
Научить нельзя, можно научиться. Пифагор.
Вставь недостающие буквы в слово *у*ня. Если у тебя получилось слово кухня, значит ты интеллигентный человек.
Аватара пользователя
delay
Нашел транзистор. Понюхал.
Сообщения: 173
Зарегистрирован: Чт мар 20, 2008 20:33:43
Контактная информация:

Сообщение delay »

Pooher писал(а):Запуск преобразования температуры не рекомендуется выполнять чаще одного раза в секунду. В противном случае DS-ка начинает греться, и соответственно, врать.

Вот-вот, и я об этом. Да и время опроса датчика при 12 битах занимает немало времени.
Аватара пользователя
sachok
Опытный кот
Сообщения: 849
Зарегистрирован: Сб янв 05, 2008 11:05:15
Откуда: Україна м.Луцьк
Контактная информация:

Сообщение sachok »

У меня 9 бит результата это на 1 датчик 100мс потом у меня 3 датчика а это уже 300мс плюс задержки в цикле и того выходит около 1 раза в секунду.
Я не Сашок!!!
Аватара пользователя
sachok
Опытный кот
Сообщения: 849
Зарегистрирован: Сб янв 05, 2008 11:05:15
Откуда: Україна м.Луцьк
Контактная информация:

Сообщение sachok »

Какими методами Вы рекомендуете делать опрос допустим 1 раз в 2 секунди? Настраивать перывания, считать время или есть более гуманные методы?
Я не Сашок!!!
Аватара пользователя
delay
Нашел транзистор. Понюхал.
Сообщения: 173
Зарегистрирован: Чт мар 20, 2008 20:33:43
Контактная информация:

Сообщение delay »

Я делал так.
Опрос датчиков. Выявление количества. Индикация количества.
Получение данных с 0-го датчика. Индикация номера 0-го датчика. Пауза 300 мс. Т.е. в течении 300 мс на индикаторе показан номер 0-го датчика. Индикация температуры 0-го датчика. Пауза 500 мс. Т.е в течении 500 мс показывается температура 0-го датчика. Следующий датчик. и так по кругу. В прерываниях - динамическая индикация. На момент опроса датчиков - запрет прерывания. Таким образом у меня один датчик опрашиватеся один раз в ~2.5 с
Аватара пользователя
delay
Нашел транзистор. Понюхал.
Сообщения: 173
Зарегистрирован: Чт мар 20, 2008 20:33:43
Контактная информация:

Сообщение delay »

Сейчас глянул листинг своей программы. Оказывается тайминг опроса у меня задается в таймере 1. В теле его функции инвертируется значение переменной Х. В случае, когда Х не равен 0 происходит опрос. А длительность индикации номера датчика и температуры можно менять исходя из их количества.
Еще у меня используется прерывание таймера 2 для звукового сигнала в случае выхода температуры за допустимый диаппазон. А таймер 0 для динамической индикации.
Аватара пользователя
rat_bor
Родился
Сообщения: 17
Зарегистрирован: Пт дек 12, 2008 20:19:18
Откуда: Волгоград

Сообщение rat_bor »

сергейф писал(а):исправно регестрировать температуру, а новое не определяло эту самую тепературу. Так вот вопрос, может ли такая комбинация устройств работать в принципе? Если да, то в чем может быть причина не видиния третим устройством датчика? Ставить второй датчик расточительствоЮ, да и место для него нет.

если я правильно вас понял, то у вас на один датчик 3 контроллера.
и у каждого контроллера подтяжка информационной линии по 10к.
Во первых проверьте работоспособность ус -ва на mega8 , во вторых
надо согласовать работу трех устройств, на один датчик.
Зы. вообще-то я бы от такой схемы отказался. 3 устройства и один датчик, один датчик выходит из строя и 3 ус-ва остаются без "глаз" , вдобавок возможен пиндык двигателю. :shock:
сергейф
Родился
Сообщения: 6
Зарегистрирован: Пн мар 23, 2009 16:36:14

Сообщение сергейф »

да у меня один датчик на три устройства.
устройство на меге работает точно.
На термометре и термостате подтяжка 10к, на 3-ем устройстве подтяжку убрал.
Аватара пользователя
rat_bor
Родился
Сообщения: 17
Зарегистрирован: Пт дек 12, 2008 20:19:18
Откуда: Волгоград

Сообщение rat_bor »

сергейф писал(а):да у меня один датчик на три устройства.
устройство на меге работает точно.
На термометре и термостате подтяжка 10к, на 3-ем устройстве подтяжку убрал.

проверяйте правильность подключение меги к шине.
неплохо бы посмотреть схему соединения всех устройств к одному
датчику. очередность опроса установлена.? как опрашиваете датчик,
по номеру, или как единственное ус-во на шине во всех контроллерах?
сергейф
Родился
Сообщения: 6
Зарегистрирован: Пн мар 23, 2009 16:36:14

Сообщение сергейф »

вот схема.
в устройствах на пике я к сожалению не знаю как опрашивается датчик (прикрепил исходник термостата на пике, может поможет, исходников термометра и устр-ва на меге нет), но в устройстве на меге датчик опрашивается как одно устройство на шине это я точно знаю.
Еще скажу что устройства разробатывал не я, все они найдены в сети, в разные периоды моей жизни. Соответственно очередность опрашивания не установлена.
Вложения
.GIF
(3.07 КБ) 700 скачиваний
therm18B20охлаждает.ASM
(19.09 КБ) 605 скачиваний
Аватара пользователя
rat_bor
Родился
Сообщения: 17
Зарегистрирован: Пт дек 12, 2008 20:19:18
Откуда: Волгоград

Сообщение rat_bor »

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

просмотрел вашу схему, есть вопрос, у вас +5В каждого контроллера
обьединены или нет? судя по исходнику опрос датчика у вас ведется
как единственного датчика на шине. номер датчика и контроль посланных данных не ведется. если питания не объединены то
для меги резистор тоже нужен. Попробуйте поставить резистор, если работать не будет, то можно попробовать запитать все контроллеры
от одного источника +5в, и если не получиться, то видимо придется
переписывать софт на контроллерах, и дорабатывать схему.
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Сообщение ARV »

интересно, а как решается вопрос одновременных или почти одновременных обращений к датчику от разных МК? в этом случае однозначно будут искажения данных!
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
rat_bor
Родился
Сообщения: 17
Зарегистрирован: Пт дек 12, 2008 20:19:18
Откуда: Волгоград

Сообщение rat_bor »

никак он не решается, каждое устройство работает на датчик само по себе, не принимая в расчет наличие других контроллеров. а не пересекаются они наверное потому, что у каждого контроллера разный
период времени отводится на индикацию.
сергейф
Родился
Сообщения: 6
Зарегистрирован: Пн мар 23, 2009 16:36:14

Сообщение сергейф »

+5в не объеденены, для каждого устройства свой стабилизатор напряжения.
резистор для меги ставил всеравно не работает.
объеденить +5в попробую в ближайшее время.
кстати термометр с этого сайта статья называется "Двухточечный термометр на DS18B20 и микроконтроллере PIC16F84 (A)", только программа у меня переделана чтобы термометр был включен постояно. Там выложен исходник но почему-то мне кажется что там хекс не от этого исходника (я мало соображаю в программировании поэтому могу ошибаться). Вот я его выложил.
А переписать софт можно только на меге и то если автор согласиться.
Еще, напомню, что термометр с термостатом работают вместе исправно, подключаю устройство на меге оно не определяет температуру, а термометр с термостатом продолжают исправно определять.
Вложения
timerb20.asm
(9.81 КБ) 590 скачиваний
Аватара пользователя
rat_bor
Родился
Сообщения: 17
Зарегистрирован: Пт дек 12, 2008 20:19:18
Откуда: Волгоград

Сообщение rat_bor »

сергейф писал(а):+5в не объеденены, для каждого устройства свой стабилизатор напряжения.
резистор для меги ставил всеравно не работает.
объеденить +5в попробую в ближайшее время.

не обьединяйте на прямую +5в источников от разных контроллеров,
может получиться пых...
запитывайте все контроллеры от одного источника +5В.
вероятнее всего у вас не получиться 3 разных устройства обьединить
одним датчиком, и разработанных без учета друг друга. Мегу таки лучше
посадите на свой датчик, меньше усилий и нервов затратите.
Аватара пользователя
shtorm
Нашел транзистор. Понюхал.
Сообщения: 185
Зарегистрирован: Чт янв 22, 2009 14:03:25
Контактная информация:

Сообщение shtorm »

ув. Коты!
извените что не в тему...
подскажите как можно решить такой вопрос:
//ds18b20, mega8,CVAVR, семимегментник.
при опросе датчика гаснет индекатор ровно на столько времени сколько занимает внутренее преобразование в зависимости от режима работы датчика...как обойти эту проблему используя стандартные библиотеки?(желательно) ф-цию опроса использую штатную:
temp=ds18b20_temperature(&ds18b20_rom_codes[i][0]);

я использовал тоже самое в проекте с жк дисплеем но там боялся что собьються таймеры но вовремя опроса таймеры работают четко...а вот почему семисегментник гаснет?

P.S. мдя...тема походу заеженна ((
сергейф
Родился
Сообщения: 6
Зарегистрирован: Пн мар 23, 2009 16:36:14

Сообщение сергейф »

rat_bor писал(а):вероятнее всего у вас не получиться 3 разных устройства обьединить
одним датчиком, и разработанных без учета друг друга. Мегу таки лучше
посадите на свой датчик, меньше усилий и нервов затратите.

ладно так и сделаю :(
Аватара пользователя
delay
Нашел транзистор. Понюхал.
Сообщения: 173
Зарегистрирован: Чт мар 20, 2008 20:33:43
Контактная информация:

Сообщение delay »

shtorm писал(а):ув. Коты!
вот почему семисегментник гаснет?

Если у вас вывод индикации в прерывании, то он будет гаснуть на время опроса, если вы как предусматривается на время опроса отключаете прерывания.
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»