- Лоботрясы

Поиск
Перейти к контенту

Главное меню:

Статьи по AVR

Читать в Яндекс.Подписках



    Чтение ID-кода цифровых датчиков DS18B20
Просмотров: 2707
     О цифровом датчике температуры DS18B20 наверное не слышал только глухой (а если не слышал, то может почитать вот здесь). Дешевый, доступный и обладающий высокой точностью измерения он является чуть ли не основным датчиком температуры, применяемым любителями во всевозможных любительских конструкциях (и я, естественно, не исключение). Наличие уникального 64-х разрядного кода ПЗУ данной микросхемы позволяет, вкупе с однопроводным интерфейсом 1-WIRE (оно же MicroLAN), подключать к одной линии микроконтроллера туеву кучу данных датчиков. А вот для опроса сей дюжины датчиков можно пойти двумя путями – или получать адреса датчиков благодаря команде «Поиск ПЗУ» и обилием шаманского кода в исходнике микроконтроллера (для тех, кто не ищет лёгких путей – читать тут) или же сделать небольшую программку для определения этого самого уникального ID-кода каждого датчика DS18B20 (щадящий путь лентяя). Как вы уже наверное поняли (да вы просто мозг!), я пошёл вторым путём. Программку для получения ID-кода микросхемы я состряпал ещё несколько лет тому назад, как и сам приборчик для показа этого самого кода. Лень на меня в тот день напала просто неземная, и после двух часов борьбы с нею на диване я породил, наверное, самое страшное устройство в своей жизни:
     Да, на Atmega8! Да, из пушки по воробьям! Но это был единственный свободный у меня контроллер, а подбирать что-то адекватное своему проекту мне не дала борьба с уже упомянутым выше противником. Пардоньте на непонятную красную фигню, прилипшую к экрану LCD-индикатора - я её даже не заметил! А когда заметил уже на фото, то уже куда-то подевал и сам горе-приборчик. Да и чёрт с ним! Главное ноут со всеми проектами не пропал, поэтому для примера я быстро заправил код в свою отладочную плату на Atmega32 и привожу результат определения кода одного датчика:
     Интерфейс 1-WIRE в исходнике реализован программно с помощью обычных задержек delay() (CodeVisionAVR!), и если быть честным, то он и не мой вовсе. Когда-то и где-то и в каком-то проекте я его нашёл и переделал по своему, хотя, учитывая жёсткую привязку программной реализации обмена данными по 1-WIRE ко времени, даже у всех, самостоятельно и обособленно разрабатывающих данный интерфейс, результат будет очччень схожим:-)
     И сама схемка:
     Единственный нюанс – на схеме не показан резистор подстройки контрастности ЖКИ-индикатора (типа WH1602 или похожий). Но если вы заинтересовались данной статьёй и определением ID-кода датчика DS18B20 в частности, то на 99,9% уверен, что особенности работы с данными ЖКИ для вас как семечки.


     Скачать:

Опубликовано 5.12.2014
©Igoryosha, 2014
 
 
Назад к содержимому | Назад к главному меню