Прибор для проверки работоспособности инкрементальных энкодеров на PIC-контроллере.
by Krepsky
Перед автором этой конструкции по долгу службы частенько возникает задача контроля работоспособности инкрементальных энкодеров, коих на промышленном оборудовании полно.
В частности необходимо было проконтролировать правильность счёта каналами энкодера, исправность Z-канала. Работа каналов инкрементального энкодера в общем представлена на диаграмме ниже - 2 канала ("А", "А инверсный" и "В", "В инверсный") а так же канал Z (на диаграмме обозначен как "С").
Представленная на фото ниже конструкция предназначена для контроля работоспособности подобных инкрементальных энкодеров
Устройство управляется PIC-контроллером. Принцип работы сей шайтан-арбы несложен - шаговый двигатель вращает вал энкодера, в это время контроллер производит счёт импульсов, подсчитанные значения выводятся на LCD-дисплей.
На первом экране видим готовность аппарата
После нажатия любой из клавиш управления переходим к выбору исполняемой программы:
О программах:
Программа 1: подсчёт количества оборотов ведёт контроллер, основываясь на числе импульсов шагового двигателя. Возможно задать число оборотов от 1 до 10. Подсчитанное число импульсов делится на число оборотов и на экран выводится число импульсов на оборот. Подходит для энкодеров без Z-канала
Программа 2: подсчёт количества оборотов ведёт контроллер, основываясь на сигнале синхронизации Z-канала. Первый оборот начинает отсчитываться после первой сработки Z-канала. Возможно задать число оборотов от 1 до 10. Подсчитанное число импульсов делится на число оборотов и на экран выводится число импульсов на оборот.
На следующем экране - выбор числа оборотов для измерения
Далее - после нажатия кнопки "Ввод" происходит работа программы
И в конце - вывод на экран результатов измерения числа импульсов инкрементального энкодера на оборот
Принципиальная схема устройства изображена ниже
(для открытия в полный размер кликните на изображении)
Управление шаговым двигателем производится в полушаговом режиме (что с нашим двигателем от 5-дюймового дисковода
составляет 400 имп/об.)
Входа контроллера развязаны от каналов энкодера опторазвязками.
Подсчёт импульсов происходит по прерываниям от изменения состояния входов порта B (RB4:RB7)
Для канала Z используется прерывание по входу RB0 (INT)
Ссылки на документацию по элементной базе можно найти внизу страницы.
Источник питания устройства даёт напряжения питания 24, 12 и 5V, что позволяет испытывать инкрементальные энкодеры, предназначенные для работы со всеми этими напряжениями питания. Переключатель на плате контроллера так же переключает резисторы на входе оптопар, в зависимости от напряжения выхода конкретного энкодера (5, 12 и 24v соответственно).
Ниже представлены фото платы источника питания и платы управления. Надписи на кнопках смысловой нагрузки не несут - просто подвернулись такие кнопки. На самом деле верхняя - "больше", средняя - "меньше", нижняя - "ввод". Входной переключатель был использован от старой магнитолы, а поэтому имеет не 3 положения, а 7 (использованы 3).
Далее - чертёж печатной платы (со стороны проводников и со стороны деталей)
(для открытия в полный размер кликните на изображении)
По ссылке можно скачать
проект этой печатной платы для Sprint Layout (*.lay).
А вот фото в сборе с LCD - дисплеем.
Механически система представляет из себя шаговый двигатель, вращающий щестерёнку большего диаметра (взята от старого самописца), вал которой через "гибкую передачу" (короткий отрезок толстой резиновой трубки) соединён с валом энкодера. Сам же энкодер жёстко зажат пластинами крепления (конструкция в принципе может быть любая). Коэффициент передачи получился 4.8, что в связке с двигателем от 5-дюймового дисковода в полушаговом режиме (400 имп/об) даёт 1920 имп/оборот энкодера).
Вот как это выглядит в работе:
Программа для PIC-контроллера написана на MicroC PRO v.4.15
По ссылкам ниже можно скачать:
Листинг программы на microC Pro с комментариями
Прошивка контроллера (HEX-файл)
Проект программы для microC Pro v.4.15
Дополнительная справочная информация по комплектующим устройства:
Документация на LCD дисплей LTN111 (pdf)
Stepper Motor Basics (основы управления шаговыми двигателями (ENG, pdf))
Документация на оптопару SFH 610
AN906 Stepper Motor Control Using the PIC16F684 (ENG, pdf)
AN822 Stepper Motor Microstepping with PIC18C452 (ENG, pdf)
AN907 Stepping Motors Fundamentals (ENG, pdf)