Схема. Барометр и термометр на ATmega8

   Схема Барометр и термометр на ATmega8 1   
      Пределы измерения и погрешность прибора определяются в основном примененными в нем датчиками: температура -55…+125 °С, атмосферное давление 225. 825 мм ртутного столба. Прибор питается напряжением 9 В от гальванической батареи типа «Крона» или сетевого адаптера Потребляемый ток — 30 мА (при выключенной подсветке ЖКИ). Размеры корпуса -118×72-28 мм. Работа прибора была проверена при температуре от -5 до +25 °С Погрешность измерения давления не превысила 4 мм ртутного столба.

      Схема барометра и термометра изображена на рис. 1, причем собранный на отдельной плате модуль измерения давления выделен штрихпунктирной линией.
      Необходимые для работы датчика тактовые импульсы частотой 32768 Гц вырабатывает кварцевый генератор на элементах микросхемы DD1. В принципе, эти импульсы мог бы формировать и микроконтроллер DD2 с помощью одного из имеющихся в нем таймеров. Но это потребовало бы усложнения программы.
      Напряжение 3,6 В для питания датчика В1 и микросхемы DD1 получено с помощью стабилитрона VD1. Резисторы R1—R3 — нагрузочные для линий связывающего датчике микроконтроллером интерфейса I2С и сигнала XCLR Печатная плата модуля измерения давления показана на рис. 2.
Схема Барометр и термометр на ATmega8 2
      Хотя датчик HP03SB содержит и встроенный измеритель температуры, его показания используются программой микроконтроллера DD2 только для уточнения результатов измерения давления. На ЖКИ HG1 вместе со значением давления выводятся показания другого датчика температуры — DS1624 (В2) Причина этого проста — он точнее.
      При необходимости датчик В2 можно сделать выносным и расположить там, где температура представляет наибольший интерес. При установке в корпусе прибора этот датчик следует вынести на боковую стенку, сделав в ней окно по его размерам. Иначе неизбежна ошибка на 1,5… 1,8 °С, в чем я убедился на практике.
Схема Барометр и термометр на ATmega8 6
      Напряжение питания +5 В стабилизировано микросхемой DA1. Подстроечным резистором R8 устанавливают наилучшую контрастность изображения на ЖКИ. Кнопкой SB1 включают подсветку его табло. Остальные элементы необходимы для работы микроконтроллера. Элементы R7, R9 С10 VD2 — цепь установки микроконтроллера в исходное состояние Кварцевый резонатор ZQ2 с конденсаторами С11.С12 — частотозадающая цепь тактового генератора микроконтроллера.

      На рис. 3 представлен чертеж основной печатной платы прибора а на рис. 4 — расположения деталей на ней. В переходное отверстие показанное залитыми (плата на рис. 2), необходимо вставить и пропаять с двух сторон проволочную перемычку. Для микроконтроллера DD1 должна быть предусмотрена панель, так как в процессе налаживания прибора эту микросхему придется извлекать и вновь устанавливать.
      Остановимся на некоторых особенностях датчика HP03SB, общий вид и габаритные размеры показаны на рис. 5. Для определения давления необходимо предварительно прочитать из памяти установленного в приборе экземпляра этого датчика двухбайтные значения коэффициентов С1—С1 и однобайтные значения параметров А—D. Все они индивидуальны для данного экземпляра.
      Результаты измерения представляют собой два двухбайтных числа: D1 —давление. D2 — температура. Прочитав их из памяти датчика, программа должна вычислить вспомогательные значения:
Схема Барометр и термометр на ATmega8 5

А затем — давление воздуха в гектопаскалях:
PhP = X·10/32+C7;
и в миллиметрах ртутного столба:
PHg = PhP·1000/13332.
Схема Барометр и термометр на ATmega8 3
      Более подробные сведения о датчике HP03SB имеются в [1]. Однако необходимо отметить что там указаны неверно адреса внутренней памяти датчика, по которым хранятся его индивидуальные константы. Следует пользоваться теми адресами что приведены в [2]. В приборе можно применить и другие датчики серии НР03. Некоторые из них имеют меньшую точность, другие отличаются конструктивным оформлением.

      Работа программы начинается с инициализации портов микроконтроллера и ЖКИ. Успешную инициализацию подтверждает вывод на табло надписи TERMOBAR» (буква Н пропущена). Затем инициализируется датчик давления, считываются его показания, выполняются расчеты, результаты которых преобразуются в двоично-десятичный формат и выводятся на индикатор, занимая три десятичных разряда. Аналогично происходят обработка и вывод на ЖКИ значения температуры. Его целая часть — три разряда, дробная — два разряда. Продолжительность показа значений давления и температуры по 3,5 с.

      Подпрограмма Timer_int каждые 70 мин проверяет в каком направлении за это время изменилось давление, и выводит на ЖКИ знаки «↑», «↓», «=». В подпрограммах инициализации и чтения показаний датчиков HP03SB и DS1624 состояние регистра статуса модуля TW1 микроконтроллера не проверяется.
Схема Барометр и термометр на ATmega8 4
      Для чтения коэффициентов и параметров датчика предназначена специальная программа ReadCC, которую необходимо загрузить в программную память микроконтроллера полностью собранного прибора (с подключенным модулем измерения давления), включить его и через несколько секунд выключить. После этого нужно извлечь микроконтроллер и с помощью программатора прочитать содержимое его EEPROM. В нем по адресам, указанным в табл. 1, находятся значения индивидуальных коэффициентов и параметров датчика. Далее необходимо открыть файл рабочей программы барометра-термометра BARO-2 asm, найти в нем фрагмент, приведенный в табл. 2, и исправить значения объявленных там констант в соответствии с прочитанными из EEPROM. Параметр D в программе не используется.
Схема Барометр и термометр на ATmega8 7
      Теперь программа готова к работе с установленным в прибор экземпляром датчика. Остается оттранслировать ее с помощью AVR Studio и загрузить полученный НЕХ-файл в микроконтроллер. Учтите, что аналогичный файл, приложенный к статье, рассчитан на работу с датчиком, имевшимся у автора Если загрузить его в микроконтроллер, прибор с другим экземпляром датчика давления будет работать но давать неточные показания.

      В разработке использованы фрагменты программ из [3] и [4]. Подпрограммы преобразования чисел из шестнадцатеричного формата в двоично-десятичный переработаны с учетом разрядности чисел. Подпрограммы перемножения и деления двухбайтных чисел, предназначенные для микроконтроллеров семейства MCS-51, переведены на язык ассемблера AVRASM Меньше всего подверглась изменениям подпрограмма управления ЖКИ, учтены лишь особенности индикатора MT-10S1 а для ввода и вывода сигналов использованы другие порты микроконтроллера.

Прилагаемые файлы:    baro-2.zip   

ЛИТЕРАТУРА
1. НР03 Series of calibrated sensor module HP03SB —    www.hoperf.com/pdf/HP03SB.pdf    .
2. HP03 programming guide —    www.hoperf.com/pdf/hp03_code.pdf   
3. Трамперт В. AVR-RISC микроконтроллеры.— К.. МК-Пресс, 2006
4. Фрунзе А. Микроконтроллеры? Это же просто! Том. 1. — М . Додэка-ХХI 2007.

Н. САЛИМОВ, г. Ревда Свердловской обл.
«Радио» №6 2010г.

Похожие статьи:
Барометрический высотомер
Цифровой термометр

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *