Работа микроконтроллера с датчиком температуры
Сформулируем задачу следующим образом:
Построить усройство, которое преобразует аналоговые сигналы поступающие от датчика теттемпературы в двоичный формат и выдает полученные значения на текстовый дислей.
Принципиальная электрическая схема
При построении устройства используется МК Atmega 128, датчик температуры DS18B20 и текстовый монитор 2Х16 LCD, рассмотренный нами в предидущем параграфе.
Датчик температуры
. Современный мировой рынок электронных комплектующих предлагает широкий ассортимент датчиков температуры. Основные отличия между ними состоят в диапазоне измеряемой температуры, напряжении питания, области применения, габаритных размерах, способах преобразования температуры, интерфейсом для взаимодействия с пользовательской управляющей системой. Так исторически сложилось, что на текущий момент одним из самых популярных температурных датчиков является датчик DS18B20 корпорации Dallas Semiconductor.
DS18B20 – цифровой датчик температуры с программируемым разрешением преобразования.
Датчик имеет следующий вид:
1) Использование интерфейсной шины данных 1-Wire для взаимодействия с управляющей системой;
2) Наличие уникального 64-битного последовательного идентификационного кода, расположенного во внутренней ROM-памяти и предназначенной для многоточечных систем, где необходимо адресовать конкретный датчик;
3) Напряжение питания составляет 3-5,5В, что позволяет использовать его не только в 5-вольновых системах, но и в 3,3 (большинство микроконтроллеров);
4) Диапазон измеряемой температуры составляет -55…+125оС;
5) Точность в ±0,5оС, правда это верно только для диапазона -10…+85оС;
6) Разрешение преобразования определяется пользователем и составляет 9…12 бит;
7) Имеет внутренние регистры триггеров верхнего и нижнего порогов срабатывания с вырабатыванием сигнала тревоги для систем, использующих термостатическую логику работы;
Рассмотрим устройство датчика.
генератор 8-бит CRC |
нижний порог Tl |
верхний порог Th |
Сенсор температуры |
регистр конфигурации |
Логика управления памятью |
64-битовый ROM и 1-wire порт |
Схема паразитного питания |
Обмен данными осуществляется через вывод DQ, который образует итерфейс 1-Wire; Схема “паразитного питания “ используется при питании от интерфейса. Так как в данном устройстве используется внешнее питание, мы не будем ее рассматривать.
Подсистема “64-битовый ROM и 1-wire порт”содержит уникальный 64-битный последовательный идентификационный код, расположенный в энергонезависимой памяти ROM, также в этом узле расположен интерфейс взаимодействия с управляющей системой 1-Wire.
Подсистема «Логика управления памятью» осуществляет передачи данных между подсистемой интерфейса 1-Wire и памятью типа Scratchpad, которая, в свою очередь, имеет доступ к регистрам температурного датчика, регистрам установки верхнего и нижнего порогов срабатывания сигнала тревоги, конфигурационному регистру и регистру генератора 8-битноой контрольной суммы для защиты системы от неправильных данных.
При включении питания по умолчанию датчик имеет разрешение преобразования 9бит, и сразу входит в режим пониженного энергопотребления. Для инициирования преобразования ведущее устройство должно передать команду Convert T. После преобразования температуры в цифровой код, этот код располагается в Scratchpad-памяти в виде двухбайтного слова, и датчик снова переходит в энергосберегающий режим.
Теперь разберемся, как преобразуется температура в датчике. Внутри самого температурного сенсора располагается АЦП, и выходные данные, расположенные в регистре температуры, переносятся в Scratchpad-память. Данные о температуре имеют следующий формат:
Флаг S – флаг знака, используется для указания знака числа (S=0 – число, содержащееся в битах 10-0 положительно, и S=1, если число, содержащееся в тех же битах отрицательно, т.е. в данном случае температура представляется в дополнительном коде.
При настройке на разрешение преобразования 12 бит все 12 бит (bit 11- bit 0) задействованы и содержат достоверные данные. При настройке на разрешение 11 бит содержимое бита 0 не следует принимать в расчет, при настройке на 10 бит не следует принимать в расчет биты 0 и 1 и т.д.
Дата добавления: 2016-12-27; просмотров: 2811;