В первой части статьи мы рассмотрели принципиальную схему подключения аналогового сенсора HSM-20G к микроконтроллеру ATmega8 и принципы его работы.
Программное обеспечение для микроконтроллера разработано с использованием компилятора mikroC для AVR версии 5.00. Программа проста для понимания, снабжена комментариями.
Основное – это 6 функций, описание которых ниже.
- void setup_MCU() – функция настраивает периферию и порты ввода/вывода микроконтроллера для оптимальной работы, устанавливая определенные биты в регистрах периферии с помощью встроенных функций компилятора. В нашем случае используется библиотека функций для работы с АЦП и ЖК индикатором.
- void display_common() – функция вызывается лишь один раз. Ее задача – вывод на дисплей текстовой информации “Temperature” (температура) и “Relative Humidity” (относительная влажность) вместе с единицами измерения.
- float read_voltage(unsigned short channel) – функция выполняет чтение данных АЦП (напряжение) по заданному номера канала АЦП и получает среднее значение за 64 выборки, что позволяет исключить шумы и наводки и повысить точность измерения. Результат после выполнения всех математических операцийя возвращается в вызывающую функцию.
- float read_humidity() и float read_temperature() – функции вычисления относительной влажности и температуры с использованием соответствующих выражений и данных от АЦП. В этих же функциях данные подготавливаются для отображения на ЖК индикаторе.
- void display_data(unsigned char x, unsigned char y, float value) – в этой функции определяются знакоместа для вывода данных и сами данные, которые будут отображаться в них.
Загрузки
Исходный код и HEX файл для прошивки микроконтроллера - скачать