Абсолютный поворотный энкодер с однодорожечным кодом Грея

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!

В этом материале речь пойдёт о физической реализации абсолютного поворотного энкодера. Разрешение этого энкодера составляет 6 градусов, то есть — 60 шагов. Этого достаточно для того чтобы сделать на его основе часы. Здесь используется одношаговый код Грея.



Материалы


Для реализации проекта понадобится печатная плата с оптическим датчиком, Arduino (я применил тут Arduino Uno), а так же — диск энкодера.


Плата с оптическим датчиком


Схема Arduino Uno


Диск энкодера

Шаг 1. Принципы работы энкодера



Работа энкодера

image

Преобразование однодорожечного кода Грея в двоичный код


Таблица преобразования кода Грея в двоичный код

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

Вот файлы с программным кодом:

  • madewithmath3.ino
  • PCF8574.cpp
  • PCF8574.h

Шаг 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. Варианты применения абсолютного энкодера


Я использовал абсолютный энкодер для изготовления часов.


Часы


Большие часы

Вот — несколько снимков, демонстрирующих процесс изготовления часов.














Планируете ли вы сделать какой-нибудь проект на основе абсолютного поворотного энкодера?

Источник: https://habr.com/ru/company/ruvds/blog/592201/


Интересные статьи

Интересные статьи

Многие NPM библиотеки написаны на JavaScript. Что же с этим делать во время миграции на TypeScript? Нам потребовалось написать объявления типов для нашей библиотеки UI компонентов. Мы хотели получить ...
Приходилось ли вам когда-нибудь ненароком причинить себе или другим физический вред из-за ошибок в коде? Мне – да. Примерно год назад я работал со сгенерированными файлами в формате W...
Привет, хабр! Был тёплый пятничный вечер, хотелось скорее бежать домой, пересесть из компьютерного кресла на кресло настоящее в полутора метрах, а тесты всё никак не проходили. Причём ...
Всем привет. Когда я искал информацию о журналировании (аудите событий) в Bitrix, на Хабре не было ни чего, в остальном рунете кое что было, но кто же там найдёт? Для пополнения базы знаний...
Много всякого сыпется в мой ящик, в том числе и от Битрикса (справедливости ради стоит отметить, что я когда-то регистрировался на их сайте). Но вот мне надоели эти письма и я решил отписатьс...