Главная Устройства на прочих микроконтроллерах Экономичный цифровой термо-влагометр
Гарантия низких цен

Экономичный цифровой термо-влагометр

Рейтинг пользователей: / 1
ХудшийЛучший 

 

Описываемый прибор предназначен для измерения температуры и относительной влажности воздуха. Его особенностями являются высокая точность измерений, обусловленная использованием калиброванного датчика температуры/влажности с цифровым интерфейсом, и предельно низкое токопотребление, достигнутое применением экономичного микроконтроллера и программной оптимизацией его режима работы.

 

 

 

 

Основные параметры:

Интервал измерения температуры

-9.9°C – 99.9°C

Интервал измерения влажности

1% – 99%

Погрешность измерения температуры

±0.5°C

Погрешность измерения влажности

±2%

Средний потребляемый ток

22 мкА

Напряжение питания

1.5 В

Чередующиеся значения температуры и влажности воздуха индицируются на жидко-кристаллическом индикаторе (ЖКИ) с периодом 8 сек. Температура показывается с разрешением 0.1 °C, а влажность, как целое число. При этом в самом правом разряде ЖКИ высвечивается буква C (Celsius) или H (Humidity), соответственно. Предел измерения отрицательной температуры определяется рабочим температурным интервалом примененного ЖКИ.

Помимо высокой точности, немаловажными преимуществами нашего прибора являются отсутствие необходимости какой-либо калибровки или налаживания и длительное время работы от одной батареи.

Схема:

Принципиальная схема экономичного цифрового термометра-влагометра

Примененный датчик DD2 фирмы Sensirion является одним из самых точных приборов такого рода. Он обеспечивает цифровое измерение температуры и влажности с разрешением до 14 и 12 бит, соответственно. С целью минимизации потребляемого, при подключении батареи датчик переводится в режим пониженного разрешения, соответственно 12 и 8 бит. Как показали эксперименты, понижение разрешения не влияет на точность показаний при использованном нами количестве десятичных цифр. Однако, при этом средний потребляемый прибором ток уменьшается примерно в 2.5 раза за счет гораздо более быстрого преобразования датчиком измеряемых величин в цифровой формат. В режиме измерения потребляемый датчиком ток примерно равен 0.55 мА. После каждого измерения датчик автоматически переключается в спящий режим, в котором токопотребление снижается до 0.1 мкА.

Датчик подразумевает эксклюзивный интерфейс, несколько отличный от стандартного I2C. Обмен данными между датчиком и микроконтроллером DD3 происходит по двусторонней линии связи SDA, тактируемой по входу SCK. Подтягивающий резистор R2 необходим только на входе SDA датчика, т.к. он работает в ведомом режиме и синхронизирующие импульсы для передачи данных вырабатываются только микроконтроллером.

Микроконтроллер DD3, производимый фирмой Texas Instruments, отличается наличием встроенного драйвера ЖКИ и предельно малым токопотреблением. В перерывах между измерениями (спящий режим LPM3), когда единственными работающими в нем блоками являются тактовый генератор, драйвер ЖКИ, и таймер, он потребляет не более 5 мкА при подключенном ЖКИ. В период измерения и обработки данных от датчика потребляемый ток на короткое время возрастает до 450 мкА. В спящем режиме тактовый генератор микроконтроллера работает на частоте 32,768 кгц стабилизированной кварцевым резонатором ZQ1. В активном режиме тактовая частота повышается до 1 мгц с помощью встроенного синтезатора частоты, чем обеспечивается высокая производительность микроконтроллера. Элементы R1 и C5 необходимы для нормального запуска микроконтроллера при подаче питания, а разьем X1 служит для прошивки в него программы по интерфейсу JTAG.

Как видно из схемы, у микроконтроллера остаются незадействованными большое число выводов, позволяющих при необходимости подключить к нему внешние устройства, например генератор тревожного тона при превышении температуры или влажности некоторых пороговых значений. Примененный микроконтроллер содержит наименьшее число выводов среди микросхем серии MSP430, содержащих драйвер ЖКИ. В нашей схеме драйвер работает в мультиплексном режиме 1:3 с использованием трех уровней напряжения для формирования сигналов управления ЖКИ (bias 1/2). Как показали эксперименты, по сравнению с рекомендованным режимом с 4 уровнями напряжений (bias 1/3) при используемом типе ЖКИ такой режим обеспечивает более удобный угол зрения для считывания показаний дисплея при максимальной контрастности.

Для питания всех цепей устройства служит преобразователь напряжения, собранный на микросхеме DD1 также фирмы Texas Instruments. Преобразователь работает в «дремлющем» режиме, существенно повышающем его КПД при малых токах нагрузки. Дремлющий режим включается путем подсоединения вывода SNZ к общему поводу. Выходное напряжение на выводе OUT2 преобразователя стабилизировано на уровне 3.3 В при изменении напряжения батареи в пределах 0.9 – 1.8 В. При таком выходном напряжении обеспечиваются оптимальные режимы работы ЖКИ HG1 и датчика DD2, рекомендованные в их технической документации. Конденсаторы C1 – C3 и C7 – C8 необходимы для нормальной работы преобразователя, a C4 и C7 - развязочные в цепях питания датчика и микроконтроллера.

Программа микроконтроллера написана на языке ассемблера и предназначена для компиляции в свободной версии системы EW430 фирмы IAR. Особенностью программы является несколько модифицированный алгоритм линеаризации и термо-компенсации показаний датчика влажности по сравнению с изложенным в его даташите. Если через SORH обозначить численное значение влажности на выходе датчика, линеаризация его, согласно даташиту, состоит в вычислении величины

RHlin = -2.0468 + 0.5872·SORH + 0.00040845·SO2RH.

Проблема при программировании этой формулы состоит в наличии в ней дробных чисел, что существенно усложняет и замедляет программу и, как следствие, снижает экономичность всего устройства. С помощью специальной программы на компьютере для этой формулы была выработана ее следующая аппроксимация:

RHlin ·107 = (5871300 - 4096·SORH + 16·SORHSORH – 19939840.

Значения вычисленные по этой формуле (после деления результата на 107) совпадают с таковыми при использовании стандартной формулы с точностью до одного десятичного знака. Более точно, аппроксимированные значения больше истинных на 0.1 лишь для SORH = 10 и 11, что компенсируется программно. Однако, аппроксимированная формула предполагает операции только с целыми числами. Умножение на 4096 и 16 может быть быстро реализовано с помощью операций сдвига. Таким образом, остается реализовать лишь одно умножение 23-битного значения в скобках на 8-битное значение SORH, что также достаточно быстро реализуемо в 16-битном микроконтроллере.

Для термокомпенсации значения влажности, согласно даташиту, к значению RHlin, вычисленному выше, следует добавить величину

RHT = (TC - 25) · (0.01 + 0.00128·SORH),

где TC температура воздуха в °C. В нашей программе вместо этого вычисляется величина

RHT ·107 = (SOT - 2500) · (1000 + 128·SORH),

где SOT значение температуры на выходе подпрограммы getTemp2, связанное с температурой воздуха TC зависимостью SOT = TC · 100 (умножение на 100 заложено в формате данных датчика). Таким образом, полученная формула опять включает только целочисленные операции и лишь одно умножение 16-битных чисел в скобках. В итоге вычисленное по формулам значение следует разделить на 107 для получения окончательного 8-битного значения влажности в пределах 1 – 99%, отображаемого на ЖКИ. Вся описанная процедура реализована в подпрограмме humi2BCD и занимает около 600 циклов CPU, или порядка 600 мкс.

После инициализации используемых регистров микроконтроллера, программа посылает в датчик команду перехода на режим пониженного разрешения, и входит в основной цикл. На каждой итерации этого цикла происходит попеременное вычисление либо температуры, либо влажности воздуха и отображение его на ЖКИ. В конце цикла процессор переходит в спящий режим LPM3 для экономии энергии батареи. Возврат его в рабочий режим производится таймером, вызывающим аппаратное прерывание каждые 2 секунды. В конце цикла ожидается 4 таких прерывания для производства нового измерения через 8с. Остальная часть программы служит для реализации интерфейса обмена данными с датчиком, перевода значений температуры и влажности в BCD представление, и засылки их в регистры драйвера ЖКИ для индикации.

Конструкция:

Внешний вид печатной платы с элементами цифрового термо-влагометра со стороны установки микроконтроллера

Внешний вид печатной платы с элементами цифрового термо-влагометра со стороны установки индикатора

Прибор собран на печатной плате из двустороннего фольгированного стеклотекстолита толщиной 0.8 мм. Фольга на одной стороне используется в качестве экрана (допустимо использование материала с односторонним фольгированием). Плата установлена в пластиковый корпус размером 76 × 50 × 27 мм.

Внешний вид экономичного цифрового термо-влагометра. Индикация температуры

Внешний вид экономичного цифрового термо-влагометра. Индикация влажности

В передней и боковой стенках корпуса проделаны прямоугольное и круглое отверстия под ЖКИ и датчик, соответственно. Датчик установлен на плате на четырех проволочных стойках для ускорения адаптации к быстро меняющимся параметрам среды. Плата внутри корпуса крепится на болтах, ввинченных в металлические стойки высотой 5мм, имеющих внутреннюю резьбу M2 (Фото 4). Стойки приклеены к дну корпуса эпоксидным клеем. Для устранения влияния влажности воздуха на токопотребление, плата покрыта лаком со стороны печатных дорожек (можно использовать лак для ногтей). Держатель батареи типоразмера AАА приклеен к задней (съемной) стенке корпуса. Все резисторы и конденсаторы типоразмера 0603 для поверхностного монтажа. Конденсаторы должны быть керамические с рабочим напряжением не менее 10 В. Кварцевый резонатор типа ABS07-32.768KHZ-T фирмы Abracon. Тип примененного ЖКИ – VIM-404 производимый фирмой Varitronix. Разъем для программирования микроконтроллера типа LPPB071NFSC-RC фирмы Sullins.

Касательно энергопотребления прибора, все приведенные выше значения потребляемого тока приведены для питания от источника напряжения 3.3 В (выход преобразователя напряжения). Так как напряжение батареи в процессе разряда может быть в 2.2 – 4 раза ниже чем 3.3 В и КПД преобразователя не превосходит 75%, чтобы оценить время работы от одной батареи необходимо знать токопотребление для каждого режима работы и длительность этого режима (более подробно см. методику в [3]). Ниже приводятся фактические экспериментальные данные для собранного устройства при питании его от батареи напряжением 1.5 В.

В режиме измерения температуры, основной цикл программы начинается с посылки команды измерения в датчик. При этом микроконтроллер и датчик находятся в активном режиме и вся схема потребляет 1.9 мА от батареи. Продолжительность этого режима 342 мкс. Затем датчик производит измерение температуры в течении 80 мс, микроконтроллер на это время переходит в спящий режим и токопотребление снижается до 1.4 мА. По окончании измерения, микроконтроллер пробуждается и извлекает показания температуры из датчика на протяжении 431 мкс, в течении которых вся схема опять потребляет 1.9 мА. После этого датчик отключается и микроконтроллер обрабатывает показания в течении 200 мкс при токопотреблении 1.3 мА. По окончании обработки вся схема переходит в спящий режим ожидания начала нового измерения. Это наиболее продолжительный режим длительностью около 8 сек, на протяжении которого включенными остаются лишь тактовый генератор микроконтроллера, драйвер ЖКИ, и таймер. Потребляемый ток от батареи снижается при этом до 13 мкА. Таким образом, для среднего потребляемого тока Iср (в мкА) за этот период имеем:

Iср = (1900·342 + 1400·80000 + 1900·431 + 1300·200 + 13·8000000) / (342 + 80000 + 431 + 200 + 8000000) ≈ 27 мкА.

Подобный анализ токопотребления в режиме измерения влажности приводит к величине 17 мкА. Очевидно, существенный вклад в токопотребление происходит во время измерения температуры/влажности датчиком. Так как для измерения влажности датчику требуется 20 мс в сравнении с 80 мс для измерения температуры, токопотребление при этом гораздо ниже. Поскольку длительность обоих режимов измерения примерно одинакова (по 8 с), среднее токопотребление (за 16 с) составляет приблизительно (27 + 17) / 2 = 22 мкА. Таким образом, при питании от качественной батареи типоразмера AAA емкостью 1000 мАч прибор проработает 1000 / 0.022 ≈ 45454 часов, или около 5 лет. Этот анализ не учитывает, однако, понижение напряжения батареи при ее разряде (что приведет к как минимум пропорциональному повышению потребляемого тока), химических процессов внутри самой батареи, способствующих ее саморазряду, и прочих паразитных факторов. Все это приведет к более быстрому разряду батареи. Тем не менее, следует ожидать непрерывное время работы прибора от одной батареи в течении нескольких лет. Это время можно существенно повысить, запитав схему от батареи типоразмера AA.

Автор: С. Безруков, В. Аристов

Источник:

 

Скачать:
Скачать этот файл (th430.asm)th430.asm[Исходный текст программы экономичного цифрового термо-влагометра]21 Kb
Скачать этот файл (th430.brd)th430.brd[Чертеж печатной платы в формате Eagle]17 Kb
 

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


Защитный код
Обновить

Find the Best Web Hosting which offers reliable service and top quality support
Реклама
Яндекс.Метрика