В бесконечном цикле, это на частоте кристала получается?
Вопросы по работе с термометрами DS18B20
- Сообщения: 173
- Зарегистрирован: Чт мар 20, 2008 20:33:43
Так, какова же частота опроса датчика получается? Насколько я знаю высокую частоту им давать нельзя, - будут греться.
В бесконечном цикле, это на частоте кристала получается?
В бесконечном цикле, это на частоте кристала получается?
- Реклама
- Сообщения: 6
- Зарегистрирован: Пн мар 23, 2009 16:36:14
Помогите пожалуйста разобраться, у меня такая проблема:
в общем стоит на авто термометр, термостат управления вентилятором охлаждения, оба устройства на МК и подключены к одному датчику DS18B20. Термометр показывает температуру как положено, термостат включает вентилятор когда положено. Все работает. Оба устройства на пик16ф84. В термометре по схеме со средней ножки датчика подтяжка - резистор на 10к к плюсу. В термостате тоже на 10к. Тут я подцепил к датчику еще одно устройство на меге8. Те два устройства продолжали исправно регестрировать температуру, а новое не определяло эту самую тепературу. Так вот вопрос, может ли такая комбинация устройств работать в принципе? Если да, то в чем может быть причина не видиния третим устройством датчика?
Ставить второй датчик расточительствоЮ, да и место для него нет.
в общем стоит на авто термометр, термостат управления вентилятором охлаждения, оба устройства на МК и подключены к одному датчику DS18B20. Термометр показывает температуру как положено, термостат включает вентилятор когда положено. Все работает. Оба устройства на пик16ф84. В термометре по схеме со средней ножки датчика подтяжка - резистор на 10к к плюсу. В термостате тоже на 10к. Тут я подцепил к датчику еще одно устройство на меге8. Те два устройства продолжали исправно регестрировать температуру, а новое не определяло эту самую тепературу. Так вот вопрос, может ли такая комбинация устройств работать в принципе? Если да, то в чем может быть причина не видиния третим устройством датчика?
Ставить второй датчик расточительствоЮ, да и место для него нет.
- Сообщения: 491
- Зарегистрирован: Вс янв 07, 2007 01:45:48
- Откуда: Российская Федерация, будь она неладна...
Запуск преобразования температуры не рекомендуется выполнять чаще одного раза в секунду. В противном случае DS-ка начинает греться, и соответственно, врать.delay писал(а):Так, какова же частота опроса датчика получается? Насколько я знаю высокую частоту им давать нельзя, - будут греться.
В бесконечном цикле, это на частоте кристала получается?
Научить нельзя, можно научиться. Пифагор.
Вставь недостающие буквы в слово *у*ня. Если у тебя получилось слово кухня, значит ты интеллигентный человек.
Вставь недостающие буквы в слово *у*ня. Если у тебя получилось слово кухня, значит ты интеллигентный человек.
- Сообщения: 173
- Зарегистрирован: Чт мар 20, 2008 20:33:43
Вот-вот, и я об этом. Да и время опроса датчика при 12 битах занимает немало времени.Pooher писал(а):Запуск преобразования температуры не рекомендуется выполнять чаще одного раза в секунду. В противном случае DS-ка начинает греться, и соответственно, врать.
У меня 9 бит результата это на 1 датчик 100мс потом у меня 3 датчика а это уже 300мс плюс задержки в цикле и того выходит около 1 раза в секунду.
Я не Сашок!!!
- Реклама
Какими методами Вы рекомендуете делать опрос допустим 1 раз в 2 секунди? Настраивать перывания, считать время или есть более гуманные методы?
Я не Сашок!!!
- Сообщения: 173
- Зарегистрирован: Чт мар 20, 2008 20:33:43
Я делал так.
Опрос датчиков. Выявление количества. Индикация количества.
Получение данных с 0-го датчика. Индикация номера 0-го датчика. Пауза 300 мс. Т.е. в течении 300 мс на индикаторе показан номер 0-го датчика. Индикация температуры 0-го датчика. Пауза 500 мс. Т.е в течении 500 мс показывается температура 0-го датчика. Следующий датчик. и так по кругу. В прерываниях - динамическая индикация. На момент опроса датчиков - запрет прерывания. Таким образом у меня один датчик опрашиватеся один раз в ~2.5 с
Опрос датчиков. Выявление количества. Индикация количества.
Получение данных с 0-го датчика. Индикация номера 0-го датчика. Пауза 300 мс. Т.е. в течении 300 мс на индикаторе показан номер 0-го датчика. Индикация температуры 0-го датчика. Пауза 500 мс. Т.е в течении 500 мс показывается температура 0-го датчика. Следующий датчик. и так по кругу. В прерываниях - динамическая индикация. На момент опроса датчиков - запрет прерывания. Таким образом у меня один датчик опрашиватеся один раз в ~2.5 с
- Сообщения: 173
- Зарегистрирован: Чт мар 20, 2008 20:33:43
Сейчас глянул листинг своей программы. Оказывается тайминг опроса у меня задается в таймере 1. В теле его функции инвертируется значение переменной Х. В случае, когда Х не равен 0 происходит опрос. А длительность индикации номера датчика и температуры можно менять исходя из их количества.
Еще у меня используется прерывание таймера 2 для звукового сигнала в случае выхода температуры за допустимый диаппазон. А таймер 0 для динамической индикации.
Еще у меня используется прерывание таймера 2 для звукового сигнала в случае выхода температуры за допустимый диаппазон. А таймер 0 для динамической индикации.
если я правильно вас понял, то у вас на один датчик 3 контроллера.сергейф писал(а): исправно регестрировать температуру, а новое не определяло эту самую тепературу. Так вот вопрос, может ли такая комбинация устройств работать в принципе? Если да, то в чем может быть причина не видиния третим устройством датчика? Ставить второй датчик расточительствоЮ, да и место для него нет.
и у каждого контроллера подтяжка информационной линии по 10к.
Во первых проверьте работоспособность ус -ва на mega8 , во вторых
надо согласовать работу трех устройств, на один датчик.
Зы. вообще-то я бы от такой схемы отказался. 3 устройства и один датчик, один датчик выходит из строя и 3 ус-ва остаются без "глаз" , вдобавок возможен пиндык двигателю.
- Сообщения: 6
- Зарегистрирован: Пн мар 23, 2009 16:36:14
проверяйте правильность подключение меги к шине.сергейф писал(а):да у меня один датчик на три устройства.
устройство на меге работает точно.
На термометре и термостате подтяжка 10к, на 3-ем устройстве подтяжку убрал.
неплохо бы посмотреть схему соединения всех устройств к одному
датчику. очередность опроса установлена.? как опрашиваете датчик,
по номеру, или как единственное ус-во на шине во всех контроллерах?
- Сообщения: 6
- Зарегистрирован: Пн мар 23, 2009 16:36:14
вот схема.
в устройствах на пике я к сожалению не знаю как опрашивается датчик (прикрепил исходник термостата на пике, может поможет, исходников термометра и устр-ва на меге нет), но в устройстве на меге датчик опрашивается как одно устройство на шине это я точно знаю.
Еще скажу что устройства разробатывал не я, все они найдены в сети, в разные периоды моей жизни. Соответственно очередность опрашивания не установлена.
в устройствах на пике я к сожалению не знаю как опрашивается датчик (прикрепил исходник термостата на пике, может поможет, исходников термометра и устр-ва на меге нет), но в устройстве на меге датчик опрашивается как одно устройство на шине это я точно знаю.
Еще скажу что устройства разробатывал не я, все они найдены в сети, в разные периоды моей жизни. Соответственно очередность опрашивания не установлена.
- Вложения
-
- .GIF
- (3.07 КБ) 703 скачивания
-
- therm18B20охлаждает.ASM
- (19.09 КБ) 609 скачиваний
просмотрел вашу схему, есть вопрос, у вас +5В каждого контроллерасергейф писал(а):вот схема.
в устройствах на пике я к сожалению не знаю как опрашивается датчик (прикрепил исходник термостата на пике, может поможет, исходников термометра и устр-ва на меге нет), но в устройстве на меге датчик опрашивается как одно устройство на шине это я точно знаю.
Еще скажу что устройства разробатывал не я, все они найдены в сети, в разные периоды моей жизни. Соответственно очередность опрашивания не установлена.
обьединены или нет? судя по исходнику опрос датчика у вас ведется
как единственного датчика на шине. номер датчика и контроль посланных данных не ведется. если питания не объединены то
для меги резистор тоже нужен. Попробуйте поставить резистор, если работать не будет, то можно попробовать запитать все контроллеры
от одного источника +5в, и если не получиться, то видимо придется
переписывать софт на контроллерах, и дорабатывать схему.
интересно, а как решается вопрос одновременных или почти одновременных обращений к датчику от разных МК? в этом случае однозначно будут искажения данных!
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- Сообщения: 6
- Зарегистрирован: Пн мар 23, 2009 16:36:14
+5в не объеденены, для каждого устройства свой стабилизатор напряжения.
резистор для меги ставил всеравно не работает.
объеденить +5в попробую в ближайшее время.
кстати термометр с этого сайта статья называется "Двухточечный термометр на DS18B20 и микроконтроллере PIC16F84 (A)", только программа у меня переделана чтобы термометр был включен постояно. Там выложен исходник но почему-то мне кажется что там хекс не от этого исходника (я мало соображаю в программировании поэтому могу ошибаться). Вот я его выложил.
А переписать софт можно только на меге и то если автор согласиться.
Еще, напомню, что термометр с термостатом работают вместе исправно, подключаю устройство на меге оно не определяет температуру, а термометр с термостатом продолжают исправно определять.
резистор для меги ставил всеравно не работает.
объеденить +5в попробую в ближайшее время.
кстати термометр с этого сайта статья называется "Двухточечный термометр на DS18B20 и микроконтроллере PIC16F84 (A)", только программа у меня переделана чтобы термометр был включен постояно. Там выложен исходник но почему-то мне кажется что там хекс не от этого исходника (я мало соображаю в программировании поэтому могу ошибаться). Вот я его выложил.
А переписать софт можно только на меге и то если автор согласиться.
Еще, напомню, что термометр с термостатом работают вместе исправно, подключаю устройство на меге оно не определяет температуру, а термометр с термостатом продолжают исправно определять.
- Вложения
-
- timerb20.asm
- (9.81 КБ) 594 скачивания
не обьединяйте на прямую +5в источников от разных контроллеров,сергейф писал(а):+5в не объеденены, для каждого устройства свой стабилизатор напряжения.
резистор для меги ставил всеравно не работает.
объеденить +5в попробую в ближайшее время.
может получиться пых...
запитывайте все контроллеры от одного источника +5В.
вероятнее всего у вас не получиться 3 разных устройства обьединить
одним датчиком, и разработанных без учета друг друга. Мегу таки лучше
посадите на свой датчик, меньше усилий и нервов затратите.
- Сообщения: 185
- Зарегистрирован: Чт янв 22, 2009 14:03:25
ув. Коты!
извените что не в тему...
подскажите как можно решить такой вопрос:
//ds18b20, mega8,CVAVR, семимегментник.
при опросе датчика гаснет индекатор ровно на столько времени сколько занимает внутренее преобразование в зависимости от режима работы датчика...как обойти эту проблему используя стандартные библиотеки?(желательно) ф-цию опроса использую штатную:
temp=ds18b20_temperature(&ds18b20_rom_codes[0]);
я использовал тоже самое в проекте с жк дисплеем но там боялся что собьються таймеры но вовремя опроса таймеры работают четко...а вот почему семисегментник гаснет?
P.S. мдя...тема походу заеженна ((
извените что не в тему...
подскажите как можно решить такой вопрос:
//ds18b20, mega8,CVAVR, семимегментник.
при опросе датчика гаснет индекатор ровно на столько времени сколько занимает внутренее преобразование в зависимости от режима работы датчика...как обойти эту проблему используя стандартные библиотеки?(желательно) ф-цию опроса использую штатную:
temp=ds18b20_temperature(&ds18b20_rom_codes[0]);
я использовал тоже самое в проекте с жк дисплеем но там боялся что собьються таймеры но вовремя опроса таймеры работают четко...а вот почему семисегментник гаснет?
P.S. мдя...тема походу заеженна ((
- Сообщения: 6
- Зарегистрирован: Пн мар 23, 2009 16:36:14
- Сообщения: 173
- Зарегистрирован: Чт мар 20, 2008 20:33:43
Если у вас вывод индикации в прерывании, то он будет гаснуть на время опроса, если вы как предусматривается на время опроса отключаете прерывания.shtorm писал(а):ув. Коты!
вот почему семисегментник гаснет?


