Регулятор влажности ch-3800

  И еще один проект на плате ch-c3xxx –  универсальный регулятор влажности ch-3800. Регулятор позволяет работать как в режиме индикатора влажности, так и в режиме регулятора. Рабочий диапазон измеряемой относительной влажности от 0 до 100%. Регулирование влажности возможно как в режиме осушения воздуха, так и в режиме увлажнения. Регулировка выполняется по дискретному закону управления с …
Читать далее Регулятор влажности ch-3800

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


Измерение относительной влажности. Использование аналоговых датчиков фирмы honeywell (HIH-36xx, HIH-40xx)  (проект использует для программирования Serial Bootloader AN1310).  большая корпорация, одним из направления деятельности – есть производство разнообразных сенсоров. Одни из которых, это аналоговые датчики относительной влажности. Аналоговый – говорит, что датчик преобразует измеряемую относительную влажность в напряжение.

HIH-4000_150x130

Получить полную техническую информацию по датчикам влажности можно на сайте http://sensing.honeywell.com. Остановимся на основных параметрах датчика. Для проекта мы будем использовать Датчик HIH-4000 (хотя с успехом подойдут любые датчики из серий HIH-36xx или HIH-40xx).

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

honeywell_illissi_01

На рисунки приведены габаритные размеры датчиков. Обратите внимание на назначение выводов. Левая ножка, -ve – это минус питания, права, +ve – это плюс питания, по центру OUT – аналоговый выход датчика. Величина напряжения питания 5 вольт (если датчики поставляются с калибровочной ведомостью, то именно под это напряжение они калибруются). Хотя можно использовать и при более низком напряжении питания.

Диапазон измеряемой относительной влажности составляет от 0 до 100%.

Обратите внимание на диапазон рабочих температур.

honeywell_illissi_02

Важно понимать о ресурсе жизни датчика, обратите внимание на рекомендуемые зоны эксплуатации. Еще, на чтобы хотелось обратить внимание, этот тип датчика – не влагозащищенный. Что это значит? Не допускается попадание капель воды на чувствительный элемент датчика.

Основные электрические параметры датчика.

honeywell_illissi_03

Зависимость напряжения от относительной влажности имеет практически линейную характеристику. Для нас как для разработчика измерителя влажности будет интересовать два параметра датчика, это величина напряжения на выходе датчика при 0% влажности и наклон (крутизна) характеристики. Если вы приобретаете датчик с калибровочной ведомостью, то эти параметры мы берем из нее. Обозначаются они так: Vout @0%RH (или Zero Offset) – напряжение 0% влажности и Slope – наклон характеристики. Если вам попался датчик без калибровки, то данные можно взять с нашего проекта, при этом точность будет не хуже 4-5%, что для бытовых применений вполне приемлемо.


Схема подключения датчика с использованием PIC-контроллера.

honeywell_illissi_04

Для подключения датчика нам потребуется всего один нагрузочный резистор. Нагрузочная способность датчика не менее 80 кОм. Мы выберем сопротивление из стандартного ряда 100 кОм.

Для реализации проекта мы будем использовать плату ILLISSI-4B-09-primum и плату индикации ILLISSI-4С-02-secundo.

Для того чтобы подключить датчик влажности к нашей платы на плате необходимо запаять два резистора R30 – 100 кОм и R26 – 0 Ом (перемычка). Сам датчик подключается к выводам платы (верхнего дополнительного соединителя).

honeywell_illissi_05honeywell_illissi_06

Как видно из рисунков схема подключения очень простая. Но простота схемы подключения накладывает определенные нагрузки на программу. В чем заключается проблема.

Во первых  – у нас аналоговый сигнал. А в зависимости от удаления датчика, на кабель соединяющий датчик и контроллер, будут влиять электромагнитные помехи которыми богато наша окружающая среда современной эпохи. Также надо учитывать, что чувствительный элемент датчика постоянно “бомбардируют” молекулы воды находящиеся в воздухе. Все это выльется, что напряжение на выходе датчика и т.е. значит и на входе АЦП контроллера будет иметь некоторую шумовую составляющею, которая при обработке сигнала приобретет в “дрожание показаний”. Это будет иметь вид когда на индикаторе одновременно будет пытаться индицироваться несколько значений. И сама цифровая индикация будет смазана.

Какие в этом случае могут быть методы борьбы, чтобы отфильтровать помеху и “сгладить” сигнал датчика. Если у нас был простой АЦП (без контроллера), то мы пошлибы по следующему пути:

1. Применили экранирование датчика.

2. Применили бы экранированный кабель соединяющий датчик и контроллер.

3. Поставили в цепи данных датчика фильтрующие конденсаторы.

Что мы имеем? Первое – все эти пункты это удорожание конструкции и при том без каких либо гарантий. Второе – фильтрующие конденсаторы значительно замедлили реакцию самого датчика на изменение влаги в воздухе.

Если бы и эти методы не дали результатов, то единственное решение это выполнять измерение через длительные промежутки времени (например 1 раз в секунду) и реже, и также реже выводить данные измерение на индикацию.

Но при использовании PIC-контроллера мы имеем не просто АЦП, мы имеем микроЭВМ для выполнения нашей поставленной задачи.


Программирование.

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

Для включения в работу АЦП необходимо в модуле инициализации контроллера “прописать” следующие строки:

Мы подключивший датчик к аналоговому порту AN1 контроллера. Это вход RA1. Настроим вход на ввод информации.

Настроим, что этот вход будет аналоговый.

Настроим и включить АЦП.

Кратко по последним строкам,

Выравнивание данных – вправо, количество тактов для измерения 20 (хотя можно и 12), источник тактовой частоты внутренний RC генератор, диапазон опорных напряжений – напряжение питания контроллера, АЦП подключен к аналоговому входу AN1.

Далее сам процесс измерение влажности заключается в следующем, мы должны “запустить” АЦП на измерение, по окончанию измерения сосчитать с регистров АЦП данные. Произвести над данными вычисление и вывести на дисплей значение полученной относительной влажности.

Для измерение влажности мы будем использовать так называемый “прозрачный цикл”. Что это значит? Мы не будем делать цикл ожидания окончания преобразования АЦП – это бы создало бы потерю рабочего времени контроллера, мы будем просто в основном цикле программы проверять окончание и если данные готовы, считывать их для обработки, запускать конвертирование с начала и заниматься обработкой данных. Потом весь процесс повторяется. Такое построение не дает потери машинного времени, которое может потребоваться для выполнение работы в более сложных проектах.

Основная структура измерения:

Обработку (преобразование данных АЦП во значение влажности) данных, по преобразованию значения АЦП в значение влажности, выполним используя целочисленную математику это даснам значительную экономию памяти программ.

Добавим немного комментарий к данному фрагменту. Полученное значение АЦП ADCIZ мы должны преобразовать в измеряемое напряжение. Мы знаем, что у нас 10 разрядный АЦП это значит, то весь диапазон опорного напряжения (для нас 5,0 вольт, напряжение питания контроллера) – 1024. Т.е. значение на выходе АЦП будет иметь диапазон значение от 0 до 1023. Разделив диапазон опорного напряжения на разрядность АЦП получим число ~0,004887585532… Для целочисленной математики вы возьмем первые 5 значащих цифр 48875. А далее чтобы полученное число имело “вменяемый вид” разделим его на 100000.

Из полученного значения нам необходимо отнять напряжения нуля датчика. Значение тоже будем брать только значащие цифры. Например, если в пасторте Zero Offset = 0,827260 берем только 83 (округляем). Далее опять приводим в нормальный вид умножая на 100. И следующее вычисляем влажность используя коэффициент наклона Slope, только целое значение.

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

Как программно, нам из “шума”, выделить полезный сигнал.

Первое будем находить среднее из 10 измерений, но делать это будем немножно по новому. Мы не будем делать 10 измерений, а потом суммировать и делить на 10. Мы будем, Брать 1/10 от измеренного сигнала и прибавлять его к значению регистра индикации, предварительно из него (регистра индикации) отняв 1/10 его хранящегося значения. Это значительно сэкономит на память ОЗУ.

И последнее если нам необходимо получить, только целые значения процентов, разделим еще наши данные на 10.

Вычисляя среднее значение нам поможет на 90% избавиться от помех, но нас еще будут беспокоить условие когда будет переход значения, т.е. изменение показаний влажности, например, было 40%, влажность увеличивается и будет видно как начнет “блымать” на индикаторе 40/41 процент, пока значение будет находиться на границе измерений. Для решения этой проблемы применим “накапливающий интегратор”. Суть его заключается в том, когда новое значение превышает (подразумевается чаще предоставляется для индикации) старое (индицируемое) значение (по измерениям) в N раз, то только тогда происходит смена индикации. Все очень просто.

В нашем примере N=200, хотя может быть любое число (это зависит от необходимой быстроты смены индикации). Работа модуля следующая сравнивается новое и действующее (исключающее или) значение и проверяется условие накопления нового значения, если оно достигло заданного порога (200) происходит смена индикации.

После этого выводим полученные данные на индикатор.

Весь процесс измерения выглядит так:

 P.s. Все эти программные навороты нам дают “стабильную” индикацию и быстроту слежения за измеряемым параметром. Эти методы можно применить для измерения и индикации в других приложениях.


Загрузка демонстрационного проекта.

Версия – 1.1

Значок

Измерение относительной влажности - v1.1 15.88 KB 666 downloads

Измерение относительной влажности. Использование...
Версия – 1.2
Значок

Измерение относительной влажности - v1.2 16.05 KB 690 downloads

Измерение относительной влажности - v1.2 ...

обновлено 04/09/12  v1.1 honeywell_illissi_07 


Это может быть интересно


  • PIC18 – System ArbitrationPIC18 – System Arbitration
    Системный арбитр. Разрешает доступ к памяти между выборами уровнями системы (т.е. Main, Interrupt Service Routine) и выбором периферийных устройств (т.е. DMA и Scanner) на основе назначенных пользователем приоритетов. Каждый из уровней …
  • Гаджеты для домашней автоматики – Емкостной сенсорГаджеты для домашней автоматики – Емкостной сенсор
    Управление светодиодным освещением – Сенсор емкостной. Данный гаджет предназначен для управления освещением где необходимо включением освещение сенсорным прикосновением. Датчик позволяет управлять светодиодной нагрузкой в виде модулей или светодиодных лент освещения. Питание …
  • USB K-L-line адаптерUSB K-L-line адаптер
    USB K-L-line адаптер предназначен для связи персонального компьютера с диагностической шиной автомобиля – интерфейс ISO-9141. Этот проект предназначен для сборки недорого устройства с использованием специально для этой цели разработанной печатной …
  • Регулятор влажности ch-3800Регулятор влажности ch-3800
      И еще один проект на плате ch-c3xxx –  универсальный регулятор влажности ch-3800. Регулятор позволяет работать как в режиме индикатора влажности, так и в режиме регулятора. Рабочий диапазон измеряемой относительной …
  • LCD драйвер – UC1601sLCD драйвер – UC1601s
    http://svetomuzyka.narod.ru/project/UC1601s.html Читайте обновление на http://catcatcat.d-lan.dp.ua/?page_id=178 В данный момент можно приобрести в ООО “Гамма” несколько типов индикаторов на драйвере UC1601s. RDX0048-GC, RDX0077-GS, RDX0154-GC и RDX0120-GC выполнены по технологии COG. Метки:UC1601s
  • MPLAB® Harmony – или как это просто! Часть 2.MPLAB® Harmony – или как это просто! Часть 2.
    Часть вторая – Первая программа на PIC32. Музыкальная тема к статье, слушаем: Для начала изучения PIC32 надо иметь или демоплату или самому её изготовить имея микроконтроллер. Начнем из трудоемкого варианта …
  • Дисплей KD035C-3A подключение и управлениеДисплей KD035C-3A подключение и управление
    Дисплей KD035C-3A производиться компанией SHENZHEN STARTEK ELECTRONIC TECHNOLOGY CO.,LTD Характеристики Параметр Спецификация Единицы измерения Размер дисплея 70.08(H)*52.56(V) (3.5inch) mm Тип дисплея TFT active matrix Цветовая гамма 65K/262K colors Разрешение 320(RGB)*240 dots …
  • Защита датчиков температуры DS18B20 от статического электричестваЗащита датчиков температуры DS18B20 от статического электричества
    Статья перепечатана с сайта http://svetomuzyka.narod.ru При удалении датчика на большие расстояния возникает опасность наведения импульсов высокого напряжения на кабель, который соединяет датчик с контролером. Если не принимать меры защиты, то наведенное …
  • Проект с использованием MCC часть 08Проект с использованием MCC часть 08
    И так создадим проект в котором при помощи двух кнопок мы сможем управлять яркостью светодиодов. При использовании МСС у нас лафа полная, добрые дяди с Microchipa подготовили функции, которыи позволяет …
  • Altium Designer – создание рисунков на печатной платеAltium Designer – создание рисунков на печатной плате
      Для создание рисунков на печатной платы в Altium Designer можно использовать возможность использовать в Altium Designer сторонних скриптов. Мне возможность эта очень понравилась и я решил её расшарить для электронщиков. …



Регулятор влажности

Регулятор ILLISSI-CH-1000 предназначен для контроля и регулировки относительной влажности в диапазоне от 0 до 100%. Регулятор позволяет работать как в режиме осушения, так и увлажнения. Для измерения возможно использовать аналоговые датчики фирмы honeywell с типами HIH-xxx. Структура меню работы регулятора. Режимы работы регулятора: Основной режим работы Режим настройки Функции клавиш в основном режиме работ: ◄ …
Читать далее Регулятор влажности