Во всемирной сети Интернет возможно найти конструкции устройств на микроконтроллерах, позволяющих измерять температуру окружающей среды и относительную влажность с помощью датчиков SHT75 и SHT11. Это цифровые датчики, откалиброванные в заводских условиях. В данной статье мы рассмотрим конструкцию на базе аналогового сенсора и микроконтроллера Atmel AVR.
Аналоговый датчик температуры и относительной влажности HSM-20G представляет собой отдельный миниатюрный модуль, который преобразует значение указанных параметров окружающей среды в напряжение на выходе.
Для проведения экспериментов нам понадобиться микроконтроллер ATmega8, модуль HSM-20G и 4-строчный ЖК индикатор. Автор для экспериментов использовал отладочную плату собственной разработки. Для разработки программного обеспечения использовался компилятор mikroC для AVR от компании mikroElektronika.
В техническом описании датчика производитель дает значения выходного напряжения для некоторых значений относительной влажности и график зависимости. Эти данные были использованы автором для построения графика зависимости для проверки точности. График изображен ниже.
Как видно, зависимость нелинейная, поэтому автор использовал программную среду MATLAB, чтобы получить выражение для вычисления значений выходного напряжения в зависимости от окружающей относительной влажности, при этом используя значения из технического описания на модуль HSM-20G (стандартные характеристики). Использовалась при этом функция аппроксимирующего полинома третьей степени (Polyfit). Первая причина использования полинома третьей степени заключается в том, что микроконтроллер AVR имеет встроенный аппаратный умножитель, который работает быстро, и вторая причина – такая точность достаточна для измерений.
Такую же задачу нужно решить и для получения данных о температуре окружающего воздуха, однако она несколько сложнее. Если вы посмотрите в техническое описание сенсора, то увидите схему подключения его к другой периферии (в нашем случае это микроконтроллер) или к измерительному прибору. Автор использовал данную типовую схему включения. Однако, поскольку производитель сенсора не знает, какое значение сопротивления пользователь будет использовать при измерении температуры, и в связи с тем, что внутри сенсора HSM-20G находится термистор, а не полупроводниковый датчик температуры, производитель предоставил зависимость значения сопротивления при различных температурах. Таким образом, автор вычислил значение выходного напряжения температурной части датчика HSM-20G по методике описанной выше.
Схема подключения датчика и ЖК индикатора к микроконтроллеру несложна, и изображена на рисунке ниже.
Два канала АЦП (ADC0 и ADC1) используются для подключения сенсора, АЦП измеряет выходное напряжение сенсора, которое соответствует температуре и относительной влажности. Резисторы и конденсатор, подключенные к выходу датчика, рекомендованы по теническому описанию на HSM-20G.
В следующей части мы рассмотрим основные моменты в ПО микроконтроллера.