Бесконтактный тахометр на микроконтроллере PIC. Часть 2. Подключение датчика и дисплея к микроконтроллеру, ПО

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

Как было замечено в первой части, основой конструкции является отладочная плата StartUSB с установленным микроконтроллером PIC18F2550. Отличительной особенностью платы StartUSB for PIC является то, что установленный на плату микроконтроллер имеет предустановленный USB загрузчик, что исключает необходимость в использовании дополнительного программатора. Кроме того, компания mikroElektronika предоставляет бесплатную программу USB загрузчика для персонального компьютера, с помощью которой пользователь сможет без труда запрограммировать микроконтроллер. USB загрузчик для микроконтроллера (firmware) также предоставляется.

Для внутрисхемного программирования и отладки ПО микроконтроллера, например при самостоятельной сборке платы, пользователи могут использовать программатор PICFlash2 после установки соответствующего коннектора на отладочную плату (посадочные места имеются).

Принципиальная схема отладочной платы StartUSB

Принципиальная схема отладочной платы StartUSB
Кликните для увеличения

Подключение датчика и двухстрочного ЖК индикатора необходимо провести в соответствии со схемой, представленной ниже.

Схема: бесконтактный тахометр на PIC
Кликните для увеличения

Индикатор в нашем устройстве работает по 4-битной шине данных. Выводы данных D4-D7 (11-14) подключаются к контактам отладочной платы RB4-RB7 (это и есть линии порта ввода/вывода микроконтроллера) соответственно. Сигналы управления индикатора RS (4 вывод) и E (6 вывод) подключены к RC6 и RC7.

Управление ИК светодиодом датчика осуществляется по линии RA3, выход схемы согласования подключается к RA4 (вход T0CKI таймера микроконтроллера).

Микроконтроллер работает на частоте 48 МГц используя внутренний PLL.

Модуль Таймера 0 (Timer0) микроконтроллера можно сконфигурировать в 8- или 16-битный режим. Управление таймером осуществляется при помощи регистра T0CON, функции каждого бита регистра показаны на рисунке ниже.

T0CON Регистр управления Timer0 микроконтроллера PIC18F2550
Кликните для увеличения

Для нашего случая Timer0 нужно сконфигурировать как 16-битный счетчик, чтобы подсчитывать количество импульсов, поступающих на вход RA4/T0CKI. Счетчик будет активирован на 1 секунду и количество импульсов, поступивших за этот интервал, сохраняется. Далее это значение умножается на 60, чтобы получить количество оборотов в минуту. Без прерывания Timer0 в 16-битном режиме веет счет до 65535, что соответствует 3932100 оборотов в минуту. В нашем проекте предел измерений ограничен значением 99960.

Таким образом, для нашей задачи мы должны произвести следующие изменения в регистре T0CON:

  • сбросить (установить 0) бит T08BIT (16-битный режим) и бит T0SE (инкремент при переходе от высокого уровня в низкий на входе T0CKI);
  • установить бит T0CS (режим счетчика) и бит PSA (без предделителя).

Для написания программы микроконтроллера использовался компилятор mikroC. Программа несложная, в ней реализуется настройка портов ввода/вывода и встроенного таймера. Интерфейс ЖК индикатора реализуется с помощью встроенной в компилятор библиотеки функций.

Конструкция бесконтактного тахометра на микроконтроллере PIC

Конструкция бесконтактного тахометра на PIC

Конструкция бесконтактного тахометра на PIC

Бесконтактный тахометр на PIC в работе

Следует заметить, что функциональность устройства может быть расширена за счет включения функции сбора данных, что позволит отслеживать скорость вращения деталей, и полученные данные передать по интерфейсу USB в компьютер для обработки.

Загрузки

Исходный код программы микроконтроллера (mikroC) - скачать

Перевод: Vadim по заказу РадиоЛоцман

На английском языке: How to make a contact-less digital tachometer using IR-light reflection technique. Part 2. Circuit setup

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