Тахометр – это устройство позволяющее измерять частоту вращения (скорость вращения) механизма (вал, ротор, диск двигателя). Единица измерения частоты вращения, обычно, – количество оборотов в минуту. Традиционный метод измерения частоты вращения основан на реализации обратной связи по скорости: используeтся генератор постоянного тока, который подключен к вращающемуся механизму таким образом, чтобы напряжение, индуцированное на клеммах генератора, было пропорционально скорости вращения вала.
В этой статье мы рассмотрим конструкцию тахометра на базе PIC микроконтроллера, не имеющего физического контакта с вращающейся частью механизма для измерения его скорости вращения. Эта техника основана на оптическом методе определения скорости вращения, который требует применения инфракрасного светодиода совместно с фотодиодом.
Надписи на рисунке |
Motor and gear shaft assembly
from an old printer |
Двигатель и передаточная шестерня
от старого принтера |
Piece of a white paper as a reflector |
Кусочек белой бумаги в качестве отражателя |
Основой прибора в нашем случае служит компактная отладочная плата StartUSB for PIC производства компании mikroElektronika.
Тахометр позволяет измерять скорость вращения до 99960 оборотов в минуту с разрешением 60 оборотов в минуту. Результат отображается на двухстрочном ЖК индикаторе.
Отладочная плата StartUSB for PIC выполнена на базе микроконтроллера PIC18F2550 компании Microchip с поддержкой интерфейса USB 2.0. Кроме того, плата имеет контактные площадки с сигналами линий ввода/вывода микроконтроллера, а также область для макетирования и подключения дополнительных устройств. На базе данной платы могут быть разработаны USB устройства сбора данных, коммуникационные устройства и USB mp3 плееры.
Отличительной особенностью платы StartUSB for PIC является то, что установленный на плату микроконтроллер имеет предустановленный USB загрузчик, что исключает необходимость в использовании дополнительного программатора. Кроме того, компания предоставляет бесплатную программу USB загрузчика для персонального компьютера, с помощью которой пользователь сможет без труда запрограммировать микроконтроллер. USB загрузчик для микроконтроллера (firmware) также предоставляется.
При оптическом методе определения скорости вращения инфракрасный светодиод передает ИК импульсы, а фотодиод улавливает отраженный сигнал. Если поверхность вращающейся детали будет темной и грубой, то отраженный сигнал будет незначительным, поэтому мы используем кусочек белой бумаги, наклеенной на вращающуюся деталь. Если же вся поверхность детали является яркой и отражающей, то нужно использовать кусочек темной бумаги, чтобы часть ИК излучения поглощалась за время полного оборота. В любом случае, мы получим импульс на выходе схемы преобразования и согласования сигналов для каждого полного оборота вращающейся детали.
Принципиальная схема ИК датчика и схема согласования сигнала с фотодиода
По схеме видно, что если на выводе IR Tx появится высокий уровень, то откроется транзистор BC547 (npn), управляющий ИК светодиодом. Отраженный сигнал поступает на фотодиод в схеме преобразования и согласования сигнала, нормализованные импульсы для подсчета микроконтроллером берутся с коллектора транзитора BC557 (pnp). При нормальных условиях, сопротивление фотодиода велико и транзистор всегда закрыт. Выход схемы (коллектор транзистора) подтянут к «земле». Если на фотодиод падает отраженный ИК сигнал, его сопротивление снижается и транзистор открывается, следовательно на выходе появляется высокий уровень.
Как было замечено в первой части, основой конструкции является отладочная плата StartUSB с установленным микроконтроллером PIC18F2550. Отличительной особенностью платы StartUSB for PIC является то, что установленный на плату микроконтроллер имеет предустановленный USB загрузчик, что исключает необходимость в использовании дополнительного программатора. Кроме того, компания mikroElektronika предоставляет бесплатную программу USB загрузчика для персонального компьютера, с помощью которой пользователь сможет без труда запрограммировать микроконтроллер. USB загрузчик для микроконтроллера (firmware) также предоставляется.
Для внутрисхемного программирования и отладки ПО микроконтроллера, например при самостоятельной сборке платы, пользователи могут использовать программатор PICFlash2 после установки соответствующего коннектора на отладочную плату (посадочные места имеются).
Принципиальная схема отладочной платы StartUSB
Подключение датчика и двухстрочного ЖК индикатора необходимо провести в соответствии со схемой, представленной ниже.
Индикатор в нашем устройстве работает по 4-битной шине данных. Выводы данных D4-D7 (11-14) подключаются к контактам отладочной платы RB4-RB7 (это и есть линии порта ввода/вывода микроконтроллера) соответственно. Сигналы управления индикатора RS (4 вывод) и E (6 вывод) подключены к RC6 и RC7.
Управление ИК светодиодом датчика осуществляется по линии RA3, выход схемы согласования подключается к RA4 (вход T0CKI таймера микроконтроллера).
Микроконтроллер работает на частоте 48 МГц используя внутренний PLL.
Модуль Таймера 0 (Timer0) микроконтроллера можно сконфигурировать в 8- или 16-битный режим. Управление таймером осуществляется при помощи регистра T0CON, функции каждого бита регистра показаны на рисунке ниже.
Для нашего случая Timer0 нужно сконфигурировать как 16-битный счетчик, чтобы подсчитывать количество импульсов, поступающих на вход RA4/T0CKI. Счетчик будет активирован на 1 секунду и количество импульсов, поступивших за этот интервал, сохраняется. Далее это значение умножается на 60, чтобы получить количество оборотов в минуту. Без прерывания Timer0 в 16-битном режиме веет счет до 65535, что соответствует 3932100 оборотов в минуту. В нашем проекте предел измерений ограничен значением 99960.
Таким образом, для нашей задачи мы должны произвести следующие изменения в регистре T0CON:
- сбросить (установить 0) бит T08BIT (16-битный режим) и бит T0SE (инкремент при переходе от высокого уровня в низкий на входе T0CKI);
- установить бит T0CS (режим счетчика) и бит PSA (без предделителя).
Для написания программы микроконтроллера использовался компилятор mikroC. Программа несложная, в ней реализуется настройка портов ввода/вывода и встроенного таймера. Интерфейс ЖК индикатора реализуется с помощью встроенной в компилятор библиотеки функций.
Конструкция бесконтактного тахометра на микроконтроллере PIC
Следует заметить, что функциональность устройства может быть расширена за счет включения функции сбора данных, что позволит отслеживать скорость вращения деталей, и полученные данные передать по интерфейсу USB в компьютер для обработки.
В архиве Проект MicroC, исходный код на C и прошивка
beskonttahometrnamk.rar [41,35 Kb] (cкачиваний: 776)