Прибор для проверки работоспособности инкрементальных энкодеров на PIC-контроллере.

инкрементальный энкодер

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

В частности необходимо было проконтролировать правильность счёта каналами энкодера, исправность Z-канала. Работа каналов инкрементального энкодера в общем представлена на диаграмме ниже - 2 канала ("А", "А инверсный" и "В", "В инверсный") а так же канал Z (на диаграмме обозначен как "С").

диаграмма энкодера

Представленная на фото ниже конструкция предназначена для контроля работоспособности подобных инкрементальных энкодеров

encoder_tester

Устройство управляется PIC-контроллером. Принцип работы сей шайтан-арбы несложен - шаговый двигатель вращает вал энкодера, в это время контроллер производит счёт импульсов, подсчитанные значения выводятся на LCD-дисплей.

На первом экране видим готовность аппарата

screen

После нажатия любой из клавиш управления переходим к выбору исполняемой программы:

screen
screen

О программах:

Программа 1: подсчёт количества оборотов ведёт контроллер, основываясь на числе импульсов шагового двигателя. Возможно задать число оборотов от 1 до 10. Подсчитанное число импульсов делится на число оборотов и на экран выводится число импульсов на оборот. Подходит для энкодеров без Z-канала

Программа 2: подсчёт количества оборотов ведёт контроллер, основываясь на сигнале синхронизации Z-канала. Первый оборот начинает отсчитываться после первой сработки Z-канала. Возможно задать число оборотов от 1 до 10. Подсчитанное число импульсов делится на число оборотов и на экран выводится число импульсов на оборот.

На следующем экране - выбор числа оборотов для измерения

replays

Далее - после нажатия кнопки "Ввод" происходит работа программы

Program Run

И в конце - вывод на экран результатов измерения числа импульсов инкрементального энкодера на оборот

incremental encoder

Принципиальная схема устройства изображена ниже
(для открытия в полный размер кликните на изображении)

энкодер тестер

Управление шаговым двигателем производится в полушаговом режиме (что с нашим двигателем от 5-дюймового дисковода составляет 400 имп/об.)
Входа контроллера развязаны от каналов энкодера опторазвязками.
Подсчёт импульсов происходит по прерываниям от изменения состояния входов порта B (RB4:RB7)
Для канала Z используется прерывание по входу RB0 (INT)
Ссылки на документацию по элементной базе можно найти внизу страницы.

Источник питания устройства даёт напряжения питания 24, 12 и 5V, что позволяет испытывать инкрементальные энкодеры, предназначенные для работы со всеми этими напряжениями питания. Переключатель на плате контроллера так же переключает резисторы на входе оптопар, в зависимости от напряжения выхода конкретного энкодера (5, 12 и 24v соответственно).

input

Ниже представлены фото платы источника питания и платы управления. Надписи на кнопках смысловой нагрузки не несут - просто подвернулись такие кнопки. На самом деле верхняя - "больше", средняя - "меньше", нижняя - "ввод". Входной переключатель был использован от старой магнитолы, а поэтому имеет не 3 положения, а 7 (использованы 3).

power_supply
PIC_controller


Далее - чертёж печатной платы (со стороны проводников и со стороны деталей)
(для открытия в полный размер кликните на изображении)
По ссылке можно скачать проект этой печатной платы для Sprint Layout (*.lay).

печатная плата
печатная плата

А вот фото в сборе с LCD - дисплеем.

encoder_tester

Механически система представляет из себя шаговый двигатель, вращающий щестерёнку большего диаметра (взята от старого самописца), вал которой через "гибкую передачу" (короткий отрезок толстой резиновой трубки) соединён с валом энкодера. Сам же энкодер жёстко зажат пластинами крепления (конструкция в принципе может быть любая). Коэффициент передачи получился 4.8, что в связке с двигателем от 5-дюймового дисковода в полушаговом режиме (400 имп/об) даёт 1920 имп/оборот энкодера).

stepdriver
stepdriver

Вот как это выглядит в работе:



Программа для PIC-контроллера написана на MicroC PRO v.4.15

MicroC

По ссылкам ниже можно скачать:

Листинг программы на 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)

Hosted by uCoz