====== Энкодер (Troyka-модуль) ======
Забудьте про бесконечный клик по кнопкам. Используйте [[amp>product/troyka-encoder?utm_source=man&utm_campaign=troyka-encoder&utm_medium=wiki|датчик угла поворота]] в качестве пульта управления в меню вашего девайса, например навигация «вверх/вниз» или «влево/вправо».
{{ :продукты:troyka-encoder:troyka-encoder.4.jpg?nolink |}}
Энкодер так же поможет задавать параметры для настройки устройства — установить яркость светодиодной ленты или изменить скорость вращения мотора.
===== Видеообзор ======
{{youtube>8teKxBifZ-c?large}}
===== Принцип работы =====
Не перепутайте сенсор угла поворота с [[amp>product/troyka-potentiometer?utm_source=man&utm_campaign=troyka-encoder&utm_medium=wiki|потенциметром]]. В отличии от переменного резистора, энкодер не имеет границ по вращению — крутите ручку до бесконечности.
В основе модуля расположен инкрементный энкодер. Датчик угла поворота преобразует вращение ручки в электрические сигналы.
При вращении вала, энкодер формирует по импульсу на контактах ''A'' и ''B''. При повороте по часовой стрелке сигнал появляется сначала на контакте ''А'', затем на ''B''. При вращении против часовой — выходы меняются местами.
Количество импульсов на контактах пропорционально углу поворота.
===== Примеры для Espruino =====
==== Схема подключения ====
Подключите энкодер к любым цифровым контактам на плате [[amp>product/iskra-js?utm_source=man&utm_campaign=troyka-encoder&utm_medium=wiki|Iskra JS]].
Для быстрой сборки используйте [[amp>product/arduino-troyka-shield?utm_source=man&utm_campaign=troyka-encoder&utm_medium=wiki|Troyka Shield]].
{{ :продукты:troyka-encoder:troyka-encoder_espruino_troyka-shield.png?nolink |}}
Чтобы полностью избавиться от проводов, возьмите [[amp>product/arduino-troyka-slot-shield?utm_source=man&utm_campaign=troyka-encoder&utm_medium=wiki|Troyka Slot Shield]].
{{ :продукты:troyka-encoder:troyka-encoder_espruino_troyka-slot-shield.png?nolink |}}
==== Пример работы ====
Для упрощения работы с датчиком угла поворота воспользуемся библиотекой [[https://www.espruino.com/Encoder|Encoder]].
В качестве примера при вращении ручки энкодера будем выводить текущий шаг и угол поворота.
var pulse = 0;
var step = 0;
require("Encoder").connect(P3,P6,function (direction) {
pulse += direction;
if (pulse % 4 === 0) {
step = pulse / 4;
print("step: " + step);
}
});
===== Элементы платы =====
{{ :продукты:troyka-encoder:troyka-encoder_annotation.png?nolink |}}
==== Энкодер ====
Основой модуля выступает инкрементный энкодер {{ :продукты:troyka-encoder:ec12e_datasheet.pdf |EC12E24204A9}}, который преобразовывает вращательное движение вала в электрические сигналы.
При каждом вращении ручки, датчик угла поворота формирует по одному импульсу на контактах ''A'' и ''B''. Сигналы смещены по времени относительно направления вращения.
Количество импульсов на любом из контактов пропорционально углу поворота. А за счёт дублирование сигналов в смещении по времени, легко определить направления вращения.
==== Troyka-контакты ====
На модуле выведено две пары Troyka-контактов.
//Нижняя группа//
* Сигнальный (A) — импульсная линия ''A'', сигнализирующая о вращении энкодера. Линия ''A'' смещена по времени относительно линии ''B''. Подключите к цифровому пину микроконтроллера
* Питание (V) — соедините с рабочим напряжением микроконтроллера.
* Земля (G) — соедините с землёй микроконтроллера.
//Верхняя группа//
* Сигнальный (B) — импульсная линия ''B'', сигнализирующая о вращении энкодера. Линия ''B'' смещена по времени относительно линии ''A''. Подключите к цифровому пину микроконтроллера.
===== Принципиальная и монтажная схемы =====
{{:продукты:troyka-encoder:troyka-encoder_schematic.png?direct&470 |}}
{{:продукты:troyka-encoder:troyka-encoder_layout_top.png?direct&180 |}}
{{:продукты:troyka-encoder:troyka-encoder_layout_bottom.png?direct&180 |}}
===== Характеристики =====
* Модуль: EC12E24204A9
* Тип: инкрементный
* Количество шагов на оборот: 24
* Диаметр вала: 6 мм
* Длина вала: 25 мм
* Напряжение питания: 3.3–5 В
* Габариты: 25,4×25,4 мм
===== Ресурсы =====
* [[amp>product/troyka-encoder?utm_source=man&utm_campaign=troyka-encoder&utm_medium=wiki|Энкодер (Troyka-модуль)]] в магазине
* [[https://github.com/amperka/hardware-drawings/blob/master/troyka-encoder.svg|Векторное изображение модуля]]
* {{ :продукты:troyka-encoder:ec12e_datasheet.pdf |Datasheet на датчик угла поворота EC12E24204A9}}