Страница 6 из 59
Re: Всё по DS18(B/S)20.
Добавлено: Вс апр 08, 2012 15:01:59
ILYAUL
Можно . Ну ,а если один накроется медным тазом, а готовое устройство откл. нельзя , что бы прописать новый датчик. Что делать будите?
Re: Всё по DS18(B/S)20.
Добавлено: Вс апр 08, 2012 15:03:28
BVS
shads писал(а):Я наверное неправильно мысль выразил.
Да ради бога! я тоже так по началу делал, потом надоело, и пришлось отвязать устройство от датчиков.
з.ы. да и тазом они бывает накрываются

но продолжают работать от паразитного питания
Re: Всё по DS18(B/S)20.
Добавлено: Вс апр 08, 2012 15:50:10
shads
ILYAUL писал(а):Можно . Ну ,а если один накроется медным тазом, а готовое устройство откл. нельзя , что бы прописать новый датчик. Что делать будите?
Дыкэта, здесь не о стратегических объектах речь. А так - стандартная функция настроек устройства - удалить\прописать датчик. Отключил линию на минутку, вставил датчик, удалил\прописал, линию воткнул и пошел вешать датчик гиде надо.....
Re: Всё по DS18(B/S)20.
Добавлено: Пн апр 16, 2012 15:55:30
casino777
Кто работал с исходниками
с этого сайта помогите правильно ли я после нахождения Rom датчика дальше команды подаю после метки Loop1:
Код: Выделить всё
Вычисляется ROM
rcall OWClearROM_NO
rcall OWFirst
sbrs search_flags, search_result
rjmp EndOfExample
Есть ROM
loop1:
; Код
main:
rcall ds
rcall bcd_convert ;преобразование
ldi lcd_command,$01
rcall lcdcmd
ldi wreg, 3
rcall ds_longdelay
rcall display; вывод на экран
;Следующий датчик
rcall OWNext
sbrs search_flags, search_result
rjmp EndOfExample
rjmp loop1
EndOfExample:
rjmp main
Ds:
rcall ds_reset
ldi ds_command, 0xCC
rcall ds_write
ldi ds_command, 0×44
rcall ds_write
ldi wreg, 255
rcall ds_longdelay ; 178ms
ldi wreg, 255
rcall ds_longdelay ; 178ms
ldi wreg, 255
rcall ds_longdelay ; 178ms
ldi wreg, 255
rcall ds_longdelay ; 178ms
ldi wreg, 60
rcall ds_longdelay ; 40ms
rcall ds_reset
ldi ds_command, 0xCC
rcall ds_write
ldi ds_command, 0xBE
rcall ds_write
ldi wreg, 5
rcall ds_delay
rcall ds_read
ret
ds_reset:
cbi PORTB, PB0
ldi wreg, 0xFF
out DDRB, wreg
ldi wreg, 220
ldi wreg, 0xFE
out DDRB, wreg
ldi wreg, 220
rcall ds_delay
ret
Re: Всё по DS18(B/S)20.
Добавлено: Пн апр 16, 2012 20:20:22
casino777
или как зная Rom обратиться к конкретному устройству? я понимаю что надо из 8 байтного Rom переслать код в регистры а дальше командами in и out , а как закодить не знаю даже
Re: Всё по DS18(B/S)20.
Добавлено: Пн апр 16, 2012 20:42:57
shads
casino777 писал(а):или как зная Rom обратиться к конкретному устройству? я понимаю что надо из 8 байтного Rom переслать код в регистры а дальше командами in и out , а как закодить не знаю даже
Заканчиваю термометр на 4 датчика
http://asis-kbr.ru/forum/viewtopic.php?f=9&t=117
Ща чето с EEPROM зразобраться не могу, читать номер датчика получается, а в EEPROM его загнать не получается чет..... Как разберусь, свистну (на асме пишу)
Re: Всё по DS18(B/S)20.
Добавлено: Вт апр 17, 2012 09:31:57
casino777
shads писал(а):Ща чето с EEPROM зразобраться не могу, читать номер датчика получается, а в EEPROM его загнать не получается чет..... Как разберусь, свистну (на асме пишу)
Было бы здорово!
Читаем правила п.2.7
Gudd-Head
Re: Всё по DS18(B/S)20.
Добавлено: Пн апр 23, 2012 09:05:07
shads
shads писал(а):Чето я в ступоре.
Если втыкаю датчики в разъем (хоть зажимаю контакты, хоть нет), то они сек ч-з 10 постепенно повышают температуру на пару град (проверил на всех 10шт.).
Если они лежат в рядок на столе и я к ножкам прижимаю проводки от платки, то все нормально (сейчас все 10шт стабильно показывают 24,5).
?????
Наконец то я допер до решения этого феномена. Мне тут говорили что проблема в саморазогреве датчиков. Я сначала повелся, думаю ну значит надо питание отключать между опросами, и сами опросы реже проводить. Но мой ступор усилился, когда я начал заниматься второй версией термо регистратора. Если на первой плате уход был несколько градусов, то на второй все датчики врали на 7 градусов (когда включаеш устр-во показывает 23 гр. а минут через 10 показывает 30 !!!!!). Я все еще свято верил что это саморазогрев..... Хотя уже можно было понять что это уже чересчур.....
Короче просветление пришло сегодня, когда начал работать с несколькими датчиками на одной линии, оказ-ся тот датчик что в разъеме платы, ведет себя как описано выше, а тот датчик что подключен к небольшой линии и лежит хоть на столе хоть в воздуже висит, прекрасно показывает реальную температуру, и никуда уходить не собирается..... Короче проблема была в том что в относительной близости от разъема в который включен датчик, находится стабилизатор 7805, вот он то и разогревается, нагревая все вокруг!!!!!
На первой плате, был минимум потребления, контроллер и MAX232, вот стаб и нагревал все вокруг на несколько градусов. А на второй плате, там уже целый пирог потребителей (+ семисегментник), вот и напрягается стабилизатор гдето до 40 град. (померял выносным датчиком, прижав его к стабу).
Вывод - саморазогрева датчиков я так и не заметил.....
Интересно, а по заявлениям других источников, на сколько саморазогреваются датчики, мож как раз в пределах 0,5 град, чего можно и не заметить?
Re: Всё по DS18(B/S)20.
Добавлено: Пн апр 23, 2012 09:14:33
Gudd-Head
shads писал(а):на сколько саморазогреваются датчики?
Ток потребления × напряжение питания.
Re: Всё по DS18(B/S)20.
Добавлено: Пн апр 23, 2012 10:13:35
shads
casino777 писал(а):Было бы здорово!
Скинул проект для AVRStudio
http://asis-kbr.ru/forum/viewtopic.php?f=9&t=117
Если вопросы будут (по прошивке) там спрашивай, чтобы здесь не сорить.
Нарушение п.2.7 Правил Форума
Gudd-Head
Re: Всё по DS18(B/S)20.
Добавлено: Пн апр 23, 2012 10:33:58
ploop
Вывод - саморазогрева датчиков я так и не заметил.....
Пару десятых градуса при комнатной температуре.
Re: Всё по DS18(B/S)20.
Добавлено: Пн апр 23, 2012 11:01:01
shads
Значит меня изначально в заблуждение ввели.....
Мастер Ломастер писал(а):саморазогрев - явление давно признанное самим производителем. пока подано питание на датчик, он потребляет хоть и мизерный, но все-таки ток, который и разогревает кристалл. если теплу от кристалла через корпус деваться некуда (воздух - плохой проводник тепла), корпус разогревается. как правило, прибавка в 1-2 градуса - это закономерность.
Re: Всё по DS18(B/S)20.
Добавлено: Пн апр 23, 2012 11:20:12
ploop
Я сужу по опыту использования. Первый замер от последующих отличается на 0.1-0.2 градуса. Редко бывает 0.3
Re: Всё по DS18(B/S)20.
Добавлено: Пн апр 23, 2012 18:32:18
Laplaskin
Уважаемые коты!
Помогите разобраться. Цепляю ds18b20 к ATMega16. Контроллер тактируется частотой 1 МГц от встроенного генератора. отправляю на датчик команду "чтение ROM" и хочу этот самый ROM увидеть на LCD. В верхней строчке LCD вывожу то, что отправляется на датчик, а в нижней хочу посмотреть кусочек ROM кода.. Проблема в том, что МК рисует в нижней строчке единицы (то есть выходит, что ds18b20 вроде как и не отвечает на команду), хотя инициализация проходит правильно. Взгляните пожалуйста, может я что-то упустил или неправильно понял? я подробно откомментировал, чтобы прослеживался ход мысли.. с датчиком работаю впервые, да и с МК недавно

Re: Всё по DS18(B/S)20.
Добавлено: Ср апр 25, 2012 15:39:10
shads
Вопросик назрел.....
Как можно программно определить какой датчик подключен DS18B20 или DS18S20 ?
Или придется всегда вручную выбирать способ обработки?
Re: Всё по DS18(B/S)20.
Добавлено: Ср апр 25, 2012 16:11:30
uldemir
Прочитать код устройства. Первый байт вам даст ответ на вопрос
Re: Всё по DS18(B/S)20.
Добавлено: Ср апр 25, 2012 17:26:21
shads
Ой..... Как же это я сразу не догадался, спасибо. Полистал мануал, и действительно коды семейств у них разные 10h и 28h. А я думал что это одно семейство.
Re: Всё по DS18(B/S)20.
Добавлено: Ср апр 25, 2012 18:45:07
borys
Уважаемый shads!
Скачал файлы по вашей ссылке. Все хорошо, но схема нечитабельная. Не могли бы Вы выло-
жить более внятное исполнение. А за проект спасибо.
Re: Всё по DS18(B/S)20.
Добавлено: Чт апр 26, 2012 13:09:53
VALE
Демонстрационный проект на 8 датчиков DS18B20 для PROTEUS
Re: Всё по DS18(B/S)20.
Добавлено: Чт апр 26, 2012 13:35:06
DJ_Kiridza
Я сейчас свой проект пишу, тоже на 8 датчиков и тоже с работой через терминал. Попадись мне эта схемка раньше...
Но все равно я делаю немного не так - у меня все делеи крутяться в таймере, таким образом основное тело программы выполняется независимо от задержек. Просто на частоте 8Мгц ресет пульс длинной в 480 мс - это кругленькое число операций. А так завел будильник на 480мс и крутишься себе в основном теле, зазвонил будильник - перевел линую, завел будильник, крутишься в основном теле, дальше зазвонил будильник - проверил пресенс пульс, есть контакт? заводим будильник на длинну таймслота и т.д.
Вот только по даташиту не понял как правильно считается CRC - кто может разжевать, ато тупо драть с исходников не охота
(пишу на асме)