Материалы
Для реализации проекта понадобится печатная плата с оптическим датчиком, Arduino (я применил тут Arduino Uno), а так же — диск энкодера.
Плата с оптическим датчиком
Схема Arduino Uno
Диск энкодера
Шаг 1. Принципы работы энкодера
Работа энкодера
Преобразование однодорожечного кода Грея в двоичный код
Таблица преобразования кода Грея в двоичный код
Когда диск энкодера вращается, оптический датчик реагирует на прохождение мимо него светлых и тёмных мест дорожки с кодом, а программа, работающая на Arduino, выполняет нахождение точной позиции диска.
Вот файлы с программным кодом:
Шаг 2. Принципиальная схема устройства
Принципиальная схема устройства
Микроконтроллер Arduino подключён к плате с оптическим датчиком 4 проводами. Речь идёт о контактах GND
, +5V
, SDA
, SCL
.
Шаг 3. Диск энкодера
Диск энкодера
Реальный диск энкодера, используемый в этом проекте, выглядит именно так.
Шаг 4. Подробнее о диске энкодера
На следующих рисунках выделена зона диска энкодера, которую анализирует оптический датчик.
Область диска энкодера, которую анализирует датчик
Область диска энкодера, которую анализирует датчик
Шаг 5. Создание диска энкодера
В основе диска энкодера лежит обычный CD-диск
Подготовка изображения для нанесения на диск
Разметка изображения
Чёрные и белые области разметки, на которые реагирует оптический датчик
Размеченный диск
Приведённые здесь изображения можно распечатать на принтере и приклеить к диску. Того же эффекта можно достичь, вручную нанеся разметку на диск.
Я пользовался 38-миллиметровой клейкой лентой разных цветов. Сначала я наклеил два разноцветных куска ленты на диск, постаравшись, чтобы края лент сошлись бы точно в центре диска. Потом, следуя разметочным линиям, вырезал участки лент. Можно, вырезав участки ленты одного цвета, приклеить их поверх соответствующих участков ленты другого цвета.
Шаг 6. Проверка параметров элементов, формирующих одношаговый код Грея, и оптического датчика
Размеры элементов и диска
Элементы оптического датчика
Шаг 7. Сопоставление кода Грея и элементов оптического датчика
Код, который нужно прочитать датчику
Код Грея, нанесённый на диск, считывается элементами датчика, угловое расстояние между которыми составляет 30 градусов. Разрешение энкодера составляет 6 градусов, то есть — 60 шагов (360/60 = 6 градусов). В ходе работы устройства получается последовательность [13, 3, 6, 2, 6, 13, 3, 6, 2, 6]. Шаг 13 соответствует 78 градусам.
Шаг 8. Варианты применения абсолютного энкодера
Я использовал абсолютный энкодер для изготовления часов.
Часы
Большие часы
Вот — несколько снимков, демонстрирующих процесс изготовления часов.
Планируете ли вы сделать какой-нибудь проект на основе абсолютного поворотного энкодера?
Автор:
ru_vds