Например TDA7294

РадиоКот >Схемы >Цифровые устройства >Автоматика >

Теги статьи: ЭнкодерДобавить тег

DRO unit. Цифровая индикация положения на линейных энкодерах

Автор: Regerald
Опубликовано 20.06.2020
Создано при помощи КотоРед.

DRO расшифровывается как "Digital Readout", то есть цифровой индикатор. Таким нехорошим словом надо пользоваться, если хочешь найти эту замечательную приставку для станка на "ебэе" или других англоязычных магазинах.

Кто знаком с такими устройствами, знает насколько удобно работать на оборудованных ими станках. Часто можно даже отказаться от разметки деталей и рассчитать координаты отверстий либо проходов фрезы. Однако цены на такие устройства негуманны даже у китайских друзей, и переваливают за несколько сотен долларов. В моём случае используется практически бесплатный хлам - пластиковые "линейки" и оптические датчики от старых матричных принтеров, дешевые микроконтроллеры и семисегментные светодиоды, указывающие цифры и немножко рассыпухи. Я использовал её для измерения положения крестовинных тисков на сверлильном станке, однако такая система может быть использована на фрезерных, токарных и прочих станках с какой-либо подачей. Также система может быть использована как часть электроники в самодельных станках ЧПУ с "зактытым циклом", где измерение положения фрезы или лазера происходит независимо от передвигающих её шаговых двигателей.

 

 

 

 

 

 

Рис. 1. Фотография станка с крестовой подачей. На неё устанавливается устройство, показанное на фотографии справа.

 

 

 

 

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

Основой системы являются оптические датчики: пары светодиод-фототранзистор со встроенной решеткой, слегка отличающейся шагом от шага полос на пластиковой полосе-линейке.
Когда мы протягиваем эту пластиковую полосу внутри датчика, её полосы то совпадают с полосами решетки датчика, то находятся в противофазе. Соответственно, фототранзисторы поочерёдно то открываются, то закрываются, чередуя логические нули и единички. Нам остаётся измерять эти логические уровни и переводить в положение датчика относительно линейки в миллиметрах.

 

 

   

Рис. 2. Фотография линейного энкодера, принцип его действия и график сигнала на выходе при движении ленты.

 

Кстати, профессиональные линейные энкодеры работают по такому же принципу, и для получения большей точности можно применить их, но заменить дорогостоящую электронику на самодельную, значительно сэкономив. Линейки, которые я нашел, сняты с принтера с максимальным разрешением 600dpi, то есть каждый шаг это 25.4/600 = 0.0043 миллиметров. Это немного, но намного лучше чем цена деления шкалы на лимбах.

В датчиках четыре вывода: +/- питания и два логических вывода i0, i1. Располагаться они могут по-разному, поэтому стоит подсмотреть их подключение на плате прежде чем выпаивать; или искать "даташит".
Датчики приклеиваются непосредственно к неподвижной части станины, а полоса-линейка устанавливается на подвижную часть небольшими болтами, желательно подпружиненной с одного конца (пружинки снять с того же принтера).

 

 

   

Рис. 3. Фотографии процесса установки датчика на тиски с крестовой подачей.

 

Схема довольно проста и узнаваема - это классическая динамическая индикация на пять цифт. Она состоит из двух одинаковых частей - на две координатные оси. На одну ось соответственно можно использовать половину этой схемы, на три добавить еще одну. Это упрощает конструирование и особенно программирование.

Рис. 4. Принципиальная схема устройства.

 

Логические выводы оптического датчика надо подключить к аппаратному прерыванию микроконтроллера, каких должно быть две штуки, и настроены они должны быть на прерывание от изменения логического уровня - как с нуля на единицу, так и с единицы с нулём. Можно сделать и на одном прерывании, но тогда разрешение упадёт в два раза. Необходимое наличие двух прерываний ограничивает в выборе контроллеров. Я применил Атмегу 8 - просто потому что она была на полке. Количество портов на ней более чем достаточно чтобы рулить светодиодным табло посредством классической динамической индикации без каких-либо промежуточных схем на шифт-регистрах. Придётся только распаять по транзистору на каждую цифру.

 

Весь софт тривиален и состоит из двух частей: функции прерывания микроконтроллера и алгоритма вывода значения переменной на цифровой экран в основном цикле. Функции, выполняемые при прерывании должны определять, в какую сторону передвинулась лента и инкрементировать или декрементировать переменную положения станины на величину шага в миллиметрах. Из графика на рисунке видно, что при изменении логического уровня на i0 (прерывание ISR(INT0_vect)), линейка сделала шаг вперёд если i0 = i1 или шаг назад, если i0 отлично от i1. Функция прерывания ISR(INT1_vect) аналогична, но зеркально отличается от ISR(INT0_vect).

 

Далее уже дело техники, с которой любители электроники хорошо знакомы. Плата была разведена на программе "Eagle", распечатана на форобумагу и отутюжена на две стороны фольгированного текстолита. Найденные мной маленькие семисегментные светодиоды имели необычную цоколёвку, поэтому готовая плата, возможно, подойдёт не всем. Также необязательно пытаться уложить всё это в такие маленькие габариты как у меня - просто мне захотелось всё впихнуть в уже имеющуюся коробочку. Это сделало пайку довольно сложной и пришлось разводить двустороннюю плату.

       

  Рис. 5. Фотография горового устройства перед упаковкой в корпус.

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

 

 

 

 


Файлы:
Документ PDF
Исходники прошивки.


Все вопросы в Форум.




Как вам эта статья?

Заработало ли это устройство у вас?

28 3 0

Эти статьи вам тоже могут пригодиться: