Ручной энкодер, он же ручной генератор импульсов (РГИ) — электромеханическое устройство, которое преобразует угловое положение или движение вращающейся ручки, в электрические выходные сигналы.
Помаленьку готовлюсь к очередному долгострою, когда же я его доделаю большому проекту.
И пока я разгребаю сделанные по ходу пьесы фото, мы будем рассматривать кое-какие интересные железки.
Упакован герой обзора в картонную коробку.
Энкодер в блистере, до стенок коробки хороший зазор, неплохо упаковано.
А вот и сам герой обзора.
Энкодер массивный, чувствуется вес — 178 г. Щелчки при повороте четкие.
Подключение проводов осуществляется клеммами под винт. У нас простой энкодер, с двумя каналами A и B. Есть аналогичные модели с 6 клеммами — в них используется дифференциальный сигнал.
Продавец заботливо предоставил все необходимые размеры:
Приступим к разборке. Откручиваем 3 крепежных гайки,
уплотнительное кольцо и пластиковую защитную крышку, выкручиваем ручку.
Плата сидит на шпеньках, аккуратно приподнимаем.
На диске видим отпечатки пальцев сборщика.
Очевидно, что для определения угла поворота используются 2 фотодатчика.
Картинка из wikipedia, показывающая как оно работает.
Данные сигналы элементарно кодируются в бинарном виде:
Зная текущее и предыдущее значения A и B можно определить направление вращения энкодера:
По теме можно почитать Efficiently Reading Quadrature With Interrupts, Ардуино головного мозга: импульсный датчик положения, Подключение Энкодера К Arduino.
Подключаемся к логическому анализатору.
Крутим ручку с разной скоростью.
Смотрим левое и правое вращение.
Посмотрим фронты чем есть (DSO138).
Спад несущественно растянут.
Какие могут быть проблемы у таких датчиков? Механические загрязнения, закрывающие сенсор или прорези диска. Для того и разбирал — продул внутренности и осмотрел на явные косяки.
Что еще? Положения механической трещетки не соответствуют прорезям оптического диска (диск криво приклеен). То есть выставляемое положение энкодера немного не соответствуют снимаемым показаниям (фаза сдвинута), и эта ошибка постепенно накапливается.
Тестирование простеньким скетчем для Arduino не выявило ложных срабатываний в обратном направлении — крутим ручку в одну сторону, счетчик идет только в одну строну. Момент смены направления обрабатывался четко.
В прямом направлении на ложные двойные срабатывания тестировал, пока было терпение. Либо мне повезло с датчиком, либо мне просто терпения не хватило.
Может еще и трещетка нечетко работать — там пружинка и диск с прорезями, как шестеренка. Решается чисткой, подгибанием пружинки. Либо замена пружинки, но это трудновыполнимо.
Данных проблем при первоначальном тестировании выявлено не было. На этом этапе пока остановимся.
+52 |
2048
66
|
+29 |
2319
40
|
Для фотодатчиков и светика нет чипа корректора старения, а это означает нормальную работу не более одного года.
Однако ценник вполне вменяемый для китайского качества, можно просто купить про запас.
Просто ваша техника успевает сдохнуть раньше деградации кристаллов.
Мышу недавно выкинул: стёрлась кнопка, замены не нашёл. Смотрю — а ей 8 лет. Основная работа — листание в интернетиках и даташитах, автокад.
К колесу претензий никаких.
У героя обзора никаких признаков этих проблем
поканет и при применении в любительских проектах появятся, ИМХО, не скоро.Китайцы продают (наконец, блин) механические сейфы лимб+ключ, которые выглядят ну хотя бы не так, как любой электронный, где соленоид могут отбить (на микросекунду, но этого хватит) ударом кулака по вертикали и сразу открыть сейф, ну и классика сели батарейки и привет. Не совсем недорогие, самый крохотный 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-х ампер надо… Слава богу все разъяснилось))
Будете у нас
на Колымев СПБ свистите в ЛС, поможем чем сможем.Спасибо, но — далековато.
Поэтому в бутерброде с клиппером мега прекрасно вывозит не только ШД/нагрев, но и графический дисплей. 32 бита в клтппере нужны только для больших скоростей(которые в принципе несовместимы с самым используемым petg)
Даже если опустить вопрос с мощностью, специализированные платы удобнее того же бутерброда с RAMPS. Нормальное питание, защита портов, удобные разъемы, прочие плюшки.
Я не к тому что вы не электронщик там или что-то такое, я к тому что мы часто покупаем то что круто и интересно и пригодилось бы, а потом годами валяется в ящике =)
И вот со временем я обнаружил — это нормально. Потому что раз за разом наблюдал как то что «годами валяется в ящике» во всех смыслах — вдруг оказывается очень кстати и «играет» свою может быть единственную роль, которую оно ждало годами. Это может быть вещь, это может быть идея, это может быть проект собраный и задвинутый в ящик… и это может быть даже детское увлечение короткое, к которому потом десятилетия спустя возвращаешься… или пытаешься вернуться и проклинаешь себя за то что тогда в прошлом не делал записей или выбросил ту поделку.
Так что мальчики и девочки, совет старого и злопамятного — что-то сделали в молодости — не поленитесь, запишите, опишите, зарисуйте, сфотографируйте, не выбрасывайте и положите в долгий, долгий ящик. Как Шелдон со своей «камерой хранения». Шелдон плохого не сделает.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.