Свежие обсуждения
Микроконтроллеры

Помогите с S18b20 разобраться

1 2

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

Ошибся в названии - DS18b20 правильно.

 

посмотри сдесь http://invent-systems.narod.ru/DS18B20.htm

 

Спасибо, но термометры у меня работают прекрасно, я про то как индикацию сделать с какого теромоетра пакзания на дисплее.

 

Galanin_V: я про то как индикацию сделать с какого теромоетра пакзания на дисплее.

Ну дык, программно, ёлы-палы. Читаете показания с одного термометра, заносите в регистр, затем выводите на индикатор, затем с другого и вновь выводите. Тем более, что время цикла вывода аж 9 сек! Это ж сколько циклов считывания данных можно организовать! Если термометры подключены на один порт (а они так и должны подключаться 1-wire интерфейс), то инициализируете их по очереди. Все термометры этой серии имеют уникальный код, по которому их можно распознать и стандартный алгоритм считывания данных. Посмотрите на сайте picmaniac'a, правда там сделано на ПИКах, да и тема где-то есть в архиве.

 

Делал термометр на DS18B20 , MEGA8535 (т.к. в свое время накупил их немало и на перспективу). Можно перенести проект и для другого МК. Результат выдается на 3 7-сегментных индикатора. Позже добавил туда режим термостата.
Только вот у меня не получилась нормальная точность. По даташиту у DS18B20 погрешность +-0,5, дискретность до 0,1. Я сравнивал результаты с ртутным термометром (не медицинским, который нужно встряхивать), пришлось программно из результата вычесть 2.
Может я что-то напутал. Могу выложить проект если нужно.

 

Splav56: Ну дык, программно, ёлы-палы. Читаете показания с одного термометра, заносите в регистр, затем выводите на индикатор, затем с другого и вновь выводите. Тем более, что время цикла вывода аж 9 сек! Это ж сколько циклов считывания данных можно организовать! Если термометры подключены на один порт (а они так и должны подключаться 1-wire интерфейс), то инициализируете их по очереди. Все термометры этой серии имеют уникальный код, по которому их можно распознать и стандартный алгоритм считывания данных.

ЕЛЫ ПАЛЫ !!! ДА ПРОЧИТАЙТЕ Ж НАКОНЕЦ ! чего я прошу ! ИНДИЦИРОВАТЬ КАК ??? а не как считывать - читаются уже в проекте датчики ПРЕКРАСНО !

паФФФтаряю:

из 1 поста топика: "сделать индикацию того с какого датчик показывается температура в данный момент ???"

из 3 поста топика: "я про то как индикацию сделать с какого теромоетра пакзания на дисплее."

Я благодарен за желание помочь ! Но прочитайте хоть в чем ТРАБЛА !

 

В основу своего проекта я положил пример CodeVision из папки Examples DS18B20. Тлько я использовал пока только один датчик. Если у вас есть CodeVision посмотрите. Там выводится поочередно номер датчика, есго серийный номер, температура. Через определенную паузу - тоже самое следующего датчика. Код давльно компактный.

 

не выходит пока ни как.

 

Galanin_V: "сделать индикацию того с какого датчик показывается температура в данный момент ???"
Если нет лишнего разряда у индикатора, то либо по нажатию какой-нибудь кнопки, либо чередовать вывод температуры- номер датчика. Вы об этом спрашиваете? Я делал по первому варианту, но как у вас там всё организовано - не знаю, так что вам виднее.

 

Вопрос наверное в тему... (DS18B20)
Правильно ли я делаю:
1. сброс и команда 55h (все термо датчики начинают слушать)
2. далее следом за ней без сброса посылаю 64-bit идентификации, начиная с младшего бита
3. а дальше команды на измерения и так далее всё без сброса (потому что сброс воспримут все устройства)

Вопрос - почему не работает? Данные посылаю правильные на 100%, это проверено.
Если работать через команду CCh то всё фурыкает.

пробавал (с одним устройствам) сперва считать (33h) 64-бита (считывает правильно), а потом ему через команду 55h их скормить... неработает... что делать? (кроме того как читать доку.. - этим я сейчас занимаюсь )

У кого нибуть есть примерчик как это сделать (только этот кусочек) на чем угодно (асемблер, Си , Бейсик, хоть на пальцах... )
Если разберемся выложу проект на PIC и 16x2 дисплей (в Протеусе) разумеется с прощивочкой (которой пока нет )
Заранее спасибо!