Ручной энкодер, он же ручной генератор импульсов (РГИ) — электромеханическое устройство, которое преобразует угловое положение или движение вращающейся ручки, в электрические выходные сигналы.
Помаленьку готовлюсь к очередному долгострою, когда же я его доделаю большому проекту.
И пока я разгребаю сделанные по ходу пьесы фото, мы будем рассматривать кое-какие интересные железки.
Упакован герой обзора в картонную коробку.
Энкодер в блистере, до стенок коробки хороший зазор, неплохо упаковано.
А вот и сам герой обзора.
Энкодер массивный, чувствуется вес — 178 г. Щелчки при повороте четкие.
Подключение проводов осуществляется клеммами под винт. У нас простой энкодер, с двумя каналами A и B. Есть аналогичные модели с 6 клеммами — в них используется дифференциальный сигнал.
Продавец заботливо предоставил все необходимые размеры:
Приступим к разборке. Откручиваем 3 крепежных гайки,
уплотнительное кольцо и пластиковую защитную крышку, выкручиваем ручку.
Плата сидит на шпеньках, аккуратно приподнимаем.
На диске видим отпечатки пальцев сборщика.
Очевидно, что для определения угла поворота используются 2 фотодатчика.
Картинка из wikipedia, показывающая как оно работает.
Данные сигналы элементарно кодируются в бинарном виде:
Зная текущее и предыдущее значения A и B можно определить направление вращения энкодера:
По теме можно почитать Efficiently Reading Quadrature With Interrupts, Ардуино головного мозга: импульсный датчик положения, Подключение Энкодера К Arduino.
Подключаемся к логическому анализатору.
Крутим ручку с разной скоростью.
Смотрим левое и правое вращение.
Посмотрим фронты чем есть (DSO138).
Спад несущественно растянут.
Какие могут быть проблемы у таких датчиков? Механические загрязнения, закрывающие сенсор или прорези диска. Для того и разбирал — продул внутренности и осмотрел на явные косяки.
Что еще? Положения механической трещетки не соответствуют прорезям оптического диска (диск криво приклеен). То есть выставляемое положение энкодера немного не соответствуют снимаемым показаниям (фаза сдвинута), и эта ошибка постепенно накапливается.
Тестирование простеньким скетчем для Arduino не выявило ложных срабатываний в обратном направлении — крутим ручку в одну сторону, счетчик идет только в одну строну. Момент смены направления обрабатывался четко.
В прямом направлении на ложные двойные срабатывания тестировал, пока было терпение. Либо мне повезло с датчиком, либо мне просто терпения не хватило.
Может еще и трещетка нечетко работать — там пружинка и диск с прорезями, как шестеренка. Решается чисткой, подгибанием пружинки. Либо замена пружинки, но это трудновыполнимо.
Данных проблем при первоначальном тестировании выявлено не было. На этом этапе пока остановимся.
+27 |
1112
48
|
+29 |
1764
87
|
+35 |
1187
31
|
Для фотодатчиков и светика нет чипа корректора старения, а это означает нормальную работу не более одного года.
Однако ценник вполне вменяемый для китайского качества, можно просто купить про запас.
Просто ваша техника успевает сдохнуть раньше деградации кристаллов.
У героя обзора никаких признаков этих проблем
поканет и при применении в любительских проектах появятся, ИМХО, не скоро.Китайцы продают (наконец, блин) механические сейфы лимб+ключ, которые выглядят ну хотя бы не так, как любой электронный, где соленоид могут отбить (на микросекунду, но этого хватит) ударом кулака по вертикали и сразу открыть сейф, ну и классика сели батарейки и привет. Не совсем недорогие, самый крохотный 25 баксов + 35 за доставку, а те которые по 25-40кг вообще забей сразу 0 смысла платить, но у этих микрокрошек главное достоинство — это маленькое пространство для отгиба верхнего края дверцы отверткой, у нас даже полубренд сейфы якобы фирменные могут быть куда-куда хуже по отгибу, а китаец хоть без тяг вертикальных (ну и меньше клинить будет), но продуман немного на свой вес.
© Анекдот.
Хотя внешне металлический сабж действительно немного напоминает сейфовый замок
Был поражен тем, что ни в одной из имеющихся библиотек, ни в одном документе на энкодер не сказано, что на 1 клик он генерирует два импульса. Что делает существующие библиотеки github.com/PaulStoffregen/Encoder и
github.com/mathertel/RotaryEncoder — бесполезными чуть более чем полностью.
WTF? Почему никто этого не замечает и почему нигде в спеках этого не сказано???
Есть одна-единственная публикация, которая дает правильный код без всяких библиотек:
www.best-microcontroller-projects.com/rotary-encoder.html
Проблема ардуино в том, что библиотеки пишут школьники.
Что-то типа (пишу по памяти, надо проверять):
P.S. бывает и 4 импульса и тд.
duino.ru/modul-encoder.html/
KY40 выдает два ФИЗИЧЕСКИХ импульса разделенных по времени. Т.е. указаные 2 логических уровня меняются ДВАЖДЫ. В начала клика и в конце его. Промежуток времени достаточный чтобы попасть в два разных цикла ардуино и вызвать срабатыванием программы дважды.
Те кто пишет вот такие тексты — duino.ru/modul-encoder.html/ — просто копируют откуда-то и сами никогда с энкодером не работали.
Я может просто не понимаю, что у вас там происходит — может он тупо глючит, дребезжит контакт или что-то типа того?
А может тебе взять энкодер, паяльник, да спуститься на грешную землю?
пы.сы. советую почитать про дребезг контактов
логические уровни на двух выходных контактах при каждом «щелчке» (detent) меняются дважды:
если поворачивать _очень_ медленно то отчетливо регистрируется первая смена уровней в начале «щелчка» и вторая смена уровней когда «щелчок» оканчивается.
Это не является физическим «дребезгом», это особенность конструкции и она устраняется софтверным «дебаунсером» (debounce) из одной строчки:
state=(state<<1) | digitalRead(CLK_PIN) | 0xe000;
www.best-microcontroller-projects.com/rotary-encoder.html
Обзор подобных энкодеров на муське уже был, так что внутрянка не особо интересна. Почему спрашиваю? — Да потому, что «для ускорения» есть готовые решения уже в сборе. У меня в хозяйстве даже 3 штуки лишних валяются:
P.S. Привычка просто всегда на запас еще один брать, а с пультом к НЦ-шке вообще неувязка вышла — третий пульт достался бесплатно. Первый пульт получил, проверил, все ОК, заказал продавцу второй, а он застрял на китайской логистике больше 3х месяцев. Написал продавцу и он без вопросов… выслал мне еще один экспресс-доставкой (дошло за пару недель) и вдруг через 4 месяца(!) приходит тот самый второй. Я в шоке был, зачем он мне…
, то ли дело USB тестеры.И у меня энкодер на 2 линии, собранный на рассыпухе, а там — дифференциальный сигнал на отдельном драйвере.
Готовые решения не брал — потому что повторяю чужой проект.
Вы, скорее всего, угадаете
эту мелодию с двухэтот долгострой по 1 фото (тут не все)А когда товар даже старый, но в сети бардак — «кто в лес, кто по дрова», инфа разрозненна, нигде более 2х-3х фраз нет я обзор делал (типа подбить в одну папку). Но это повторяю: чисто мое имхо, к Вам никак не относится.
Похоже, что готовитесь собирать 3D-принтер на Arduino Mega. Но принтеры не моя тема, знаком с ней только мимолетно. Помню как они начинали с самой первой платы CNC Shield v3.0, перешли на CNC Shield V4, а потом вообще «Ramps-ы попутали». Дальше не следил, не интересно было.
Возможностей Arduino Mega нынешним принтерам мало:
Мой принтер работает на 32-битном ARM Cortex-M3 с частотой 100 МГц, а рулит всем одноплатник с гигом оперативы.
А собираю я электронную гитару для токарного станка.
А я уж грешным делом побоялся увидев на фото всего 2шт. Nema-23(76) что это очередной дровопал будет. Потом глянул вашу фразу: «на фото не все» и решил, что потом все таки всплывет 3-я ось. ну и написал про принтер. А у самого в голове мысли были: нафига там Nema-23 у которых удержание 30 кг? там что портал 20 кг будет? Хватило бы и дешевых Nema-17 с драйверами типа A4988 или DRV8825 до 2-х ампер, а с Nema-23 уже до 4-х ампер надо… Слава богу все разъяснилось))
Будете у нас
на Колымев СПБ свистите в ЛС, поможем чем сможем.Спасибо, но — далековато.
Я не к тому что вы не электронщик там или что-то такое, я к тому что мы часто покупаем то что круто и интересно и пригодилось бы, а потом годами валяется в ящике =)
И вот со временем я обнаружил — это нормально. Потому что раз за разом наблюдал как то что «годами валяется в ящике» во всех смыслах — вдруг оказывается очень кстати и «играет» свою может быть единственную роль, которую оно ждало годами. Это может быть вещь, это может быть идея, это может быть проект собраный и задвинутый в ящик… и это может быть даже детское увлечение короткое, к которому потом десятилетия спустя возвращаешься… или пытаешься вернуться и проклинаешь себя за то что тогда в прошлом не делал записей или выбросил ту поделку.
Так что мальчики и девочки, совет старого и злопамятного — что-то сделали в молодости — не поленитесь, запишите, опишите, зарисуйте, сфотографируйте, не выбрасывайте и положите в долгий, долгий ящик. Как Шелдон со своей «камерой хранения». Шелдон плохого не сделает.