Барометр и термометр на ATmega8 (с печатной платой)
Температура
и давление окружающего воздуха оказывают большое влияние на самочувствие
человека. Их важно знать и в походе, и на даче, и дома. Предлагаемый компактный
прибор как нельзя лучше подходит для этого. Его можно использовать также для
приблизительной оценки высоты, например, при подъеме в горы. Уменьшение
давления на 1 мм ртутного столба соответствует увеличению высоты над уровнем
моря приблизительно на 10 м.
Пределы
измерения и погрешностьприбора
определяются в основном примененными в нем датчиками температура -55...+125
°С, атмосферное давление 225. 825 мм ртутного столба Прибор питается
напряжением 9 В от гальванической батареи типа "Крона" или сетевого
адаптера Потребляемый ток — 30 мА (при выключенной подсветке ЖКИ). Размеры
корпуса — 118x72 28 мм. Работа прибора была проверена при температуре от -5 до
+25 С Погрешность измерения давления не превысила 4 мм ртутного столба Схема
прибора изображена на рис. 1 причем собранный на отдельной плате модуль
измерения давления выделен штрихпунктирной линией.
Необходимые
для работы датчика тактовые импульсы частотой 32768 Гц вырабатывает кварцевый
генератор на элементах микросхемы DD1 В принципе, эти импульсы мог бы
формировать и микроконтроллер DD2 с помощью одного из имеющихся в нем таймеров
Но это потребовало бы усложнения программы.
Напряжение
3,6 В для питания датчика В1 и микросхемы DD1 получено с помощью стабилитрона VD1
Резисторы R1 —R3 — нагрузочные для линий связывающего датчик с микроконтроллером
интерфейса 1С и сигнала XCLR Печатная плата модуля измерения давления показана
на рис. 2
Хотя
датчик HP03SB содержит и встроенный измеритель температуры, его показания
используются программой микроконтроллера DD2 только для уточнения результатов
измерения давления. На ЖКИ HG1 вместе со значением давления выводятся
показания другого датчика температуры — DS1624 (В2) Причина этого проста — он
точнее При необходимости датчик В2 можно сделать выносным и расположить там где
температура представляет наибольший интерес. При установке в корпусе прибора
этот датчик следует вынести на боковую стенку, сделав в ней окно по его
размерам Иначе неизбежна ошибка на 1,5 ..1,8 'С, в чем я убедился на практике
Напряжение питания +5 В стабилизировано микросхемой DA1 Подстроеч ным
резистором R8 устанавливают наилучшую контрастность изображения на ЖКИ Кнопкой
SB1 включают подсветку его табло. Остальные элементы необходимы для работы
микроконтроллера Элементы R7 R9 СЮ VD2 — цепь установки микроконтроллера в
исходное состояние Кварцевый резонатор ZQ2 с конденсаторами С11.С12 — частотозадающая
цепь тактового генератора мик роконтроллера.
На
рис. 3 представлен чертеж основной печатной платы прибора а на рис. 4 —
расположения деталей на ней В переходное отверстие показанное залитыми (плата
на рис. 2), необходимо вставить и пропаять с двух сторон проволочную
перемычку. Для микроконтроллера DD1 должна быть предусмотрена панель, так как
в процессе налаживания прибора эту микросхему придется извлекать и вновь
устанавливать.
Остановимся
на некоторых особенностях датчика HP03SB. общий вид и габаритные размеры
показаны на рис. 5 Для определения давления необходимо предварительно прочитать
из памяти установленного в приборе экземпляра этого датчика двухбайтные
значения коэффициентов С,—С- и однобайтные значения параметров A—D. Все они индивидуальны
для данного экземпляра.
Результаты
измерения представляют собой два двухбайтных числа- D1 — давление D2 —
температура. Прочитав их из памяти
датчика программа должна вычислить вспомогательные значения
Более
подробные сведения о датчике HP03SB имеются в [1]. Однако необходимо отметить
что там указаны неверно адреса внутренней памяти датчика, по которым хранятся
его индивидуальные константы. Следует пользоваться теми адресами что приведены
в [2] В приборе можно применить и другие датчики серии НРОЗ Некоторые из них
имеют меньшую точность, другие отличаются конструктивным оформлением.
Работа
программы начинается с инициализации портов микроконтроллера и ЖКИ Успешную
инициализацию подтверждает вывод на табло надписи "TER- MOBAR" (буква
Н пропущена). Затем инициализируется датчик давления, счи состояние регистра
статуса модуля TW1 микроконтроллера не проверяется.
Для
чтения коэффициентов и параметров датчика предназначена специальная программа
ReadCC, которую необходимо загрузить в программнуюпамять микроконтроллера полностью собранного
прибора (с подключенным модулем измерения давления), включить его и через
несколько секунд выключить. После этого нужно извлечь микроконтроллер и с
помощью программатора прочитать содержимое его EEPROM. В нем по адресам,
указанным в табл. 1, находятся значения индивидуальных коэффициентов и параметров
датчика. Далее необходимо открыть файл рабочей программы барометра-термометра
BARO-2 asm, найти в нем фрагмент, приведенный в табл. 2, и исправить значения
объявленных там констант в соответствии с прочитанными из EEPROM Параметр D
в программе не используется
Теперь
программа готова к работе с установленным в прибор экземпляром датчика
Остается оттранслировать ее с помощью AVR Studio и загрузить полученный НЕХ- файл
в микроконтроллер Учтите, что аналогичный файл, приложенный к статье, рассчитан
на работу с датчиком, имевшимся у автора Если загрузить его в микроконтроллер
прибор с другим экземпляром датчика давления будет работать но давать неточные
показания
В
разработке использованы фрагменты программ из [3] и [4]. Подпрограммы преобразования
чисел из шестнадцатеричного формата в двоично-десятичный переработаны с
учетом разрядности чисел. Подпрограммы перемножения и деления двухбайтных
чисел, предназначенные для микроконтроллеров семейства MCS-51, переведены на
язык ассемблера AVRASM Меньше всего подверглась изменениям подпрограмма
управления ЖКИ, учтены лишь особенности индикатора MT-10S1 а для ввода и вывода
сигналов использованы другие порты микроконтроллера.