В статье рассматривается простая многоканальная система сбора данных о температуре, которая подключается к персональному компьютеру. Аппаратная часть имеет простую конструкцию, в основе – микроконтроллер Atmel AVR ATmega8.
Программная часть – это достаточно функциональная программа для персонального компьютера с графическим пользовательским интерфейсом и большим количеством настроек.
Данные на ПК передаются по последовательному интерфейсу RS232, однако пользователи могут использовать мост USB-RS232 для подключения аппаратной части по интерфейсу USB (создание виртуального COM-порта).
Рассмотрим аппаратную часть
Микроконтроллер ATmega8 имеет встроенный многоканальный 10-битный АЦП. Используемые датчики температуры LM335 подключаются к аналоговым входам АЦП микроконтроллера. Следует заметить, что ATmega8 в корпусном исполнении DIP имеет 6 каналов АЦП, а ATmega8 в корпусе TQFP – имеет 8 каналов АЦП.
Для измерения температуры используются прецизионные датчики температуры LM335 – недорогие температурные чувствительные элементы с диапазоном от –40 °C до +100 °C и точностью в 1 °C. Фактически, LM335 – это стабилитрон с нормированным Температурным Коэффициентом Напряжения (ТКU =10 мВ/K). Т.е. изменение температуры датчика на 1 градус ведет к изменению напряжения на 10 мВ.
Схема включения (соответствует типовой схеме включения стабилитрона):
Задавая ток через датчик в диапазоне от 0.45 мА до 5 мА (резистором R1), получаем напряжение на датчике, которое в десятках мВ представляет абсолютную температуру в градусах Кельвина.
Потенциометр, подключенный к выводу ADJ, используется для калибровки датчика при известной температуре, к примеру 2.98 В при температуре 25 °С.
Принципиальная схема аппаратной части системы сбора данных
Основная задача микроконтроллера – чтение данных АЦП по команде ПК и передача их по интерфейсу RS232. Рабочая частота микроконтроллера задается кварцевым резонатором 8 МГц, однако возможно использование внутреннего осциллятора 8 МГц. Возможно использование любого микроконтроллера AVR, но потребуется корректировка исходного кода программы микроконтроллера.
Для подключения микроконтроллера к ПК по последовательному интерфейсу используется специализированная микросхема MAX232 в стандартном включении. Для передачи данных используется встроенный в микроконтроллер аппаратный USART (универсальный синхронно-асинхронный приемопередатчик).
Программная часть
Отличительные особенности программы для ПК:
- возможность настройки интервалов чтения данных;
- просмотр в реальном времени графиков;
- запись, сохранение и открытие сохраненных данных;
- режим статического чтения, возможность распечатки результатов и графиков;
- возможность ручного управления последовательной передачей данных.
Вид окна программы системы сбора данных о температуре
Передача данных от аппаратной части в компьютер осуществляется по следующему протоколу:
-
При первоначальном подключении к плате контроллера, после открытия последовательного порта, компьютер пытается установить связь с контроллером. Компьютер посылает символ «>» (0x3E), микроконтроллер в ответ должен повторить данную команду.
- После того, как соединение установлено, мы можем посылать команды микроконтроллеру. Команда чтения данных АЦП – компьютер посылает символ «r» (0x72), ответ микроконтроллера на команду чтения данных будет выглядеть следующим образом: « D» + 2 байта (канал АЦП 0) + 2 байта (канал АЦП 1) + … +2 байта (канал АЦП 7). Всего будет передано 18 байт. Данные 16-битные (10-битное разрешение АЦП), старший байт передается первым.
Программа микроконтроллера написана на ассемблере. В основном цикле программы осуществляется прием данных от компьютера по последовательному порту. Параметры последовательного порта: скорость передачи данных 19200, 8 байт данных, без проверки четности, 1 стоп-бит. Исходный код хорошо закомментирован, пользователи могут модифицировать исходный код для своих нужд и задач.
Загрузки
Программа микроконтроллера (исходный код, hex-файл) – скачать
Программа для ПК – скачать