Простая система сбора данных о температуре на PIC микроконтроллере » Программирование устройств на PIC микроконтроллерах


Логин:
Пароль:
О сайте:

Pic.Rkniga.ru - Сайт как для начинающих, так и для опытных радиолюбителей, разрабатывающих свои устройства на популярных PIC микроконтроллерах.
Здесь можно обмениваться сообщениями на форуме, а также добавлять на сайт статьи и схемы своих устройств.

Меню сайта
Главная Форум по PIC микроконтроллерам Форум Статьи по PIC микроконтроллерам Статьи Справочная информаци по PIC микроконтроллерам Справочник Литература по PIC микроконтроллерам Литература Схемотехника Схемотехника устройств на PIC микроконтроллерах Микроконтроллеры Программаторы Все по программированию PIC микроконтроллеров Программы, Софт Программы Ссылки
Опрос

Какие микроконтроллеры вы используете?


Atmel
MicroChip
STM
Motorola
Texas Instruments
Другие


Последние материалы
  • Тестовая плата для отладки программ на микроконтроллере PIC18F4550
  • Кнопка On/OFF на PIC12F629.
  • Часы с синхронизацией от китайского будильника
  • ШИМ регулятор на PIC16F628A.
  • Счетчики прямого и обратного счета на PIC16F628A.
  • Таймер отключения питания для мультиметра и не только.
  • Измеритель напряжения и тока
  • Маршрутный компьютер для электровелосипеда
  • Простой двухканальный термометр на PIC16F690 и датчиках DS18B20
  • Электронная "Незабудка" для забывчивых
  • Популярные материалы
    Случайная книга
    Программирование устройств на PIC микроконтроллерах » Схемотехника » Измерительная техника » Простая система сбора данных о температуре на PIC микроконтроллере
    Простая система сбора данных о температуре на PIC микроконтроллере
    Автор публикации: alex Просмотров: 8028 Добавлен: 19-02-2013, 08:09 Комментарии: 0

         В проекте рассматривается простое и дешевое решение цифрового термометра, который подключется по интерфейсу USB к персональному компьютеру. Аппаратная часть состоит из PIC микроконтроллера, датчика температуры и адаптера USB-UART. Программа микроконтроллера написана на Си в среде mikroC (mikroElektronika). Программное обеспечение для ПК написано на языке Processing. Это открытый язык программирования, основанный на Java. Представляет собой легкий и быстрый инструментарий для людей, которые хотят программировать изображения, анимацию и интерфейсы. Как дополнительная функция, в программе реализована запись данных о температуре по времени и дате в ASCII файл.

    простая система сбора данных о температуре для ПК

         Микроконтроллер Microchip PIC12F1822 выполнен в 8-выводном корпусе, работает в широком диапазоне питающих напряжений (1.8 В – 5.5 В), имеет интегрированный 10-битный АЦП и модуль EUSART для коммуникации по последовательному интерфейсу. В схеме применяется аналоговый датчик температуры MCP9701A, который поддерживает измерение температуры в диапазоне от –40°С до +125°С. Выходное напряжение датчика прямо пропорционально температуре, температурный коэффициент составляет 19.53 мВ/°С. Измерение отрицательных температур возможно за счет смещения по постоянному напряжению  400 мВ, что соответствует температуре 0 °С.
         Выход датчика подключен к одному из каналов АЦП микроконтроллера. Встроенный источник опорного напряжения микроконтроллера сконфигурирован для получения напряжения 2.048 В, причем использование этого внутреннего источника гарантирует стабильность данных АЦП при нестабильном питании микроконтроллера. Микроконтроллер передает преобразованные 10-битные данные по последовательному интерфейсу в компьютер.
         Многие современные компьютеры и ноутбуки не имеют последовательных портов, поэтому автор использовал готовый модуль преобразователя интерфейсов USB-UART, он может быть непосредственно подключен к ТТЛ входам и выходам модуля EUSART микроконтроллера. Кроме того, модуль имеет шину питания +5 В, +3.3 (зависит от конструкции преобразователя USB-UART). В нашем случае напряжение питания микроконтроллера +5 В

    Алаптер USB-UART

    Принципиальная схема
         Схема цифрового термометра очень простая. Датчик температуры подключен к порту микроконтроллера RA2/AN2. Выводы адаптера USB-UART RX и TX подключены к соответствующим выводам микроконтроллера. Источник тактирования микроконтроллера – внутренний осциллятор 4 МГц.

    Простая система сбора данных о температуре на PIC микроконтроллере

         Следует отметить, что вывод микроконтроллера MCLR сконфигурирован для работы в качестве линии ввода/вывода с целью дальнейшего расширения функций. Однако пользователь может настроить на использование по прямому назначению – сигнал внешнего сброса.
         Микроконтроллер и датчик температуры установлены на небольшой макетной плате, на которой также размещен ответный коннектор для подключения к адаптеру USB-UART (для данного исполнения адаптера).
    Простая система сбора данных о температуре на PIC микроконтроллере
    Простая система сбора данных о температуре на PIC микроконтроллере


    Программное обеспечение
         Программа для микроконтроллера, как упоминалось выше, написана на Си в среде mikroC Pro для PIC микроконтроллеров. Данный компилятор предоставляет библиотеку функций по работе с АЦП микроконтроллера, однако, есть один нюанс – библиотека рассчитана на использование напряжения питания микроконтроллера в качестве опорного напряжения АЦП. Поэтому необходимо использовать собственный код для конфигурирования встроенного источника опорного напряжения.
         Преобразование выходного напряжения датчика MCP9701A аналого-цифровым преобразователем осуществляется через каждые 2 секунды, два байта данных затем передаются на ПК по последовательному интерфейсу. Полный исходный код программы микроконтроллера с комментариями доступен для скачивания в разделе загрузок, для его компиляции подойдет и демонстрационная версия компилятора mikroC, не забудьте только использовать внутренний источник тактирования 4 МГц.
         Программа для ПК на языке Processing проста и реализует несколько функций: прием 10-битных данных с последовательного порта (виртуального COM порта), преобразование полученных данных в значение температуры, визуализация данных в окне программы. Библиотека функций Processing для работы с последовательным портом реализует простые способы записи данных в порт и чтения принятых данных.
         По принятию двух байт данных, необходимо вычислить значение температуры. Для датчика MCP9701A расчеты следующие:
    Разрешение АЦП преобразователя (Vref = 2.048V) = 2.048 В/1024 = 2 мВ/отсчет
    Эквивалентное выходное напряжения для 10-битного АЦП Vadc (мВ) = 2 мВ*ADCvalue
    Температура (°C) = (Vadc – 400 мВ)/19.5 мВ/°С

    Вид окна программы для ПК

    Вид окна программы сбора данных о температуре

         Кнопка «Start/Stop» предназначена для начала/остановки записи данных о температуре в файл. При нажатии копки «Start» начинается запись данных – сначала в оперативную память компьютера, а по нажатию кнопки «Stop» данные переносятся в файл. Имя файла содержит время и дату начала записи данных, поэтому наложение данных исключено. Каждый раз, когда нажимается кнопка «Start», создается новый файл.

    Вид файла с сохраненными данными о температуре в определенные промежутки времени


    Возможные улучшения
         Интервал преобразования данных в данной версии жестко фиксирован в программе микроконтроллера, однако более гибким вариантом может быть пользовательская установка интервалов в программе на ПК. Кроме того возможна реализация прорисовки графиков изменения температуры по сохраненным данным в виде отдельного программного модуля.

    Файлы в архиве:
    - Исходный код программы микроконтроллера (mikroC)
    - Исходный код программы для ПК (Processing) и исполняемый файл

    prsistsbinftemprnapic.rar [2,87 Mb] (cкачиваний: 517)

    Комментарии