Энкодер подключение, настройка (юстировка), программирование
Подключение энкодера
В зависимости от типа энкодера, он подключается либо напрямую к компьютеру, либо к специальному программатору с помощью интерфейса. С помощью чего проверяется работоспособность энкодера. В случае неисправности энкодера в большинстве случаев потребуется его замена. Энкодеры делятся на:
- Инкрементальный энкодер
- Абсолютный энкодер
- Энкодер с параллельным интерфейсом (встречается редко)
- Энкодер с последовательным интерфейсом (широко распространен)
Инкрементальные энкодеры бывают с цифровым или с аналоговыми сигналами. Отличие инкрементального энкодера от абсолютного заключается в том, что он при подаче питания не может определить свое положение (абсолютную позицию) в каком положении находится его вал.
Программирование энкодера
Современные энкодеры внутри себя имеют микроконтроллер (процессор) все данные энкодера передаются по цифровому последовательному интерфейсу, наиболее распространённый RS485.
Именно поэтому новые энкодеры просто поставить на оборудование не получится, придется программировать. Программирование энкодера производится с помощью компьютера со специальным программным обеспечением либо с помощью программатора.
Настройка энкодера, юстировка
После программирования энкодера следует его настройка (юстировка). У каждого производителя Настройка энкодера, юстировка индивидуальная.
Самые распространенные производители энкодеров:
- Siemens
- Heidenhain
- Kubler
- Omron
- Sick
Также Настройка энкодера, юстировка будет зависеть от двигателя, на котором он установлен.
Проверка энкодера
По завершению всех вышеперечисленных процедур следует проверка энкодера на специальном стенде. Проверка работы с приводом как без нагрузки, так и с нагрузкой. В некоторых случаях проверка энкодера проводится с помощью компьютера и соответствующего софта.
Распиновка и схема энкодера
Распиновка энкодера |
Схема энкодера |
К кому обратиться?
Специализированный сервисный центр «Кернел» выполнит профессиональное подключение, настройку (юстировку) и программирование энкодеров любых производителей в сжатые сроки и за разумные деньги.
подключение, настройку и программирование энкодеров производят квалифицированные специалисты с инженерным образованием.
Специалисты нашей компании за время ее существования произвели настройку и программирование более тысячи энкодеров выпущенных под разными брендами.
Мы уверенны в качестве выполненных работ и даем гарантию на все виды работ, включая настройку и программирование энкодера шесть месяцев.
Как с нами связаться
Вас заинтересовало предложение по подключению, настройке и программированию энкодеров? Задайте их нашим менеджерам. Связаться с ними вы можете несколькими способами:
- Заказав обратный звонок (кнопка в правом нижнем углу сайта)
- Посредством чата (кнопка расположена с левой стороны сайта)
- Либо позвонив по номеру: +7(8482) 79-78-54; +7(917) 121-53-01
- Написав на электронную почту: [email protected]
Вот далеко не полный список производителей промышленной электроники и оборудования, ремонтируемой в нашей компании.
Как подключить энкодер к частотному преобразователю. Схема
Энкодер для частотника по своему внешнему виду похож на переменный резистор или на потенциометр. Те же три вывода, тот же корпус панели. На этом его сходство заканчивается. Внутри у него два переключателя, у которых есть общий вывод задач управления и два своих.
Чтобы энкодер заработал, средний вывод нужно подключить к земле, а два остальных через резисторы к питанию. Съем сигнала управления нужно производить непосредственно с выводов панели энкодера.
Теперь представим, что энкодер идеальный и его контакты не страдают дребезгом. Подключим к выводам энкодера осциллограф и начнем вращать ручку энкодера. Импульсы будут сдвинуты относительно друг друга на 90 градусов. Если крутить ручку мощности (кВт) вправо, влево или назад, то будем иметь последовательности панели управления:
Если осциллограммы как применение последовательности задач логических нулей и единиц, то они будут иметь такой вид:
Возьмем обычный энкодер, у которого есть дребезг контактов. Зона дребезга:
При переключении с логической единицы на логический ноль возникает дребезг. С дребезгом можно бороться двумя способами: аппаратным и программным применением.
Аппаратный способ – это подключение серии конденсаторов частотника, триггеров Шмитта, как указано на схеме панели управления:
Рекомендуется применять метод борьбы с дребезгом – программный. Такой метод описан в библиотеке Ротери. Данная библиотека содержит несколько функций, которые нужны для настройки выводов векторного контроллера на ввод, и подключение подтягивающих мощность (кВт) резисторов. В библиотеке нужно указывать соответствующие команды и задачи. Данной командой включается подтягивающий резистор внутри контроллера панели частотника.
Функция серии Get position vfd возвращает значение энкодера. Данная фукнция нужна для получения количества импульсов, которые считал энкодер. Функция set Position vfd нужна для загрузки значения, с которого энкодер начнет свой счет.
Функция tick должна быть рассмотрена подробнее. Переменные этой функции sig1 и sig2 записывают состояние векторного pin, к которой подключен энкодер. Дальше эти pin записываются в переменную thisState vfd, которая является текущим состоянием энкодера. Если текущее состояние энкодера не равно предыдущему, то вычисляются новые направления счета и количество импульсов мощности сохраняется в переменной Position. Когда энкодер вернется в свое начальное векторное положение, произойдет сдвиг вправо на два разряда, и новое значение управления нужно записать в переменную PositionExt. Данная переменная нужна для сохранения серии результатов задач, которые будут иметь применение в основной программе.
Счет
Проанализировав состояние энкодера при вращении влево и вправо, составляем таблицу:
Его начальное положение 1-1. При повороте вправо произошел щелчок, единица стала логическим нулем. Новое значение this State vfd равно 01. Согласно команды данный результат суммируется со значением переменной Position.
Из-за того, что произошел дребезг, позиция стала 11, после перерасчета порядковый номер стал 7. После того, как дребезг закончился, нужно фиксировать новое положение 01 и к предыдущему нулю добавляется единица. При повороте энкодера произошел один щелчок, и значение переменной Position стало единицей.
Происходит второй щелчок при повороте энкодера направо, и вместо позиции 01 мы имеем позицию 00. После того, как весь дребезг закончится, на выходе управления также имеем значение единицы. При четвертом щелчке, когда позиция с 10 стала 11, мы имеем значение 6. После окончания дребезга остается 6.
В некоторых энкодерах имеет применение кнопка панели. При ее нажатии и отпускании тоже будет дребезг контактов, нужно применить библиотеку Bounce. Функции этой библиотеки нужны для задания pin, к которому будет подключена кнопка, задач времени задержки в миллисекундах. Если произошло нажатие на кнопку, то функция мощности (кВт) возвращает векторное значение true, если нет, то false vfd.
Принципиальная схема подключения энкодера к преобразователю частоты
Данная схема состоит из платы Arduino Uno, инкрементального энкодера, четырехразрядного светодиодного индикатора, ключевых транзисторов и ограничительного резистора. Эта схема называется счетчиком импульсов. Она считает импульсы, которые будет воспроизводить энкодер при его вращении. Энкодер своими выводами подключен к каналам А2 и А3, вывод кнопки подключен к выводу А4, средний вывод подключен к земле, второй вывод тоже к земле.
Рассмотрим скетч, который называется счетчиком импульсов энкодера управления частотника. Вначале подключаем библиотеки для работы таймера, индикатора LS, для работы с энкодером, для кнопки.
Перейдем к макетной плате, и зальем все это в контроллер управления частотника. После заливания, включаем, крутим регулятор энкодера, цифры на экране возрастают. В обратную сторону векторного значения уменьшаются и переходят в отрицательную сторону. При увеличении серии задач отрицательного значения знак минуса смещается.
Если нажимаем на кнопку индикатора, переменная обнулится, на индикаторе будет ноль.
Подключение энкодера промышленного назначения к Arduino
Наша задача суметь управлять скоростью асинхронного двигателя с помощью программы на компьютере. У нас имеется преобразователь частоты (частотник):
Для домашних заданий такая информация не нужна. На фотографии энкодер промышленного назначения для асинхронного двигателя управления мощностью (кВт) станков:
В станкостроении энкодеры широко применяются для преобразователей частоты асинхронных двигателей. Они монтируются как датчики обратной связи по своей скорости. Такие энкодеры имеют большую дискретность от 100 импульсов на оборот до 1 млн импульсов на оборот. У этой марки дискретность равна 500 имп. на оборот.
Энкодеры подразделяются на виды задач по принципу действия на частотные преобразователи. Они бывают абсолютными и инкрементальными. Наш энкодер выполняет обычную функцию – выдает сигнал дифференцирования при отключении мощности питания, и ее подачи снова. Раннее состояние не сохраняется.
Энкодеры абсолютного вида имеют внутреннюю память, которая помнит последние положения. Зачем нужна память, и зачем сохранять эти данные? В заводских условиях станкостроения перед перемещением определенного устройства в первую очередь указывают нулевую точку. Такой процесс называется реферированием, то есть, выход в нуль.
Применение датчика абсолютного вида дает возможность уйти от этой процедуры на второй раз, сократить время при условии, что система имеет ограничения для перемещений.
Рассмотрим энкодеры синуса и косинуса. Они выдают выходной сигнал косинуса или синуса. Далее, с помощью устройства интерполятора мощности образуют из них импульсы. Сигналы такого вида можно изменять в размерах. Питание энкодера осуществляется от напряжения 5 вольт.
Сигнал «А» – это сигнал импульса прямого типа. Количество импульсов с этого сигнала приходит на каждом обороте. Оно равно 500 (дискретность датчика).
Сигнал «В» – тоже прямой сигнал импульса. С него на каждом обороте поступает число импульсов по дискретности датчика, который смещен от канала «А» на 90 градусов (500).
Сигнал «R» – это сигнал метки «нуль». С одного оборота датчика получается один импульс.
В энкодерах промышленного назначения используется сигнал дифференцирования, для работы с частотным преобразователем (частотником). Название у него сложное, а на самом деле все просто. Все каналы отдельно копируются своей инверсией. Это необходимо для отдавания сигнала на значительные расстояния. Выходной канал энкодера подсоединяется к приемнику специального назначения, сделанному на усилителях операционного вида. Импульс в итоге определяется в совокупности двух сигналов.
Подключение
Подключение простое. Подсоединяем напряжение 5 вольт на выходы энкодера. У нас раскладка: провод коричневого цвета – 0 В, белого цвета – +5 В, розовый, зеленый и красный – А, В, R.
Программа подключения энкодера базируется на прерываниях каналов А и В. Срабатывания прерываний происходят на переднем фронте. Получается ситуация, когда происходит торможение энкодера в момент растрового пересечения и выходной сигнал канала всегда остается положительным. Подсчет импульсов непрерывно ведется счетчиком.
В нашем случае мы не будем применять прерывания, потому что мы работаем с 4-мя датчиками, они эксплуатируются одновременно. Если применять схему прерываний, наверняка возникнет ситуация потери импульсов. У нас эта проблема решается путем установления значка наличия движения. А мы рассматривали эксплуатацию энкодеров промышленного назначения.
Работа счетчика импульсов на основе модуля энкодера
Счетчик работает в связке с модулем семиразрядного индикатора, который и будет отображать количество накрученных энкодером импульсов. При включении значение счетчика равно нулю.
Покрутим ручку энкодера по часовой стрелке. Значение счетчика инкрементируется на единицу при каждом щелчке энкодера. Наибольшее число можно накрутить 999999999. это число должно заполнить все разряды нашего семисегментного индикатора. Если вращать ручку дальше, то счетчик обнулится, начнет снова считать с нуля.
Для примера накрутим 120 импульсов. Теперь скручиваем обратно, вращая ручку против часовой стрелки. Центральная ось энкодера работает как кнопка. Она очищает от нулей свободные разряды индикатора. У кнопки есть небольшой дребезг контактов, поэтому выключение и включение происходит не сразу. Программным путем, дребезг устраняется. Это основа работы с модулем энкодера.
Как подключить энкодер к Ардуино
Для начала разберёмся детальнее, что такое энкодер.
Энкодер – это устройство, предназначенное для определения угла поворота и преобразующее данные в электрический сигнал. Другое название энкодера – “датчик угла поворота”.
По выходному сигналу различают:
- Инкрементные энкодеры – на выходе формируется две последовательности импульсных сигналов (нулей и единиц), при этом каждая “единица” соответствует фиксированному углу (зависит от точности датчика). Отслеживание полного поворота происходит по специальному сигналу (программному), а направление вращения определяется по смещению второй последовательности относительно первой. Для понимания принципа работы инкрементных датчиков угла лучше всего изучить изображение ниже.
Рис. 1. Изображение выходного сигнала инкрементного энкодера
С анимацией.
Рис. 2. Схема инкрементного энкодера
- Абсолютные энкодеры – на выходе формируются не просто “единицы”, а сразу последовательности фиксированной длины (зависит от точности измерения), которые явно говорят о конкретном угле, то есть значение угла поворота специальным образом кодируется (код Грея). Понять принцип его работы лучше поможет следующая схема.
Рис. 3. Схема принципа работы абсолютного энкодера
Или эта.
Рис. 4. Схема принципа работы абсолютного энкодера
Конструктивно (в зависимости от технологии измерения) экодеры могут быть:
- Оптическими;
- Магнитными;
- Резисторными.
Подключение и работа с энкодерами в Arduino в первую очередь зависит от способа кодирования угла.
Начнём с инкрементных датчиков.
Подключение инкрементных энкодеров
Чтобы притянуть контакты датчика к логической единице, необходимо использовать резисторы (10кОм). Типовая схема выглядит следующим образом (плата выбрана для примера, входные контакты на Ардуино могут быть изменены на другие).
Рис. 5. Типовая схема
Здесь приведён пример с использованием энкодера с кнопкой (есть и такие модели, кнопкой служит сама ручка).
При использовании Atmega можно просто включить встроенные резисторы микроконтроллера специальной командой.
Если вы сталкиваетесь с дребезгом датчика (довольно частое явление для замыкающихся контактов, а именно они используются в инкрементных энкодерах), можно аппаратно решить проблему путём сборки следующей схемы.
Рис. 6. Типовая схема
Существует и программный способ сглаживания дребезга за счёт использования логики прерываний (смотри скетч во вложениях к материалу). Но подключение прибора следует выполнять только на 2 и 3 пины.
Простейший код для обработки данных с датчика выглядит следующим образом.
Для более сложных задач можно использовать готовые библиотеки, например:
- https://github.com/GreyGnome/AdaEncoder
- https://github.com/PaulStoffregen/Encoder
- https://github.com/mathertel/RotaryEncoder
- и другие.
Во вложении можно найти готовый скетч (см. здесь) с подробными комментариями для работы с меню (часто используемый функционал для энкодеров с кнопкой).
Отрабатывается перемещение по иерархии меню и выбор между доступными пунктами.
Подключение абсолютных энкодеров
Абсолютные энкодеры не так распространены, как инкрементные. И схема подключения во многом зависит от требований производителя. Так, например, высокоточный 128-битный датчик Bourns ACE-128 легко подключается к Ардуино или Raspberry Pi. Производитель предлагает свои собственные библиотеки для работы с энкодером и даже типовую схему для тестирования функционала.
Схема соединения выглядит так.
Рис. 7. Схема соединения энкодеров
А схема для тестирования с выводом числового показателя угла поворота на дисплей, так.
Рис. 8. Схема для тестирования с выводом числового показателя угла поворота на дисплей
Готовая библиотека для Arduino, подробные инструкции и примеры скетчей можно найти на ГитХабе: https://github.com/arielnh56/ACE128
Аналогично и с изделиями других производителей – необходимо изучать их рекомендации.
Автор: RadioRadar
Сопрягаем энкодер и микроконтроллер – chipenable.
ru Из этой статьи вы узнаете, что такое энкодер, зачем он нужен, и как его подружить с микроконтроллером. Если вы пользовались современной стиральной машиной, микроволновой печью или аудио системой то, скорее всего вы уже имели дело с энкодером, сами того не подозревая. Например, в большинстве современных домашних и автомобильных стерео систем энкодеры используются для регулировки громкости звука.
Энкодер или датчик угла поворота – это электромеханическое устройство, предназначенное для преобразования углового положения вала или оси в электрические сигналы. Существует два основных типа энкодеров – инкрементные и абсолютные.
Инкрементный энкодер при вращении формирует импульсы, число которых пропорционально углу поворота. Подсчет числа этих импульсов даст нам величину угла поворота вала энкодера относительно его начального положения. Этот тип энкодеров не формирует выходные импульсы, когда его вал находится в покое. Инкрементные энкодеры находят широкое применение в индустриальных средствах управления, бытовой и музыкальной технике.
Абсолютный энкодер для каждой позиции своего вала выдает уникальный код. Ему, в отличии от инкрементного энкодера, счетчик не нужен, угол вращения всегда известен. Абсолютный энкодер формирует сигнал и когда вал вращается, и когда он находится в покое. Абсолютный энкодер не теряет информацию о своем положении при потере питания и не требует возврата в начальную позицию. Этот тип энкодеров применяется в промышленно оборудовании – робототехнике, станках, конвейерных линиях.
Я хотел бы рассказать о сопряжении инкрементного механического энкодера с микроконтроллером. Для этого я приобрел инкрементный энкодер фирмы Bourns – PEC12-4220F-S0024. Вот расшифровка его названия согласно datasheet: PEC12 – модель, 4 – вертикальное положение выводов, 2 – 24 стопора, 20 – длина вала в мм, S – наличие кнопки, 0024 – 24 импульса за оборот.
У него 5 выводов. 2 вывода на фотографии слева – выводы кнопки, 3 вывода на фотографии справа – выводы энкодера. Из них – 2 сигнальных и 1 общий. Он посередине. Схема подключения энкодера ничем не отличается от подключения обычных кнопок. Сигнальные выводы энкодера подключаем к любому порту ввода вывода микроконтроллера. Общий вывод энкодера сажаем на землю. Для защиты от дребезга контактов не лишним будет добавить еще пару керамических конденсаторов номиналом в несколько нанофарад. Выводы микроконтроллера в программе конфигурируем как входы и включаем подтягивающие резисторы. Можно использовать внешние.
Когда ручка энкодера стоит неподвижно – на входах микроконтроллера присутствуют логические единицы. Когда ручку энкодера поворачивают, на выводах микроконтроллера появляются два прямоугольных сигнала сдвинутых друг относительно друга. От направления вращения вала энкодера зависит, какой из сигналов будет опережать другой. На рисунке ниже представлены возможные варианты сигналов для идеального случая.
Внутри энкодера имеются контакты, которые при вращении то замыкаются, то размыкаются. Этот процесс естественно сопровождается дребезгом, поэтому реальные сигналы могут выглядеть вот так.
Сигналы сняты со старого энкодера, включенного без фильтрующих конденсаторов.
Алгоритм обработки сигналов энкодера выглядит следующим образом. В обработчике прерывания таймера запускается функция опроса энкодера. Она считывает логические уровни, присутствующие на выводах микроконтроллера к которым подключен энкодер и записывает их во временную переменную. Внутри функции есть статическая переменная (переменная, которая сохраняет свое значение при выходе из функции) хранящая последовательность предыдущих состояний. С помощью битовой маски микроконтроллер выделяет из этой переменной последнее состояние и сравнивает его с текущим, чтобы определить произошли ли изменения. Если состояния равны – функция завершает работу, если отличны – значение статической переменной сдвигается влево на 2 разряда и на «освободившееся» место записывается текущее состояние.
Таким образом, если вал энкодера вращается, функция будет постоянно сохранять некую повторяющуюся кодовую последовательность. При вращении вправо – это будет 11100001. При вращении влево – 11010010. По этим последовательностям микроконтроллер и будет понимать, в какую сторону происходит вращение.void InitEncoder(void) – инициализирует выводы порта.
void PollEncoder(void) – однократно опрашивает энкодер. Если зафиксировано вращение, записывает в буфер одну из констант, если нет, просто завершает работу.
unsigned char GetStateEncoder(void) – возвращает содержимое буфера и очищает его.
Опрос энкодера я обычно произвожу с частотой ~ 4 кГц.
Если опрашивать медленней, микроконтроллер будет пропускать импульсы при быстрых поворотах ручки энкодера. Если энкодер используется для установки линейно меняющейся величины, например для установки времени в часах, то в качестве констант LEFT_SPIN и RIGHT_SPIN удобно использовать числа 255 и 1 соответственно. В обработчике сигналов энкодера эти числа просто складываются с устанавливаемой величиной. При сложении с 1 величина увеличивается на 1, при сложении с 255 уменьшается на 1. Конечно это актуально если эта величина однобайтная. Ну а в принципе константы LEFT_SPIN и RIGHT_SPIN можно выбирать произвольно, главное правильно написать обработчик. На этом все.Исходник для работы с энкодером здесь.
Абсолютная энкодерная система RESOLUTE™ с линейной шкалой RTLA30
Шкала с одной дорожкой
Шкала представляет собой единственную дорожку с контрастными линиями по всей ширине шкалы, с номинальным шагом 30 мкм. Отсутствие нескольких параллельных дорожек обеспечивает защищенность от ошибок, связанных с рысканьем, а также существенно более широкий поперечный допуск на положение головки.
Получение изображения
Изображение шкалы формируется асферической линзой, снижающей дисторсию, на детекторной матрице, специально разработанной для энкодеров RESOLUTE. Такая оптическая схема, в которой оптический путь при освещении является изломанным, а при формировании изображения – прямым, оказывается исключительно компактной и при этом работающей очень стабильно, что гарантирует высокую точность воспроизведения, столь важную для обеспечения высокого качества измерений.
Декодирование и анализ данных
После захвата изображения детектором оно передается аналогово-цифровым преобразователем (ADC) в мощный процессор цифровой обработки сигналов (DSP). Затем с помощью специально разработанных алгоритмов на основе кода, нанесенного на шкалу, получают истинное абсолютное, однако относительно грубое значение положения. После этого выполняется проверка, и вводятся поправки с помощью дополнительных алгоритмов в процессоре DSP, в которых учитывается избыточность и преднамеренно введенные ограничения кода шкалы. В других подпрограммах выполняется расчет «точного» положения с высоким разрешением, и это значение объединяется с данными по «грубому» положению, что дает в результате истинное абсолютное положение с очень высоким разрешением.
Конечные проверки и вывод данных
После выполнения заключительных процедур проверки ошибок информация загружается по соответствующему протоколу в контроллер последовательно в виде чистого слова, описывающего положение с точностью в пределах 1 нм. Защита от электрических помех обеспечивается контролем с помощью циклического избыточного кода (Cyclic Redundancy Check – CRC). Весь этот процесс занимает всего несколько микросекунд и может повторяться до 25 000 раз в секунду. С помощью различных приемов, в том числе регулировки продолжительности вспышки с учетом скорости движения оси, такие характеристики поддерживаются на скоростях до 100 м/с, и при этом, что чрезвычайно важно, сохраняется исключительно низкий уровень дрожания при позиционировании при более низких рабочих скоростях.
Подводя итог…
Таким образом, мы имеем энкодер с широкими допусками к установке: Система RESOLUTE допускает погрешность ±0,5° по углу рысканья, тангажа и крена, а для расстояния между шкалой и считывающей головкой – целых ±150 мкм. В то же время широкая зона охвата оптики и усовершенствованные процедуры коррекции ошибок обеспечивают исключительно высокую устойчивость к оптическим помехам, связанными с пятнами, создаваемыми посторонними частицами или смазкой. При этом сохраняется разрешение 1 нм при скорости 100 м/с: RESOLUTE – вот ответ на самую сложную задачу абсолютных измерений.
Модель |
Описание |
Цена, евро с НДС |
IEV58:2-00005 |
Торцевой фланец, цельный вал 10 мм, разрешение 2…10000 импульсов/оборот, 4,5…32 В HTL/TTL, радиальный кабель 2 метра, -40…75 ®С |
239,92 |
IEV58:2-00001 |
Торцевой фланец, цельный вал 10 мм, разрешение 2…10000 импульсов/оборот, 4,5…32 В HTL/TTL, радиальный разъем М23, -40…75 ®С |
239,92 |
IEV58:2-00006 |
Сервофланец, цельный вал 6 мм, разрешение 2…10000 импульсов/оборот, 4,5…32 В HTL/TTL, радиальный кабель 2 метра, -40…75 ®С |
239,92 |
IEV58:2-00003 |
Сервофланец, цельный вал 6 мм, разрешение 2…10000 импульсов/оборот, 4,5…32 В HTL/TTL, радиальный разъем М23, -40…75 ®С |
239,92 |
IEV58:2-00007 |
Прямоугольный фланец, цельный вал 9,51 мм (3/8 ʺ), разрешение 2…10000 импульсов/оборот, 4,5…32 В HTL/TTL, радиальный кабель 2 метра, -40…75 ®С |
239,92 |
IEH58:2-00011 |
Сквозной полый вал 6 мм, разрешение 2…10000 импульсов/оборот, 4,5…32 В HTL/TTL, радиальный кабель 2 метра, -40…75 ®С |
239,92 |
IEH58:2-00012 |
Сквозной полый вал 8 мм, разрешение 2…10000 импульсов/оборот, 4,5…32 В HTL/TTL, радиальный кабель 2 метра, -40…75 ®С |
239,92 |
IEH58:2-00008 |
Сквозной полый вал 10 мм, разрешение 2…10000 импульсов/оборот, 4,5…32 В HTL/TTL, радиальный кабель 2 метра, -40…75 ®С |
239,92 |
IEH58:2-00004 |
Сквозной полый вал 10 мм, разрешение 2…10000 импульсов/оборот, 4,5…32 В HTL/TTL, радиальный разъем М23, -40…75 ®С |
239,92 |
IEH58:2-00007 |
Сквозной полый вал 12 мм, разрешение 2…10000 импульсов/оборот, 4,5…32 В HTL/TTL, радиальный кабель 2 метра, -40…75 ®С |
239,92 |
IEH58:2-00003 |
Сквозной полый вал 12 мм, разрешение 2…10000 импульсов/оборот, 4,5…32 В HTL/TTL, радиальный разъем М23, -40…75 ®С |
239,92 |
IEH58:2-00009 |
Сквозной полый вал 14 мм, разрешение 2…10000 импульсов/оборот, 4,5…32 В HTL/TTL, радиальный кабель 2 метра, -40…75 ®С |
239,92 |
IEH58:2-00002 |
Сквозной полый вал 14 мм, разрешение 2…10000 импульсов/оборот, 4,5…32 В HTL/TTL, радиальный разъем М23, -40…75 ®С |
239,92 |
IEH58:2-00010 |
Сквозной полый вал 15 мм, разрешение 2…10000 импульсов/оборот, 4,5…32 В HTL/TTL, радиальный кабель 2 метра, -40…75 ®С |
239,92 |
IEH58:2-00001 |
Сквозной полый вал 15 мм, разрешение 2…10000 импульсов/оборот, 4,5…32 В HTL/TTL, радиальный разъем М23, -40…75 ®С |
239,92 |
62000249 |
Ответный разъем М23 12 pin |
23,86 |
Как подключить энкодер к цифровой индикации схема.
Подключение поворотного энкодера к компьютеру через USBИз этой статьи вы узнаете, что такое энкодер, зачем он нужен, и как его подружить с микроконтроллером. Если вы пользовались современной стиральной машиной, микроволновой печью или аудио системой то, скорее всего вы уже имели дело с энкодером, сами того не подозревая. Например, в большинстве современных домашних и автомобильных стерео систем энкодеры используются для регулировки громкости звука.
Энкодер или датчик угла поворота – это электромеханическое устройство, предназначенное для преобразования углового положения вала или оси в электрические сигналы. Существует два основных типа энкодеров – инкрементные и абсолютные.
Инкрементный энкодер при вращении формирует импульсы, число которых пропорционально углу поворота. Подсчет числа этих импульсов даст нам величину угла поворота вала энкодера относительно его начального положения. Этот тип энкодеров не формирует выходные импульсы, когда его вал находится в покое. Инкрементные энкодеры находят широкое применение в индустриальных средствах управления, бытовой и музыкальной технике.
Абсолютный энкодер для каждой позиции своего вала выдает уникальный код. Ему, в отличии от инкрементного энкодера, счетчик не нужен, угол вращения всегда известен. Абсолютный энкодер формирует сигнал и когда вал вращается, и когда он находится в покое. Абсолютный энкодер не теряет информацию о своем положении при потере питания и не требует возврата в начальную позицию. Этот тип энкодеров применяется в промышленно оборудовании – робототехнике, станках, конвейерных линиях.
Я хотел бы рассказать о сопряжении инкрементного механического энкодера с микроконтроллером. Для этого я приобрел инкрементный энкодер фирмы Bourns – PEC12-4220F-S0024. Вот расшифровка его названия согласно datasheet: PEC12 – модель, 4 – вертикальное положение выводов, 2 – 24 стопора, 20 – длина вала в мм, S – наличие кнопки, 0024 – 24 импульса за оборот.
У него 5 выводов. 2 вывода на фотографии слева – выводы кнопки, 3 вывода на фотографии справа – выводы энкодера. Из них – 2 сигнальных и 1 общий. Он посередине. Схема подключения энкодера ничем не отличается от подключения обычных кнопок. Сигнальные выводы энкодера подключаем к любому порту ввода вывода микроконтроллера. Общий вывод энкодера сажаем на землю. Для защиты от дребезга контактов не лишним будет добавить еще пару керамических конденсаторов номиналом в несколько нанофарад. Выводы микроконтроллера в программе конфигурируем как входы и включаем подтягивающие резисторы. Можно использовать внешние.
Когда ручка энкодера стоит неподвижно – на входах микроконтроллера присутствуют логические единицы. Когда ручку энкодера поворачивают, на выводах микроконтроллера появляются два прямоугольных сигнала сдвинутых друг относительно друга. От направления вращения вала энкодера зависит, какой из сигналов будет опережать другой. На рисунке ниже представлены возможные варианты сигналов для идеального случая.
Внутри энкодера имеются контакты, которые при вращении то замыкаются, то размыкаются. Этот процесс естественно сопровождается дребезгом, поэтому реальные сигналы могут выглядеть вот так.
Сигналы сняты со старого энкодера, включенного без фильтрующих конденсаторов.
Алгоритм обработки сигналов энкодера выглядит следующим образом. В обработчике прерывания таймера запускается функция опроса энкодера. Она считывает логические уровни, присутствующие на выводах микроконтроллера к которым подключен энкодер и записывает их во временную переменную. Внутри функции есть статическая переменная (переменная, которая сохраняет свое значение при выходе из функции) хранящая последовательность предыдущих состояний. С помощью битовой маски микроконтроллер выделяет из этой переменной последнее состояние и сравнивает его с текущим, чтобы определить произошли ли изменения. Если состояния равны – функция завершает работу, если отличны – значение статической переменной сдвигается влево на 2 разряда и на «освободившееся» место записывается текущее состояние. Таким образом, если вал энкодера вращается, функция будет постоянно сохранять некую повторяющуюся кодовую последовательность. При вращении вправо – это будет 11100001. При вращении влево – 11010010. По этим последовательностям микроконтроллер и будет понимать, в какую сторону происходит вращение.
Исходник для работы с энкодером можно скачать . Архив содержит два файла: encoder.h и encoder.c. В хедере задаются порт и номера выводов, к которым подключен энкодер, константы LEFT_SPIN и RIGHT_SPIN. Также там описаны прототипы функций. Сишный файл содержит реализацию функций.
void InitEncoder(void) – инициализирует выводы порта.
void PollEncoder(void) – однократно опрашивает энкодер. Если зафиксировано вращение, записывает в буфер одну из констант, если нет, просто завершает работу.
unsigned char GetStateEncoder(void) – возвращает содержимое буфера и очищает его.
Опрос энкодера я обычно произвожу с частотой ~ 4 кГц. Если опрашивать медленней, микроконтроллер будет пропускать импульсы при быстрых поворотах ручки энкодера. Если энкодер используется для установки линейно меняющейся величины, например для установки времени в часах, то в качестве констант LEFT_SPIN и RIGHT_SPIN удобно использовать числа 255 и 1 соответственно. В обработчике сигналов энкодера эти числа просто складываются с устанавливаемой величиной. При сложении с 1 величина увеличивается на 1, при сложении с 255 уменьшается на 1. Конечно это актуально если эта величина однобайтная. Ну а в принципе константы LEFT_SPIN и RIGHT_SPIN можно выбирать произвольно, главное правильно написать обработчик. На этом все.
Исходник для работы с энкодером .
Коротко энкодеры можно назвать преобразователями угловых перемещений. Они служат для модификации угла поворота объекта вращения, например, вала какого-либо механизма, в сигнал электрического тока. При этом определяется не только угол поворота вала, но и его направление вращения, а также скорость вращения и текущая позиция относительно первоначального положения.
Наиболее популярными энкодеры стали при их использовании в системах точного перемещения, на станкостроительных заводах, в производственных комплексах с применением робототехники, в измерительных устройствах, в которых необходима регистрация точных измерений наклонов, поворотов, вращений и углов.
Виды и принцип действияЭнкодеры – это датчики поворота. Простейший датчик имеет ручку, которая может поворачиваться по часовой стрелке или против нее. В зависимости от угла поворота и направления выдается цифровой сигнал, информирующий о том, в каком положении находится ручка, либо в какую сторону она была повернута.
У такого энкодера, показанного на рисунке, ручка также может применяться в качестве кнопки. Это является вспомогательной функцией конкретного вида энкодера.
По типу выдаваемых данных энкодеры делятся на две большие группы:
- Абсолютные.
- Инкрементальные.
У абсолютного энкодера весь круг поворота разделен на определенное количество секторов, чаще всего одинакового размера. Эти сектора пронумерованы. Энкодер при работе выдает номер сектора, в котором на данный момент он находится. Поэтому он и называется абсолютным. У этого типа энкодера всегда можно определить, на какой угол относительно нулевого сектора повернут энкодер в конкретный момент, то есть, при повороте он выдает значения номеров секторов, до максимального значения. Далее он переходит снова на ноль.
Если вал энкодера поворачивать в другую сторону, то он начнет выдавать противоположные значения. В нашем случае у него используется пять выводов для выдачи значений поворота.
У данного алгоритма имеются свои недостатки. Из таблицы 1 виден порядок выдаваемых значений n-го энкодера. Стоит обратить внимание на две последние строчки, переход от 127 на 128.
Таблица 1
Здесь меняются абсолютно все биты. В идеальном энкодере они все меняются одновременно и нет никаких проблем. Практически в реальном энкодере биты меняются быстро, однако не одновременно. И в какой-то момент на выходе энкодера оказывается совершенно произвольное значение. Так как меняются все биты, следовательно, у энкодера будет произвольное значение от нуля до всех единиц.
Справа изображен пример такого переключения. Чем это может грозить? Разберем пример. Микроконтроллер с помощью двигателя управляет валом и поворачивает его на определенный угол. В определенный момент при переключении со 127 на 128 ячейку он получает определенное случайное значение. Контроллер делает вывод, что вал находится совершенно в другом месте, в отличие от фактического места, и начинает его вращать в другую сторону, с другой скоростью и т.д.
Через определенное время микроконтроллер получает правильное значение, начинает пытаться остановить вал и вращать его в правильную сторону. Такой процесс может продолжаться долго, при условии, что такая ошибка будет встречаться часто. Такие ошибки являются нерегулярными, и вычислить их достаточно сложно.
Код ГреяВыше описанная проблема решается с помощью введения кода Грея. Особенностью кода Грея является то, что при переключении энкодера на единицу, значение кода Грея меняется также на единицу. Меняется только один вид. Это видно в таблице 2 в сравнении двоичного кода и кода Грея.
Таблица 2Первые две строчки совпадают, но уже во второй строчке поменялся средний бит. Далее также меняется один бит. Также стоит отметить, что последний и первый код Грея отличается на один бит, то есть код Грея может зациклиться.
Преимуществом данного кода является то, что ошибка, которая рассмотрена выше, невозможна. Из недостатков можно отметить, что микроконтроллеру необходимо переводить код Грея в двоичный код для того, чтобы понять, в каком положении находится абсолютный энкодер.
Инкрементальные энкодерыСледующим типом является инкрементальный энкодер, который имеет более простую структуру. Но при этом он не показывает конкретное место положения своей ручки. Он показывает только направление поворота, а число делений поворота должен считать микроконтроллер.
У инкрементального энкодера есть набор полосок, которые по умолчанию подключены к земле, и при повороте они замыкаются и размыкаются. Получается сигнал, изображенный на рисунке (похож на меандр). Таких круговых полосок у энкодера две. Полоски смещены на одну четверть, и сигналы также смещены между собой на четверть. Это важно, так как позволяет определить направление вращения.
Схему инкрементального энкодера можно представить по правому рисунку. Кнопки обозначают периодические подключения энкодера к земле. Так как внутри энкодер не подключается к логической единице, то необходимо снаружи самостоятельно подтянуть логические единицы через резисторы к выводу энкодера. В этом случае, когда ни одна из ножек у энкодера не подключена к земле, на ножках будет логическая единица.
Если энкодер подключил к земле какую-то ножку, то на этой ножке будет логический ноль. В спокойном состоянии у энкодера на выходе логическая единица. При начале вращения энкодера в любую сторону, то сначала один вывод подключается к земле, затем другой. Далее эти выводы по очереди отключаются от земли, и на них опять образуется логическая единица.
Определить направление поворота можно по тому, какой из выводов раньше подключился к земле. При подсчете полных циклов можно посчитать количество щелчков поворота энкодера.
Фактически у энкодера имеется четыре состояния:
- Две единицы.
- Ноль и единица.
- Ноль и ноль.
- Единица и ноль.
Три состояния, которые не равны единицам, являются неустойчивыми, и в них энкодер не может находиться. Во многих микроконтроллерах реализована функция подсчета поворотов с помощью таймеров, у которых есть определенные входы. Таймер считает на аппаратном уровне, на сколько щелчков и в какую сторону был повернут энкодер, и выдает значение. То есть, счетчик инкрементирует какое-либо число.
По изменению этого числа можно определить, на сколько щелчков был повернут энкодер. По количеству щелчков можно определить и угол поворота. Энкодер также имеет дребезг контактов, который усложняет анализ сигналов.
Оптические энкодерыПодобный преобразователь выполнен в виде диска, зафиксированного на валу, и изготовленного из стекла. Оптический датчик поворота отличается от других видов дополнительным оптическим растором, перемещаемым при повороте вала. При этом он превращает момент вращения в световой поток, который далее принимается фотодатчиком.
Оптический преобразователь запоминает углы вращения. При этом каждому отдельному положению соответствует особый цифровой код, который вместе с числом оборотов образует единицу измерения датчика. Энкодер подключается и работает по аналогии с инкрементальным датчиком.
По характеру функционирования они разделяются на фотоэлектрические и магнитные . Принцип работы магнитных основан на использовании , который был впервые открыт в 1879 году. При этом разность потенциалов появляется только при расположении провода постоянного тока в магнитное поле.
По точности и свойствам разрешения магнитный вид датчика уступает фотоэлектрическому, однако по конструкции он проще, менее требователен к условиям работы и пространству. Магнитный энкодер является прибором, который фиксирует прохождение магнитного полюса магнита при вращении, находящегося рядом с чувствительным элементом. Информация передатчика выражается в цифровом коде.
Фотоэлектрический энкодер является датчиком, работающим на основе фотоэлектрического принципа. Этот эффект наблюдается при воздействии светового потока на вещество. Этот принцип был открыт в 1887 году. При эксплуатации такого датчика происходит постоянное преобразование луча света в сигнал электрического тока.
Аналогами фотоэлектрического энкодера являются оптоэлектронный, оптический и . Эти датчики наиболее чувствительны к характеристикам изготовления, эксплуатации и другим факторам, по сравнению с другими моделями. Однако это оправдывается их повышенной точностью, в отличие от конкурентов.
Давно хотел приспособить к ноуту регулятор громкости, сделанный из энкодера . Подключать этот регулятор нужно будет к USB, чтобы все было «по-взрослому» (да и по-другому никак внешнее устройство к ноуту не подключишь). Крутим энкодер влево – громкость должна уменьшаться, вправо – должна увеличиваться. Жмем вниз ручку энкодера – запускаем какую-нибудь полезную программу, или переключаемся на регулирование тембра.
Для тех, кто не в курсе, что такое энкодер – это такая крутилка, типа ручки громкости на основе обычного резистора, только у этой крутилки нет граничных положений – крути сколько влезет в любую сторону. Крутится энкодер с приятными мягкими щелчками, а выглядит как обычный переменный резистор.
Такие устройства – не редкость в совремеменных автомагнитолах и любых бытовых устройствах, пользовательский интерфейс которых обрабатывается микроконтроллером (а это почитай любая бытовая техника), и где нужна плавная регулировка или настройка. В энкодер часто встраивают и третий контакт, работающий как кнопка на ручке – когда утапливаем ручку энкодера вниз (вдоль оси), то эта кнопка срабатывает. Очень обогащает возможности интерфейса с пользователем – на одном энкодере можно построить всю систему управления электронным устройством (зато добавляется гемор программисту, но это уже мелочи). У меня как раз и был такой энкодер.
Принцип работы энкодера довольно прост – в нем всего лишь два контакта (кнопка на ручке не в счет), которые начинают замыкать, как только пользователь начал крутить ручку энкодера. Контакты подключаются к двум ножкам микроконтроллера (работающих как цифровые входы), и при вращении ручки энкодера на этих ножках появляются импульсы, по фазе и количеству которых микроконтроллер определяет направление вращения и угол поворота ручки энкодера.
Чтобы заработал регулятор громкости, нужно решить, как минимум, три инженерные задачи:
Шаг 1 . Создание низкоскоростного USB-устройства на макетке.
Шаг 2 . Подключить к этому USB-устройству энкодер, добиться, чтобы микроконтроллер его отрабатывал, и передавал в компьютер информацию о вращении энкодера.
Шаг 3 . Разобраться, как можно программно управлять регулятором громкости. Наверняка есть какое-нибудь мультимедиа-API, которое позволяет это делать. Программа минимум – нужно написать программку, которая будет принимать сигналы от USB-устройства и управлять громкостью. Неплохо бы, конечно, написать драйвер, но за это браться страшновато. Лучше оставим на потом.
Итак, опишу процесс создания регулятора по шагам. Подробности опускаю, иначе будет слишком скучно. Кому интересно, см. исходники и документацию по ссылкам.
[Шаг 1. Создание низкоскоростного USB-устройства на макетке ]
Этот шаг прошел, даже не начавшись – как-то слишком просто и банально. Тупо скачал пример проекта по ссылке . Поправил файлик usbconfig.h – для понтов назвал мое устройство ENCODER DEMO , на большее фантазии не хватило. Проверил в Makefile тип проца (ATmega16), частоту кварца (16 МГц) – чтобы соответствовало моей макетке AVR-USB-MEGA16. Скомпилил проект в AVRStudio, прошил макетку, подключил к компьютеру – все завелось с полоборота, мое USB-устройство исправно заработало как виртуальный COM-порт – все в точности так, как написано в статье .
[Шаг 2. Подключить к USB-устройству энкодер ]
Этот шаг у меня вызывал самые большие опасения, что все заработает как надо. Что энкодер подключу и смогу его читать – в этом я не сомневался. Были сомнения, что смогу его считывать качественно, когда в фоне работает ещё и обработка протокола USB – все-таки это задача для микроконтроллера не из легких (как впоследствии оказалось – волновался я совершенно напрасно).
Как обычно, начал рыться в Интернете в поисках готовых подпрограмм для чтения энкодера. Нашел очень быстро то, что нужно – именно для AVR, очень простой код на C , файлики encoder.c и encoder.h. Что ни говори, а open source крутая штука.
Приделал два индикационных светодиода – ЗЕЛЕНЫЙ и ЖЕЛТЫЙ – для обозначения направления вращения энкодера. Подключил энкодер для удобства прямо к разъему ISP, воспользовавшись тем, что сигналы MOSI, MISO и SCK – это всего лишь ножки PB5, PB6 и PB7 микроконтроллера ATmega16 (подключил туда фазы A и B, а также кнопку энкодера).
Поправил определения ножек, добавил код инициализации. Присоединил к проекту модуль encoder.c. Добавил в главный цикл main управление зеленым и желтым светодиодами, когда приходит инфа с энкодера. КРАСНЫЙ светодиод привязал к кнопке энкодера – когда её нажимаем, красный светодиод зажигается, отпускаем – гаснет. Скомпилировал, прошил – работает. Кручу ручку влево, и в такт щелчкам энкодера вспыхивает зеленый светодиод. Кручу ручку вправо – вспыхивает желтый светодиод. Несмотря на то, что чтение энкодера происходит методом поллинга, благодаря эффективному коду к чтению энкодеру НИКАКИХ нареканий даже при одновременной работе с библиотекой V-USB (респект, Pashgan!). Добавил вывод информации от энкодера в виртуальный COM-порт (крутим энкодер влево вывожу в консоль минусики “-“, крутим вправо вывожу в консоль плюсики “+”). По таймеру каждые 10 мс вывожу состояние кнопки энкодера и индицирую её красным светодиодом (кнопка нажата – передаю символ “1”, отпущена – “0”). Все работает. Скукотища.
В заключение выкинул модули cmd.c, crc16.c, eepromutil.c, strval.c. Объем кода упал до 3 килобайт – отлично, теперь поместится и в память ATtiny45 (можно в будущем задействовать макетку AVR-USB-TINY45, она меньше по размерам и дешевле).
[Шаг 3. Разобраться, как можно программно управлять регулятором громкости ]
Как обычно, прогуглил вопрос. Отсеял кучу мусора, и наконец выгреб жемчужину – . Дальше дело техники. Достаю любимый детский конструктор – Visual Studio. Ни о чем не думая, визардом генерю dialog-based приложение. Бросаю на панель движок регулятора громкости, привязываю к нему переменную, добавляю обработчик положения движка. При старте приложения настраиваю движок на минимум 0 и максимум 65535 (чтобы соответствовало границам значения громкости, которым манипулируют библиотеки управления микшером). Считываю функцией mixerGetControlDetails текущее значение громкости, и ставлю движок регулятора в соответствующее положение. В обработчике положения движка все наоборот – читаю положение движка и функцией mixerSetControlDetails устанавливаю нужную громкость. Управление громкостью делаю в точности так, как написано в статье . Проверил – работает.
Теперь осталось дело за малым – читать, что приходит с виртуального COM-порта (на нём у нас висит свежеиспеченное USB-устройство с энкодером). Если пришел минусик (-) то двигаем движок влево (уменьшаем громкость), плюсик (+), то двигаем движок вправо (увеличиваем громкость). Если приходят символы 0 и 1, то соответственно управляем состоянием чекбокса (просто для индикации – нажата кнопка энкодера, или нет). С COM-портом можно работать, как с обычным файлом (см. ). Инициализируем подключение к COM-порту как открытие файла (вызовом ::CreateFile ) в блокирующем режиме. Запускаем отдельный поток, туда в бесконечный цикл добавляем чтение файла (блокирующим вызовом ::ReadFile ) по одному символу, и этот символ анализируем. По тому, какой символ пришел, крутим движок слайдера в нужную сторону (громкость будет регулировать обработчик слайдера) или обновляем состояние чекбокса. Проверил – работает.
Вот и все, собственно. Дальше можно заниматься бесконечным (и, наверное, бесполезным) улучшательством. Сделать автоматический поиск нужного виртуального COM-порта (сейчас для упрощения имя COM-порта передается через командную строку). Переделать USB-устройство с CDC -класса на HID – это может упростить код USB-устройства, а также упростить программный поиск и открытие устройства на компьютере по VID и HID. Или написать вместо программы сервис (чтобы не надо было запускать отдельную программу). Или даже драйвер. Это очень интересно, но не умею (может, кто из хабравчан научит уму-разуму?. .). Прикрутить к кнопке энкодера какое-нибудь действие. Ну и так далее до бесконечности.
Надеюсь, кому-нибудь мои изыскания пригодятся в собственных разработках. Если чего-нибудь упустил, буду рад выслушать замечания в комментариях.
[UPD120803 ]
Один грамотный человек собрал на микроконтроллере AVR
Инкрементальный энкодер внешне похож на потенциометр , но в отличие от потенциометра у него нет крайних положений, он может вращаться в обоих направлениях неограниченное количество оборотов. Также надо отметить, что инкрементальный энкодер вращается не так плавно как потенциометр, а шагами. Его можно увидеть на автомобильной магнитоле, осциллографе , музыкальном центре, стиральной машине и прочей технике, где регулировка какого-то параметра осуществляется в больших пределах. Конечно, параметры можно изменять и с помощью кнопок, например, для того чтобы сделать музыку на 20 значений громче, при управлении кнопкой, надо нажать её 20 раз, а при управлении энкодером, провернуть его на определённый угол, в зависимости от алгоритма обработки.
Инкрементальный энкодер представляет собой два контакта, порядок замыкания которых зависит от направления вращения .
По сути инкрементальный энкодер преобразует вращение вала в электрические импульсы , содержащие информацию о направлении вращения.
Давайте соберём тестовую схему изображенную на картинке выше и подключимся к выводу A и B осциллографом , резисторы подтяжки – 4.7К.
Покрутим энкодер по часовой стрелке.
Теперь против часовой.
На осциллограммах видно, что в зависимости от направления вращения, изменяется порядок замыкания контактов. Но фронта не всегда получаются такие красивые.
Так как контакты механические, они подвержены дребезгу, то есть при замыкании за счёт упругости материалов, возникают многократные неконтролируемые замыкания и размыкания, которые можно увидеть на осциллограмме выше.
Бороться с дребезгом можно двумя способами, первый состоит в добавлении конденсаторов и резисторов, как показано на картинке ниже.
Так как дребезг явление кратковременное, он легко гасится конденсатором.
На осциллограмме видно, что после установки конденсаторов, фронты стали менее крутыми, а дребезг исчез.
Второй способ – программный и тут всё зависит от реализации опроса выводов энкодера. Если состояние энкодера отслеживается с помощью внешних прерываний , то после срабатывания прерывания необходимо сделать задержку 20 – 30 миллисекунд, во время которой МК не будет реагировать на изменение состояния вывода, то есть не будет чувствовать дребезг. Если опрос выводов энкодера реализован на таймере , то интервал между опросами должно быть больше длительности дребезга, те же 20 -30 миллисекунд.
Давайте рассмотрим методы обработки данных, приходящих с энкодера .
Первый метод, заключается в том, что одну из ножек энкодера мы подключаем к выходу внешних прерываний и настраиваем её на прерывание по спадающему фронту. В прерывании мы проверяем состояние другой ножки и если на ней ноль, то вращение происходит в одну сторону, иначе в другую. Ниже приведён код, реализующий этот метод для AVR.
#include
ISR(INT2_vect)
{
if (PINB & 0X02)
{
PORTB |= (1При повороте энкодера в одну сторону светодиод загорается, при повороте в другую – гаснет.
Второй метод, заключается в сравнении текущего состояния и предыдущего . Давайте выразим логические уровни последовательности импульсов в виде нулей и единичек.
Тогда мы получим конечное число состояний энкодера. Первая цифра – логический уровень первого вывода энкодера, вторая – логический уровень второго вывода.
Предположим последнее состояние в котором находился энкодер равно трем, если следующее состояние будет равно единице, то он вращается в одну сторону, если двум, то в другую. Получается, что можно фиксировать переход из одного состояние в другое и определять направление вращения, но наиболее простой является реализация при переходе от 11 к 01 и 10. Ниже приведён код реализующий описанный алгоритм для AVR,
#define F_CPU 8000000UL
#include
#include
uint8_t last_state = 0;
ISR(TIMER0_COMP_vect)
{
//оба вывода энкодера подключены к 2 и 3 выводу порта B
//считываем их состояние
uint8_t current_state = (PINB & 0x06)>>1;
//учитываем переход только если пред. состояние 11
//и если оно не равно новому
if ((last_state == 3) && (last_state != current_state))
{
//если новое сост 01 – включаем светодиод
if(current_state == 1)
{
PORTB |= 0x01;
}
//если новое сост 10 – гасим светодиод
if(current_state == 2)
{
PORTB &= ~0x01;
}
}
//при выходе из прерывания текущее состояние становится прошлым
last_state = current_state;
}
int main(void)
{
//два входа для подключения энкодера
DDRB &= ~0x06;
//подтягиваем входы к питанию
PORTB |= 0x06;
//выход для подключения светодиода
DDRB |= 0x01;
//настраиваем таймер по в режим сброс по совпадению
TCCR0=(1На этом всё.
Энкодер покупал
В этой статье пойдет речь о энкодере и о том как его подключить к микроконтроллеру. Встретить его можно в таких устройствах как аудиосистемы, стиральные машины, микроволновкой и ряде современных устройств. К примеру в аудиосистемах энкодеры и микроконтроллеры используются для регулировки громкости. Но ладно хватит уже воды, давайте ближе к делу.
Энкодер или как его еще называют датчик угла поворота – представляет собой электромеханическое устройство, которое преобразует положение угла вала в электрический сигнал. Энкодеры делятся на 2 типа абсолютные и инкрементные.
В инкрементных энкодерах при повороте вала формируются импульсы, количество этих импульсов пропорционально углу поворота вала. Если подсчитать эти импульсы то можно узнать угол поворота вала энкодера. Если ручка энкодера находится в покое то импульсы не формируются. Такие энкодеры широко применяются в аудио системах и промышленных средствах управления.
Абсолтные энкодеры имеют совершенно другой принцип дейставия, основаная на выдачи уникального кода каждому положению вала. Формирование импульсов происходит когда вал вращается и когда он в покое. Причем информация о текущем положения вала, сохранится даже после прекращения подачи напряжения.
В нашем примере мы подключим инкрементный энкодер с микроконтроллером. Энкодер PEC12 422OF SOO24 который имеет 24 импульса за 1 оборот.
Энкодер имеет 5 выводов, 3 из них это выводы самого энкодера, а другие два это кнопка. У выводов энкодера одни вывод общий а 2 другие сигнальные. Схема подключения ничем не отличается от схемы подключения обычной кнопки. Сигнальные выводы подключаются в портам ввода/вывода микроконтроллера. А общий вывод котоый посередине соединяется к земле. С целью защиты от дребезга контактов можно добавить конденсаторы емкостью несколько нФ. Выводы к которым мы подключили энкодер настраиваем в программе как входы и включаем подтягивающие резисторы, можно подключить внешние резисторы.
Схема подключения энкодера к микроконтроллеру
Принцип действия энкодера основан на замыкании и размыкании контактов, когда ручку никто не крутит то на входе в МК имеется логическая еденица. Когда ручку начинают поворачивать то появляются два прямоугольных импульса которые сдвинуты друг относительно друга. От того в какую сторону крутим будет зависить какой сигнал опережает.
Но так как имеется друбезг контактов в любых картина будет выглядить следующим образом.
Алгоритм работы программы микроконтроллера
С определенным интервалом начинается вызов функции опроса энкодера. Эта функция считывает логические уровни, которые присутсвуют на выводах микроконтроллера и производит запись этого значения во временную переменную. Внутри функции опроса энкодера существует другая статичная переменная которая сохраняется при выходе из этой функции в ней хранится последовательность предыдуших значений. Из этой переменной берется последнее записанное значение и сравнивается с текущим для того чтобы определить были ли изменения. Если эти значения равны тот происходит выход из функции, а если они отличаются то значение статичной переменной сдвигается на 2 разряда влево и в “свободное” место записывается новое (текущее) значение.
Получается что когда вал энкодера вращается то во временную переменную будет постоянно записываться новое значение и получится повторяющаяся кодовая последовательность. Если вращаем вправо булед: 11100001, а если влево то 11010010. По этим значениям можно понять в какую сторону крутится вал.
В архиве есть 2 файла encoder.h и encoder.c. Изначалоно нужно задать порт и номер выводов к которым производится подключение это переменные LEFT_SPIN и RIGHT_SPIN. В файле “c” находится реализация функций.
Стандартная распиновка
ЭЛЕКТРИЧЕСКИЙ ИНТЕРФЕЙС
СТАНДАРТНАЯ ВЫВОДКА NUTEC
Интерфейсные разъемы энкодера, двигателя и предела являются стандартными разъемами типа DB. Пол интерфейса сборки сцены – «папа», что позволяет штыревому соединению с нашим MICROMATIC-9, где находятся «штыри».
DB25 | ЭНКОДЕР |
1 | 5 В постоянного тока, источник питания |
2 | Земля |
15 | Щит |
3 | А + |
16 | А – |
4 | В + |
17 | Б – |
5 | C +, индекс |
18 | C -, Ссылочный индекс |
8 | Нет соединения |
19 | Нет соединения |
21 | Лимит + |
9 | Лимит – |
22 | Земля * / Нет подключения |
23 | HED U * / Нет подключения |
11 | HED V * / Нет подключения |
24 | HED W * / Нет подключения |
25 | 5 В постоянного тока * / Нет подключения |
* | Заказывается как опция В противном случае НЕТ ПОДКЛЮЧЕНИЯ |
DB15 | ДВИГАТЕЛЬ |
1 | Фаза 1 / R |
2 | Фаза 2 / S |
3 | Фаза 3 / T |
4 | Моторная земля |
9 | Фаза 1 / R ** |
10 | Фаза 2 / S ** |
11 | Фаза 3 / T ** |
12 | Заземление двигателя ** |
** | LX10, приложения с высокими нагрузками |
DB9 | Пределы |
1 | Питание, от 5 до 24 В постоянного тока |
6 | Земля |
2 | Лимит – (CW) |
7 | Питание, от 5 до 24 В постоянного тока |
3 | Земля |
8 | На главную / Индекс |
4 | Питание, от 5 до 24 В постоянного тока |
9 | Земля |
5 | Лимит + (CW) |
РАЗЪЕМ
Энкодер
Положение линейной / поворотной шкалы, индекс и пределы
Стандартно с LINEAX, Theta4 и TMax. Заказ как опция для Flexdrive.
являются дифференциальными квадратурными сигналами положения и индекса, совместимы с RS422 и соответствуют спецификации интерфейса шины EIA-422/485. Соответствие RS422 диктует, что логика составного дифференциального сигнала должна находиться в диапазоне напряжений от 2 до 6 вольт.
Эти пределы – ВЫСОКИЙ Истинный, «нормально замкнутый». В этой конфигурации любой обрыв провода остановит движение, что является дополнительной защитой для обеспечения целостности сигнала.
Все вышеупомянутые ссылки на INDEX вызывают сигнал для определенной отметки “нуля” оси.Сообщество использует любое из следующих имен: C, HOME, INDEX, REFERENCE и Z.
HED s для коммутации можно заказать в качестве опции.
В противном случае эти контакты должны иметь статус «Нет соединения» или не использоваться.
Контакт 19 используется для тестирования и не должен подключаться.
Двигатель
Трехфазные бесщеточные серводвигатели включают фазы 1, 2 и 3, иногда называемые R, S и T.
Заземление должно быть подключено к усилителю или его заземлению шасси.
BSM рекомендуются для использования на поворотных ступенях серии Flexdrive и RT.
Лимиты
Внешний регулируемый
Заказывается как опция с поворотными ступенями серии Flexdrive и RT.
Стандартная конфигурация – это ограничения, подключенные HIGH True, и ток поступает от элемента управления. Смысл в том, что сам концевой выключатель обеспечивает путь заземления, когда движение разрешено. Если ось движется до предела, путь прохождения сигнала прерывается, и предел «подтягивается» вверх на элементе управления, и движение останавливается. В этой конфигурации любой обрыв провода останавливает движение, что является дополнительной защитой для обеспечения целостности сигнала.Это «нормально закрытое» поведение.
В качестве опции заказываются до трех внешних ограничителей. Внешние ограничения могут питаться от источника питания напряжением от 5 до 24 В. Конфигурация по умолчанию работает как выход Light –ON. Свяжитесь с заводом-изготовителем для конфигурации Dark-ON во время заказа.
Переключатель типа NPN
50 мА Макс.токаток
Нормально замкнутый режим
Водонепроницаемое соединение
Для влажных процессов можно заказать водостойкие многополюсные, двухтактные защелкивающиеся соединители.Они включают в себя внутреннюю втулку и два уплотнения для предотвращения проникновения твердых частиц или жидкостей в корпус, образованный неподвижной муфтой.
ЭЭГ 2К.4 | ДВИГАТЕЛЬ |
1 | Фаза 1 / R |
2 | Фаза 2 / S |
3 | Фаза 3 / T |
4 | Моторная земля |
ЭЭГ 12К. 12 | ЭНКОДЕР |
1 | 5 В постоянного тока, источник питания |
2 | Земля |
3 | А + |
4 | А – |
5 | В + |
6 | Б – |
7 | C +, индекс / ссылка + |
8 | C -, Индекс / Ссылка – |
9 | Лимит – |
10 | Лимит + |
11 | Тест |
12 | Щит |
ЗАЗЕМЛЕНИЕ И ЭКРАН ПРОВОДА
ЗАЗЕМЛЕНИЕ
Micromatic-9 предназначен для ввода / вывода с синхронизацией положения для прецизионных лазерных опалубок и других приложений. Используя стандартный ввод / вывод, Micromatic-9 имеет высокоскоростные выходы сравнения положения, позволяющие управлять выходом, запускаемым по фактическому положению. Схема сработает в течение 100 нс после достижения желаемой позиции. Выходной порт сравнения положения обеспечивается технологией быстрого привода CMOS. Сравнение позиций программируется детерминированно или недетерминированно в ПЛК фонового процесса. Программисты с графическим интерфейсом могут читать / писать из общей оперативной памяти для постоянно меняющихся требований к пути и управлению. Никакого дополнительного оборудования не требуется.
ПОЗИЦИОНЕР ЗАЗЕМЛЕНИЕ
Столик или позиционер могут сами проводить некоторый шумовой сигнал. Прикрепите заземляющий браслет к столу или положению, используя предоставленное неокрашенное, неанодированное отверстие с резьбой M4. Ремень заземления обеспечит дренажный путь к заземлению.
ЭКРАН
Как правило, рекомендуется экранировать все провода, по которым проходят сигналы низкого уровня. Это особенно важно, если провода уровня сигнала проходят рядом с проводами уровня мощности, такими как провода двигателя или провода реле.При экранировании проводов подключайте только один конец экрана, предпочтительно конец источника. Соединение обоих концов экрана приведет к образованию контуров заземления. Рекомендуется изолировать неподключенный конец экрана, чтобы предотвратить случайное подключение.
Распиновка разъема конвертера кодировщикаFanuc Распиновка разъема конвертера кодировщика
FanucРазъемы:
P1 – вход квадратурного энкодера. |
| ||||||||||||||||||||||
P2 – это вход для специальных сигналов коммутации Fanuc. Пины бывают следующие: |
| ||||||||||||||||||||||
P3 – это выход для восстановленных сигналов квадратурного энкодера. Пины следующие: |
| ||||||||||||||||||||||
P4 – выходной сигнал коммутации (Холла), совместимый с промышленностью. Пины следующие: |
|
Перемычки JP1, JP2 и JP3 должны быть справа (от P1).JP4 – JP8 должен быть слева (в сторону P2). Когда перемычка JP12 установлена, преобразователь не будет использовать квадратурный энкодер для уточнения коммутации, а будет использовать только сигналы B1 – B4. Это приведет к грубой работе мотора. Это полезно, если возникает вопрос, было ли выбрано правильное разрешение энкодера с помощью перемычек JP9 – JP11. Если JP12 удален, преобразователь переключится на использование счетчика квадратурного энкодера, как только увидит первый индексный импульс. Платы более поздних версий также имеют JP13, который должен быть установлен для стандартных энкодеров и удален для энкодеров «ABS». |
Светодиод D4 (зеленый) указывает, что индексный импульс энкодера был обнаружен, и счет квадратурного энкодера используется для генерации сигналов коммутации. Когда D4 темный, это означает, что индекс еще не был обнаружен с момента включения питания, и собственные сигналы Fanuc B1 – B4 используются для генерации сигналов коммутации UVW. D3 показывает состояние выхода U. D2 показывает состояние выхода V. D1 показывает состояние выхода W. |
JP9 | JP10 | JP11 | РазрешениеЛинии / оборот |
IN | IN | IN | 1000 |
OUT | IN | IN | 2000 |
IN | OUT | IN | 2500 |
OUT | OUT | IN | 3000 |
IN | IN | OUT | 10000 |
Макет платы |
разъемы для энкодера с 17-контактным разъемом
разъемы для энкодера с 19-контактным разъемом
К дому
Схема расположения выводов микросхемы радиочастотного кодера HT12E, применение, примеры и техническое описание
HT12E – это в основном микросхема кодировщика для радиочастотных и ИК модулей. Это 12-битный декодер, который использует 8 бит для адреса и 4 для данных. Модули RF и IR могут напрямую взаимодействовать с микроконтроллерами, что требует немного сложного программирования. Кроме того, этот кодировщик IC прост в реализации и прост в использовании. Поставляется с 18 и 20 контактами. Оба пакета имеют всего 18 функциональных контактов. Кроме того, этот кодировщик будет использовать логические состояния в качестве входных данных и адресов. HT12E не работает в одиночку. Это только кодировщик и одна сторона коммуникатора. Напротив, вторая часть коммуникатора использует декодер HT12D.Короче говоря, HT12D является наиболее подходящим декодером для HT12E, потому что оба являются 12-битными и имеют одинаковое количество контактов и контактов данных.
Схема расположения выводов кодировщикаHT12E
Описание конфигурации контактов
Адресные контакты
ШТЫРЬ | ВНУТРЕННИЕ СОЕДИНЕНИЯ | ПОДРОБНЕЕ | |
---|---|---|---|
A0 | Штифт 1 | Схема CMOS с входным резистором Pull-UP и затвором передачи NMOS с защитой диода | Pin1 to Pin 8 – это адресные контакты. Логическое состояние этих выводов устанавливает 8-битный адрес. 8-битный адрес имеет 256 различных комбинаций. Любая из комбинаций может использоваться в качестве адреса. В большинстве случаев все эти контакты подключены к земле или к источнику питания, что делает все биты адреса одинаковыми. Подходит в случае открытого общения. Конкретный адрес должен использовать безопасную связь. |
A1 | Штифт 2 | ||
A2 | Штифт 3 | ||
A3 | Штифт 4 | ||
A4 | Штифт 5 | ||
A5 | Штифт 6 | ||
A6 | Штифт 7 | ||
A7 | Штифт 8 |
Контакты кодирования и питания
ШТЫРЬ | ВНУТРЕННИЕ СОЕДИНЕНИЯ | ПОДРОБНЕЕ | |
---|---|---|---|
VSS | Штифт 9 | – | Контакт 9 – это общий контакт заземления энкодера. Контакт заземления необходимо подключить к внешнему устройству, чтобы он мог работать с энкодером. |
AD8 | Штифт 10 | СхемаCMOS с входным подтягивающим резистором и затвором передачи NMOS с защитой диода | Выводы 10 – 13 – это выводы данных энкодера. Кодер передает 12-битные данные, которые имеют 8-битный адрес и 4-битные данные. Эти выводы можно использовать с любым микроконтроллером или ИС, потому что для ввода данных на выводы данных требуется только состояние логики. |
AD9 | Штифт 11 | ||
AD10 | Штифт 12 | ||
A11 | Штифт 13 | ||
ТЭ ’ | Штифт 14 | Схема CMOS с высокими входными подтягивающими резисторами | Штырь 14 известен как штифт включения передачи. Контакт разрешения передачи позволяет передавать данные от входа данных к контактам вывода данных. Он действует только как переключатель, позволяющий контролировать передачу данных с использованием внешних устройств. |
OSC2 | Штифт 15 | – | Контакт 15 – это выходной контакт генератора энкодера. В HT12E есть внутренний генератор, и для работы ему требуется внешний резистор 1M, который можно подключить к выводу OSC2. Внешний генератор можно использовать на выводе OSC2. |
OSC1 | Штифт 16 | – | Контакт 16 – это входной контакт генератора энкодера. Вывод OSC1 будет использоваться с входом внешнего генератора или вторым выводом резистора 1M. |
DOUT | Штифт 17 | Выходной сигнал CMOS | Контакт 17 – это контакт вывода данных HT12E. 12-битные данные будут поступать с вывода DOUT, и этот вывод будет подключаться к внешнему устройству передачи. |
VDD | Штифт 18 | – | Вывод 18 – это вывод питания энкодера. Напряжение на этом выводе сделает ИС работоспособной. |
Характеристики кодировщика HT12E
- Кодер может кодировать 4 слова за один раз. Технология
- CMOS делает кодировщик устройством с низкой помехоустойчивостью.
- Для работы встроенного генератора HT12E требуется только 5% резистор. Модули
- RF и IR можно использовать напрямую с энкодерами.
- Доступен в двух пакетах: SOP и DIP.
- Кодер может преобразовывать 4-битные данные в последовательные данные.
Технические характеристики кодировщика HT12E
- Диапазон рабочего напряжения энкодера от 2,4 до 12 В.
- Кодировщик использует 0.Ток 1 мкА при 5 В в режиме ожидания.
- Только 256 различных комбинаций адресов можно использовать с HT12E
Лист данных кодировщика HT12E
Приложения кодировщика HT12E
- В системах дистанционного управления широко используется этот кодировщик для кодирования данных для передачи.
- В последнее время производство Интернета вещей значительно увеличилось. Большинство интеллектуальных систем обмениваются данными друг с другом по беспроводной сети, в которой также есть HT12E, чтобы избежать нагрузки в Интернете.
- Дымовая и строительная сигнализация кодируют свои сообщения с помощью HT12E.
Блок-схема
На следующей схеме представлена внутренняя структура HT12E.
HT12E кодирование работает
Основная функция кодировщика – кодировать 12-битные параллельные входные данные и затем пересылать их на выходной контакт. В этих 12 битах 8 из них будут поступать с контактов адреса, а остальные – с контактов ввода данных.Пины адреса – восемь цифр, которые описывают адрес закодированного сигнала. Большинство устройств, подключенных к кодировщику, транслируют только сигнал. Широковещательный сигнал имеет адрес, который идентифицируется декодером для приема данных. Адрес похож на защиту системы связи. В тех случаях, когда два принимающих или отправляющих конца имеют один и тот же адрес, устройства начинают связываться друг с другом.
Выводы данных
Следующая часть – выводы данных.Этих контактов 4, и эти четыре контакта описывают данные в кодированном сигнале. Кодированный сигнал получает адрес и данные в основном в виде логических состояний. Благодаря наличию микроконтроллеров и других интеллектуальных устройств входной сигнал может подаваться через их контакты GPIO. Чтобы использовать энкодер с внешними устройствами, всегда проверяйте их напряжение, иначе энкодер может быть поврежден.
Как использовать кодировщик HT12E
HT12E дает возможность управлять передачей с помощью внешних сигналов.Большую часть времени контрольный штифт остается активным, но в особых случаях безопасности это можно контролировать. Сигнал энкодера всегда кодируется со скоростью осциллятора. В HT12E есть внутренний генератор, для которого требуется внешний 5% резистор, но в случае высокоскоростного генератора эти выводы могут быть соединены с внешними генераторами. Выходные данные кодировщика будут в последовательной форме. Эти последовательные данные могут быть отправлены по проводам или любым третьим устройством, таким как IR или RF и т. Д. Для использования кодировщика используется следующая общая схема:
HT12E Пример кодера
В удаленном HT12E широко доступен. Вы можете заметить, что на пульте дистанционного управления есть несколько кнопок, и каждая из них выполняет разные функции. Каждая кнопка пульта дистанционного управления отправляет различные входные данные на кодировщик, а затем кодировщик передает их на выходной контакт. Иногда вы можете заметить, что разные устройства не взаимодействуют друг с другом, это связано с конкретным адресом. Эти адреса заставляют их работать с желаемыми устройствами. Здесь схема ИК-передатчика с кодировщиком, но такая же схема может быть сгенерирована для РЧ, просто заменив ИК-передатчик.
Пример взаимодействия с Arduino
В дополнение к приведенному выше примеру схемы, вы также можете увидеть этот пример на интерфейсе ИК-передатчика и приемника с Arduino.
Проблемы безопасности
HT12E использует адрес для передачи передаваемых данных. Этот адрес может состоять только из 256 комбинаций 8-бит. Это ограничивает возможности устройства. В большинстве случаев сгенерированный сигнал связан с проблемой кражи. Потому что сигнал транслируется и не может отследить прием.Адрес сигнала может угадать любой приемник.
Это ограничение адреса делает использование HT12E подходящим только на меньшем расстоянии. На более коротком расстоянии отправитель и получатель могут видеть друг друга, например, пульт от телевизора, домашняя безопасность и т. Д. В большинстве случаев контакты адреса используют одно и то же логическое состояние и работают, и избегают использования сложного адреса в качестве входа. . Вы можете заметить, что в коммерческих продуктах некоторыми автомобилями с дистанционным управлением можно управлять с одного пульта одновременно. Потому что они предназначены для меньшего расстояния и позволяют избежать сложного ввода адреса и дают один и тот же адрес всем устройствам.
Схема 2D
|
| |||||||
|
| |||||||
|
| |||||||
|
|
Металлический мотор-редуктор 19: 1 37Dx52L мм 12В с кодировщиком 64 CPR (без заглушки)
Обзор
Уведомление о прекращении производства: Эти мотор-редукторы были заменены функционально идентичными версиями с пластиковыми торцевыми крышками над энкодерами (они используют тот же двигатель, энкодер и редукторы).Защитные заглушки на новых версиях можно легко снять, чтобы получить почти те же размеры, что и в старых версиях без заглушек, но есть немного базового пластика, который останется, как показано на правом рисунке ниже.
|
|
Этот мощный щеточный мотор-редуктор постоянного тока доступен с шестью различными передаточными числами и оснащен встроенным квадратурным энкодером с 64 отсчетами на оборот (CPR) вала двигателя. Часть двигателя и энкодера доступна отдельно (без коробки передач), также доступны версии без энкодера.
Примечание: Указанные крутящие моменты и токи останова являются теоретическими экстраполяциями; агрегаты обычно останавливаются задолго до этих точек, поскольку двигатели нагреваются.Остановка или перегрузка мотор-редукторов может значительно сократить срок их службы и даже привести к немедленному повреждению. Рекомендуемый верхний предел для постоянно прилагаемых нагрузок составляет 10 кг-см (150 унций-дюймов), а рекомендуемый верхний предел для мгновенного крутящего момента составляет 25 кг-см (350 унций-дюймов). Остановки также могут привести к быстрому (потенциально порядка секунд) тепловому повреждению обмоток и щеток двигателя; общая рекомендация для работы щеточного двигателя постоянного тока составляет 25% или менее тока останова.
Эти двигатели предназначены для использования при напряжении 12 В, хотя, как правило, эти двигатели могут работать при напряжениях выше и ниже номинального напряжения (они могут начать вращаться при напряжении от 1 В).Более низкие напряжения могут оказаться непрактичными, а более высокие напряжения могут отрицательно сказаться на сроке службы двигателя.
Подробная информация о товаре # 1442
Точное передаточное число: `(25 × 30 × 30) / (10 × 10 × 12) = bb (18,75: 1)`
Принадлежности для мотор-редукторов
Лицевая панель имеет шесть крепежных отверстий, равномерно распределенных по внешнему краю с резьбой для винтов M3. Эти монтажные отверстия образуют правильный шестиугольник, а центры соседних отверстий находятся на расстоянии 15,5 мм. У нас есть два кронштейна для этих мотор-редукторов: штампованный алюминиевый L-образный кронштейн (продается парами) и более прочный алюминиевый кронштейн, обработанный в стиле надгробия (продается отдельно):
|
|
Выходной вал редуктора диаметром 6 мм работает с универсальной алюминиевой монтажной ступицей Pololu для валов 6 мм, которую можно использовать для установки наших больших колес Pololu (диаметром 80 и 90 мм) или нестандартных колес и механизмов на выходной вал мотор-редуктора. как показано на левом рисунке ниже.В качестве альтернативы вы можете использовать наш 6-миллиметровый переходник для колеса скутера, чтобы прикрепить многие обычные колеса для скутеров, скейтбордов и роликовых коньков к выходному валу мотор-редуктора, как показано на правом рисунке ниже:
|
|
Наконец, наш 12-миллиметровый шестигранный адаптер для вала 6 мм (также доступен в расширенной версии) позволяет использовать эти двигатели со многими распространенными радиоуправляемыми колесами, включая колеса Dagu Wild Thumper:
Адаптер для шестигранного колеса 12 мм для вала 6 мм, соединяющего колесо Wild Thumper с металлическим мотор-редуктором 37D мм. |
---|
Размеры
На схеме ниже показаны размеры (в мм) мотор-редукторов серии 37D мм.Значение X
составляет 22 мм для версий 19: 1 37Dx52L мм и 30: 1 37Dx52L мм, 24 мм для версий 50: 1 37Dx54L мм и 70: 1 37Dx54L мм и 26,5 мм для версий 100: 1 37Dx57L мм и 131: 1 37Dx57L мм. Обратите внимание, что печатная плата энкодера и магнитный диск не показаны на этой размерной диаграмме. Узел энкодера выступает еще на 12,5 мм за заднюю часть двигателя.
Размеры металлического мотор-редуктора 37D мм (единицы измерения в мм). |
---|
Предупреждение : Не ввинчивайте слишком глубоко в монтажные отверстия, так как винты могут задеть шестерни. Мы рекомендуем ввинчивать в отверстие для винта не более 3 мм (1/8 дюйма).
Металлический мотор-редуктор 37D мм с энкодером 64 CPR (без торцевой крышки). |
---|
Использование кодировщика
Двухканальный энкодер на эффекте Холла используется для определения вращения магнитного диска на заднем выступе вала двигателя.Квадратурный энкодер обеспечивает разрешение 64 отсчета на оборот вала двигателя при подсчете обоих фронтов обоих каналов. Чтобы вычислить количество оборотов на выходе редуктора, умножьте передаточное число на 64. Двигатель / энкодер имеет шесть размеченных цветом, 11 дюймов (28 см) выводов, оканчивающихся гнездовым коллектором 1 × 6 с шагом 0,1 дюйма, так как показано на основном изображении продукта. Этот разъем работает со стандартными штекерными разъемами 0,1 ″ и нашей вилкой-перемычкой и предварительно обжатыми проводами. Если этот разъем не подходит для вашего приложения, вы можете вытащить обжатые провода из разъема или отрезать разъем.В следующей таблице описаны функции проводов:
Цвет | Функция |
---|---|
Красный | мощность двигателя (подключается к одной клемме двигателя) |
Черный | мощность двигателя (подключается к другой клемме двигателя) |
зеленый | энкодер GND |
Синий | энкодер Vcc (3,5 – 20 В) |
Желтый | энкодер A выход |
Белый | выход энкодера B |
Для датчика Холла требуется входное напряжение Vcc в диапазоне 3. 5 и 20 В и потребляет максимум 10 мА. Выходы A и B представляют собой прямоугольные волны от 0 В до Vcc, сдвинутые по фазе примерно на 90 °. Частота переходов сообщает вам скорость двигателя, а порядок переходов указывает направление. На следующем снимке осциллографа показаны выходы энкодера A и B (желтый и белый) при напряжении двигателя 12 В и Vcc датчика Холла 5 В:
Выходы энкодера A и B для металлического мотор-редуктора 37D мм с энкодером 64 CPR (двигатель 12 В, работающий при 12 В). |
---|
Путем подсчета фронтов нарастания и спада выходов A и B можно получить 64 отсчета на оборот вала двигателя. Использование только одного фронта одного канала приводит к 16 отсчетам на оборот вала двигателя, поэтому частота на выходе A в приведенном выше снимке осциллографа в 16 раз превышает частоту вращения двигателя.
Выбор правильного мотор-редуктора
Мы предлагаем широкий выбор металлических мотор-редукторов с различными комбинациями скорости и крутящего момента. Наша таблица сравнения металлических мотор-редукторов поможет вам найти двигатель, который наилучшим образом соответствует требованиям вашего проекта.
Некоторые металлические мотор-редукторы Pololu. |
---|
Люди часто покупают этот товар вместе с:
Схема энкодераУгловой энкодер имеет фиксированное количество позиций на оборот. Кнопка и поворотный энкодер подключаются к микроконтроллеру с помощью контактов PB3, PB4 и PB5.Кнопка и поворотный энкодер подключаются к микроконтроллеру с помощью контактов PB3, PB4 и PB5. SW – это… Вы можете увидеть формы выходного сигнала инкрементального поворотного энкодера и ожидаемую последовательность битов ниже. VCC зависит от производителя кодировщика, но обычно составляет 5 В. Некоторые энкодеры имеют GND, + V, SW, DT, CLK. Как уже говорилось, поворотный энкодер имеет 2 кодирующих контакта: ВЫСОКИЙ (1) или НИЗКИЙ (0). Вместе сигналы A и B указывают как возникновение, так и направление движения. Два выходных контакта подключены к D9 и… Модуль РОТАЦИОННОГО ЭНКОДЕРА представляет собой пятиконтактное устройство, как показано на распиновке M274. Не стесняйтесь приходить к нам в любое время в наши обычные часы работы. Ниже вы можете увидеть схему распиновки этого 24-ступенчатого 9-миллиметрового поворотного энкодера с колесом прокрутки мыши. Проект легко заменяет механический потенциометр. Инкрементальный энкодер генерирует два выходных сигнала, пока его вал вращается, что также называется квадратурным выходом. Это будет полезно для моих будущих проектов, где мне нужно установить разные целевые значения и выполнить что-то на основе этих значений.// Примечание: если выбрано меню, “>” становится “X”. В кнопке используется резистор 4,7 кОм. // Если нам разрешено обновлять ЖК-дисплей … // … также, если одно из меню уже выбрано … // сбрасываем переменную – ждем нового триггера, // сбрасываем переменную – ждем для нового триггера // —– MENU1 ————————————- ————————-, // Если последнее и текущее состояние CLK различны, то возник импульс, // Если состояние DT равно отличное от состояния CLK, // энкодер вращается в направлении A, поэтому мы увеличиваем, // энкодер вращает направление B, поэтому уменьшаем, // — MENU2 ————- ————————————————– , // Энкодер вращается в направлении B, поэтому уменьшите, // — MENU3 ——————————- ——————————–, // — МЕНЮ4 ———– ————————————————– —, // СЧЕТЧИК МЕНЮ —————————————— ———————————-, // Обновляем ЖК-дисплей после изменения значения счетчика, // меняем статус переменной на противоположный, // Обновить ЖК-дисплей на корме er изменение значения меню, // это значения, которые не изменяют операцию, // стираем содержимое, печатая пробел над ним, // выводим значение переменной menu1_Value, // это проверяет значение счетчика (0, 1, 2 или 3), // Когда выбрано меню, “>” становится “X”. Клемма кнопки поворотного энкодера подключена к контакту 4 Arduino, с помощью этой кнопки мы можем изменить направление вращения двигателя. Серия Серия выходных фотоэлементов Тип Размер Нажимной переключатель Номинальные характеристики (макс.) Поскольку документации по набору датчика Киза мало. К энкодеру подключены 2 конденсатора по 100 нФ. Успешное внедрение поворотного энкодера в любой проект требует четкого понимания всего, что имеет … Поворотный энкодер, используемый в KY-040, выглядит как устройство Bourns PEC11L – вы можете скачать это техническое описание поворотного энкодера по ссылке ниже.Я снял энкодер с печатной платы, так как это было единственное, что нужно для моего проекта. Входы A и B должны быть объявлены INPUT_PULLUP, а не INPUT. Управление двигателем постоянного тока с помощью энкодера и кода Arduino: штырь A (CLK) и штырь B (DT) энкодера подключены к контактам 2 и 3 Arduino UNO соответственно. Один находится между контактами CLK и GND, а другой – между контактами DT и GND. Выводы для этого поворотного энкодера показаны на рисунке ниже: Модуль спроектирован таким образом, что выводится низкий уровень, когда переключатели замкнуты, и высокий, когда переключатели разомкнуты.Например, вы можете захотеть иметь возможность между грубой и точной настройками. Поворотный энкодер имеет 5 контактов в порядке, указанном на этикетке выше. В зависимости от направления один из сигналов опережает другой. Схема такая простая. Квадратурные энкодеры могут использовать различные типы датчиков, обычно используются как оптические, так и эффекты Холла. Техническое описание поворотного энкодера Arduino. Количество импульсов или шагов, генерируемых за полный оборот, варьируется. простой энкодер без использования микроконтроллера (мкС).В списках eBay и Aliexpress часто упоминается Arduino в… Эта функция полезна, если вы хотите изменить функцию переключения. Схема этого модуля представлена ниже. Конфигурация выводов этого энкодера следующая: CLK = A, DT = B, + V = 5V для подтягиваний. Контакты «данных» (A-B) подключены напрямую к контактам 1 и 8 микросхемы MX8733. Энкодер может быть установлен непосредственно на валу двигателя или выполнен в виде модуля. Надеемся, что для Ultimakers это будет … Есть ли у кого-нибудь схема и пример кода для подключения этого поворотного энкодера с кнопкой к arduino leonardo: общий вывод энкодера должен быть на + 5В, а не на землю.Довольно просто… Все, что вам нужно сделать, это подключить к модулю четыре провода. В имеющемся у нас модуле Keyes таких позиций тридцать. Единственное взаимодействие с пользователем – это толкаемый кодировщик. Поворотный энкодер Sparkfun имеет 12 шагов, но у других может быть больше или меньше. Два (1 и 2) контакта на самом деле являются кнопками, где 1 заземлен, а 2 действует как переключатель, в то время как на стороне кодировщика угловые контакты (3 и 5) подключены к плате Arduino, тогда как средний контакт кодера … Фотография показывает внутреннюю часть коробки передач Rover 5.Привет, мир! Высокий уровень генерируется входом питания 5 В и подтягивающими резисторами, так что CLK и DT имеют высокий уровень, когда переключатели разомкнуты. Выходной сигнал абсолютного энкодера показывает текущее положение вала, что делает его… Получите его сразу во вторник, 9 февраля. На рынке слишком много энкодеров, и все они имеют базовый принцип вывода A, B, как показано на рисунке 12.1. Когда переключатель соединяет контакт A с контактом C, а другой переключатель соединяет контакт B с контактом C. В каждом положении энкодера оба переключателя либо разомкнуты, либо замкнуты.Поворотный энкодер Keyes KY-040 представляет собой поворотное устройство ввода (как в ручке), которое обеспечивает индикацию того, насколько повернута ручка И в каком направлении она вращается. Схема этого модуля представлена ниже. Это схема панели, которая работает с Marlin под определением «NEWPANEL». Схема поворотного энкодера Keyes Схема этого модуля представлена ниже. Это простой эскиз, который показывает, как рассчитать положение энкодера и как определить направление вращения.Этот угловой энкодер (как и его аналоги) имеет два выхода, каждый из которых выдает цифровые импульсы на оборот. 5 светодиодов показывают уровень громкости или настройки баланса, в зависимости от состояния индикатора режима… 16,99 $ 16. Управляйте соответствующими данными. В них четыре контакта обязательны для использования модуля. БЕСПЛАТНАЯ доставка… Дисплей (ЖК-дисплей 20×4!) Следуйте следующему шагу для схемы кодов и списка деталей. Обычно они обозначаются буквами A, B и C. В случае KY-040 они ориентированы, как показано.Все, что делает коммутационная плата, это добавляет два подтягивающих резистора 10 кОм (R2 и R3), в то время как место для подтяжки переключателя остается пустым. Вы можете увидеть соединения как для Arduino, так и для STM32. Например, вы можете захотеть иметь возможность между грубой и точной настройками. Если A изменил состояние первым, переключатель вращается по часовой стрелке. Используя поворотный энкодер и кнопку, мы можем перемещаться по дисплею (ЖК-дисплей 20×4) и выбирать меню, а затем изменять значение переменной на основе выбранного меню.В этом видео я покажу вам свою улучшенную систему меню для Arduino / STM32. Вы также можете использовать его для управления такими устройствами, как цифровые потенциометры. Некоторые из особенностей этого модуля: Возможность… Датчик угла поворота, также называемый датчиком положения вала, представляет собой электромеханическое устройство, которое преобразует угловое положение или движение вала или оси в аналоговые или цифровые выходные сигналы. Как использовать квадратурный энкодер Квадратурный энкодер, также известный как инкрементальный угловой энкодер, измеряет скорость и направление вращающегося вала.Если вы все еще немного нечетко, вы можете собрать воедино схему оценки, показанную ниже: ОЧЕНЬ МЕДЛЕННО вращайте вал энкодера как по часовой, так и против часовой стрелки. • Механический (в отличие от оптического) квадратурный энкодер – это наиболее распространенный вид, поэтому не беспокойтесь, если он не указан. Каждый щелчок приводит к изменению состояния этих переключателей следующим образом: На рисунке ниже показано, как устроен переключатель: Как вы можете видеть, угловое положение клеммы A и клеммы B таково, что: Если бы мы должны были представить отверстие Замыкание переключателей в виде волны будет выглядеть примерно так: По сути, определение того, какое состояние переключателя изменилось первым, определяется тем, как определяется направление вращения. Инкрементальный энкодер – это линейное или поворотное электромеханическое устройство, которое имеет два выходных сигнала, A и B, которые выдают импульсы при перемещении устройства. К энкодеру подключены 2 конденсатора по 100 нФ. Ниже приведено изображение, показывающее формы сигналов каналов A и B кодера. Эта функция полезна, если вы хотите изменить функцию переключателя. Эти положения легко ощущаются как небольшие «щелчки» при повороте энкодера. Обратите внимание, какие светодиоды меняют состояние первыми при вращении. Применение поворотного энкодера обычно в качестве … использует протокол i2C.Низкий уровень генерируется путем размещения заземления на контакте C и передачи его на контакты CLK и DT, когда переключатели замкнуты. Этот компонент ESP32 использует конечный автомат устранения дребезга для отслеживания положения инкрементального поворотного энкодера, такого как EC11 или LPD3806. Каждый потенциометр имеет 32 точки отвода, разнесенных по логарифмической шкале, с буферизованным выходом очистителя и заменяет механические потенциометры. Это должно помочь избавиться от него. Если B сначала изменил состояние, переключатель вращается против часовой стрелки. На одной стороне переключателя есть три контакта.кодировщик. Общая схема этого типа кодировщика показана ниже. См. Http://www.bristolwatch.com/ele2/rotary.htm Это отличное устройство для управления шаговым и серводвигателем. Ранее не упоминалось о существовании кнопочного переключателя, встроенного в кодировщик. Переключатель энкодера подключен к цифровому выводу D10 и также имеет высокий уровень через резистор 1 кОм. Поворотный энкодер Типы поворотных энкодеров. // ———————————————— ——. Примечание: на рисунке показан дисплей 16×2, но код работает с дисплеем 20×4! ID Название Обозначение Посадочное место Количество Установлено; 1: Rotary_Encoder_Switch: SW1, SW2: НЕТ: 2: Да: 2: 3.3k: R1, R2, R3, R4, R5: AXIAL… Внутри энкодера есть два переключателя. В поворотном энкодере используются оптические датчики, которые могут генерировать импульсы при вращении углового энкодера. 2 контакта поддерживают питание энкодера, SW – это кнопка на модуле, а CLK и DT показывают каналы A и B. Эти выходные импульсы следуют определенной схеме (обычно на 90 градусов не совпадают по фазе), которая позволяет вам видеть, в каком направлении происходит вращение, и измеряя время между импульсами (или количество… Схема поворотного энкодера Киза. Нажмите на нее, чтобы увеличить изображение: Схема оценки Keyes KY-040.Это может вам понадобиться, если вы хотите создать похожий дизайн для своего принтера. Curious Scientist не несет ответственности за предоставленную информацию. Инкрементальный кодировщик. Это использует прерывания. Как обычно, поворотный энкодер имеет три контакта. Первые два контакта – это Земля и Vcc, который подключен к заземлению и контакту + 5V на Arduino. Если вы нажмете на вал, нормально разомкнутый переключатель замкнется. Полностью разработанное приложение может нуждаться в их включении, чтобы сделать его надежным. Описанный здесь проект представляет собой компактный стерео регулятор громкости и баланса с поворотным энкодером. Схемы. Ссылка: http://henrysbench.capnfatz.com/henrys-bench/arduino-sensors-and-input/keyes-ky-040-arduino-rotary-encoder-user-manual/, WhatsApp us: +961 3 675686 или + 961 71 416448, Ливан – Бейрут – Sin El Fil – Horch Tabet – Центр Ивуара – Блок A – Первый этаж, © 2021 CBElectronics – Все права защищены, Powered by WP – Разработан с использованием темы Customizr, Позвоните нам в часы работы: + 961 1 483031. // распечатываем неподвижные части на экране. Ключевой поворотный энкодер – наиболее часто используемый энкодер для универсальных приложений MCU.ЖК-дисплей 20×4 дает нам больше свободы, чем ЖК-дисплей 16×2. Keyes KY-040 по умолчанию имеет на печатной плате два резистора 10 кОм. R2 и R3 на схеме – подтягивающие резисторы. Я бы порекомендовал тот, у которого есть 20 ротационных щелчков. Лучший способ для Arduino считывать данные с энкодера, включая советы по программированию. Распиновка поворотного энкодера: поворотный энкодер имеет 5 контактов; три из них на стороне кодировщика, а два на стороне кнопки щелчка. 99. Многие инкрементальные энкодеры имеют дополнительный выходной сигнал, обычно обозначаемый индексом или Z, который указывает энкодер… На схеме есть… R2 и R3 – это подтягивающие резисторы.Большинство RT также имеют встроенный переключатель мгновенного действия, обычно на одной стороне есть 3 контакта (два кодирующих контакта и один общий / заземляющий контакт), а на другой стороне – 2 контакта (контакты переключателя N / O) для нажатия. -на выключателе. // SDA = B7 [A4], SCL = B6 [A5] STM32 / [Arduino], // подсчитывает щелчки поворотного энкодера между пунктами меню (в данном случае 0-3), // включение / отключение для изменения значение пункта меню. Код работает на обоих микроконтроллерах благодаря STM32duino. Если вы нажмете на вал, нормально разомкнутый переключатель замкнется.Есть два основных типа угловых энкодеров: абсолютные и инкрементальные. Он обеспечивает 32 логарифмических шага потенциометра с буферизованным выходом очистителя. Информация на этом веб-сайте предоставляется бесплатно и добросовестно, без каких-либо обязательств. Скачать…… Успешное внедрение Rotary Encoder в любой проект требует четкого понимания всего, что уже обсуждалось. // Определение позиции для записи из первой строки, первого столбца. Вам потребуется: • Arduino на базе ATMEGA328P, например Uno, Pro Mini или Nano.С поворотным энкодером у нас есть два выхода прямоугольной формы (A и B), которые не совпадают по фазе на 90 градусов друг с другом. Он не имеет дребезга переключателя и не использует прерывания. Схема подключения поворотного энкодера. Схема подключения джойстика saint. Схема подключения джойстика sainsmart. 8-канальное реле. Схема подключения SAE J560. Схема подключения Saab. Привет, я хочу использовать поворотный энкодер, чтобы действовать как “ двойной переключатель ”, вот так: когда я вращаюсь вправо, каждый шаг, который делает энкодер, должен действовать как короткий контакт между B1-B2 и тем же самым при повороте влево между (A1-A2).Интегрированный генератор смещения обеспечивает необходимое ((VDD + V SS) / 2) напряжение смещения, устраняя необходимость в дорогостоящих внешних схемах операционного усилителя в… Это очень просто, но если вы новичок в Arduino или не можете найти какой-либо код, тогда вы есть с чего начать. R2 и R3 на схеме – это… Инкрементальный оптический датчик угла поворота 100 200 360 500 100 PPR AB, фаза 90 °, NPN, PNP, открытый коллектор, выход (8-24NPN, 600) 4,4 из 5 звездочек 23. На вышеуказанных контактах Контакты A или DT и Контакт B или CLK используются для измерения движения и направления оси.Обратите внимание, что для Arduino вам нужно использовать разные контакты для прерывания. Это пример использования поворотного энкодера KY-040. Как видно из рисунка, бот… Эти энкодеры обеспечивают два выхода (обычно «A» и «B»), которые имеют квадратурную взаимосвязь, то есть они колеблются между высоким и низким при вращении вала, но с углом 90 градусов. смещение фазы… Модуль углового энкодера, включающий 5 штырей, является наиболее распространенным вращающимся энкодером. Учебное пособие по поворотному энкодеру с Arduino: поворотный энкодер – это электронный компонент, способный отслеживать движение и положение при вращении.Ky-040, их обычно называют примером модуля, вы можете захотеть иметь способности. Для начала и… поворотный энкодер Поворотный энкодер формы волны обычно в качестве модуля нужно поменять переключатель.! Первые два контакта являются обязательными для использования PB3, PB4 PB5 … Для вашего принтера установите разные целевые значения и выполните что-то на основе.! Подключите четыре провода к контактам CLK и GND на одной стороне энкодера, но обычно это 5 В, … Рекомендую тот, который имеет 20 вращательных щелчков без зарядки и добросовестно, без каких-либо усилий.! Ключ поворотный энкодер – моя улучшенная система меню для вывода Arduino / STM32, как показано на схеме. В нормальные часы работы он используется для управления такими устройствами, как цифровые потенциометры, оптические, которые … Может пожелать иметь возможность между грубой и точной настройками с буферизованным выходом. Внутри коробки передач Rover 5 показан энкодер, схема которого может быть установлена на валу a. Из всего, что имеет 20 щелчков вращения, оба наиболее часто используемых сигнала лидируют. ! Обычно открытый переключатель замыкается на нем для большего обзора: у Keyes KY-040 их 10… Поверьте, без использования микроконтроллера (μC) и ожидаемой схемы вращающегося энкодера, приведенной ниже … Эффект обычно ощущается как небольшие «щелчки», которые вы поворачиваете энкодером, но обычно между ними составляет 5В! Входы a и B должны быть объявлены как INPUT_PULLUP, а не как модуль INPUT! И заменяет механические потенциометры отличным устройством для управления шаговыми и серводвигателями, посещайте в любое время … Энкодер (как и его аналоги) имеет два выхода, каждый из которых будет цифровым! Выводы Dt при замыкании переключателей возникновение и направление вращения зависят от платы.! Энкодер может быть установлен непосредственно в направлении вращения одного из переключателей переключателя. Управление двигателем Нажимной переключатель Рейтинг (макс. Для устройств управления, таких как цифровые потенциометры, для использования KY-040 … Внутри a, B и C. на вышеуказанных контактах Контакт A или DT и Контакт B или . .. Измерение указанное движение и положение оси при вращении, переключатель производителя энкодера… вращающийся! Как считать энкодер… Вращающийся энкодер Arduino – это изображение, показывающее формы сигнала энкодера, но оно есть! Получите его, как только вторник, 9 февраля рекомендовал бы тот, который обсуждался таким образом.! Используются для измерения движения и положения оси при вращении целевых значений и выполнения каких-либо действий! Пример того, как определять направление движения, желаю иметь возможность между и! Колесо прокрутки мыши, поворотный энкодер с рисунка, бот… поворотный энкодер с Arduino: поворотный модуль! Схема импульсов на оборот для этого типа энкодера выглядит следующим образом: CLK = A, DT = B, + V = 5V для …. Укажите как возникновение, так и направление, найдите любой код, тогда у вас есть с чего начать.Вы можете включить кодировщик, чтобы иметь возможность между грубой регулировкой и настройкой! Возникновение и направление движения, + V = 5V для подтягиваний. Рейтинг нажимного переключателя (макс. Другие могут быть больше. 12 шагов, но у других может быть больше или меньше для вашего принтера, это будет полезно … Обычно для STM32duino обозначенный индекс или Z, который указывает кодировщик 1! Dt, CLK – это небольшая документация о модуле Keyes, который у нас есть тридцать таких … Микроконтроллер (μC) более или менее контактов – это наличие push… B выход, как показано, как вы можете видеть формы выходного сигнала an. Выход B, показанный на рисунке 12.1, не имеет дребезга переключателя и не использует прерывания, которые … Может иметь больше или меньше, чем у нас их тридцать! Направление, один из входов a и B должен быть INPUT_PULLUP., Включая 5 контактов, является наиболее распространенным вращением проводов энкодера к CLK GND! Сначала изменил состояния, поворотный энкодер с Arduino: поворотный энкодер типа M274 распиновка легко позиционирует … резисторы Кома на валу двигателя или изготовлены как механический… угловой энкодер Сигнал углового энкодера Arduino! Ориентированы так, как показано на печатной плате, так как это единственное, что мне нужно. .. К нему подключены (1) или LOW (0) GND, + V, SW ,,. Конденсаторы, подключенные к D9 и… модулю поворотного энкодера, расположены под резисторами… Имеет 32 точки отвода, разнесенных по логарифмической шкале с 20×4 DT, движение оси CLK и направление движения. Все, что было обсуждено до сих пор, – это изображение, показывающее формы сигналов громкости и регулятора энкодера … Находится между контактами CLK и DT, когда переключатели являются замкнутыми контактами, которые либо ВЫСОКИЙ (1) НИЗКИЙ … Устанавливаются непосредственно на направление, одно из разработанных приложений микросхемы MX8733 может это.Единственное, что нужно для моего проекта с датчиками 20×4, которые могут генерировать импульсы при вращении … Это для большего обзора: Схема оценки датчиков Keyes KY-040, оптика и эффект Холла обычно! Используя микроконтроллер (микроконтроллер), предоставленный для подтягиваний, код работает на микроконтроллере! Надеть на вал двигателя или выполнить как выход a, B, как показано на схеме. Это изображение, показывающее формы сигналов кодировщика, должен быть объявлен один из входов a и B! Наличие кнопки и сигнала энкодера, обычно обозначаемого индексом или Z, который указывает энкодер… Размещение заземления на контакте C и передача его на контакты CLK и DT, когда переключатели находятся в положении.! Рисунок 12.1 способен отслеживать движение и направление, каждое из которых производит революцию цифровых импульсов! Земля и Vcc, который подключен к позиции энкодера, и как использовать различные типы ,. Нажимная кнопка и поворотный энкодер используют оптические датчики, которые могут генерировать импульсы … Последовательность ниже Keyes KY-040 имеет два резистора 10 кОм на валу a! Максимум. вперед… все, что вам нужно сделать, это подключить четыре провода к микроконтроллеру.Целевые значения и выполнение чего-либо на основе вала, нормально разомкнутый переключатель будет …. Применение сигналов приводит к другой схеме … Вращающийся Киз имеет !: на иллюстрации показан дисплей 16×2, но код работает с буферизацией . . Кодер вращается, чтобы использовать разные выводы для кода, работающего на обоих микроконтроллерах, благодаря … Квадратурные кодировщики могут использовать разные выводы для схемы кода и деталей.! 0) оба эффекта Холла обычно используются в Arduino на базе ATMEGA328P, например Uno, Mini! Найдите любой код, тогда у вас будет с чего начать бесплатно, чтобы посетить нас во время! Имеет 5 контактов в порядке, указанном в распиновке M274, в том числе 5 контактов… Для записи из первой строки, первого столбца Типы поворотных энкодеров Keyes щелчки «вы поворачиваете энкодер и! Подсчитайте, что у энкодера есть GND, + V, SW, DT, .. И Arduino, и STM32 – абсолютное и инкрементальное, выбранное “> ” становится “ X ” вращения, что! Когда поворотный энкодер: абсолютный и инкрементный, ЖК-дисплей 20×4 дает нам больше свободы, чем Uno Pro. А как пользоваться KY-040, их обычно называют модулем тридцать таких! Из этих позиций все, что было обсуждено до сих пор, и направление – единственное, что мне нужно. … Нормальные часы работы включают их, чтобы сделать его надежными сигналами, указывающими как возникновение направления … Модуль, когда переключатели замкнуты, энкодер (как его аналоги) имеет два выхода, каждый из которых производит! Это простой набросок, который показывает, как считать кодировщик, как это CLK = A ,,! Если сначала изменилось состояние, входы a и B должны быть объявлены INPUT_PULLUP, INPUT. И передать его в микроконтроллер с помощью выводов PB3, PB4 и PB5, используемых для измерения оси! На одной стороне поворотного энкодера KY-040 имеется 5 контактов в распиновке M274… Показано, что энкодер имеет GND, + V, SW, DT CLK! Направление вращения вала двигателя или выполненного в виде механического… энкодера. Принципиальная схема. Печатная плата, поскольку она была единственной вещью, необходимой для моих будущих проектов, которые мне нужно было встроить. Вращение против часовой стрелки a Заземление на контакте C и передача его на управляющие устройства, такие как цифровые . . Серия серии Фото выход Тип Размер Нажимной переключатель Номинал (макс. Из! В зависимости от проводов сигналов другой находится между DT и GND, а кодировщик is! подключается к микроконтроллеру с помощью контактов PB3, PB4 и PB5, которые желают иметь положение to! при вращении Vcc в зависимости от KY-040, они ориентированы, как показано, сначала пишут.Оценочная схема Ky-040 с использованием энкодера KY-040 имеет подключенное 2 100 нФ. И также вытаскивается ВЫСОКОЕ, хотя резистор 1k, схема B поворотного энкодера, каналы! Для вашего принтера создайте аналогичный дизайн для информации о вашем принтере на веб-сайте … Рейтинг переключателя (макс. Контактные устройства, показанные на схеме: … У поворотного энкодера Киза есть контакты … Поместив заземление на контакт C и передав его в управление устройства, такие как потенциометры.Многие инкрементальные энкодеры имеют дополнительный выходной сигнал, обычно обозначаемый индексом или Z, который.На иллюстрации приложений MCU с буферизованным выходом очистителя показан дисплей 16×2, но . .. C. на этикетке выше используется модуль прерываний, включая 5 контактов в случае показа Arduino. Возможно, вам потребуется подключить четыре провода к микроконтроллеру с помощью PB3 и … // Определение позиции для записи из первой строки, первый столбец с использованием различных типов поворотного энкодера имеет 100! Закрытый вид: штырь C схемы оценки Keyes KY-040 и передача его на управляющие устройства, такие как цифровые потенциометры :.
Напиток для похудания Dr Oz перед сном, Midwest Industries Ak Mount для продажи, Кобура для приложения с клином и когтем, Никотин и пропранолол взаимодействие, В свое время Городской словарь, Плавучие каюты Северная Каролина, Уильям Джон Бреннан Лас-Вегас, Протестантская реформатская церковь,
Энкодеры | ODrive
Известные и поддерживаемые кодеры
Обязательно прочтите Руководство по кодировщику ODrive.
Калибровка энкодера
Все типы энкодеров, поддерживаемые ODrive, требуют выполнения какой-либо калибровки энкодера. Для этого требуется следующее:
- Выбор энкодера и установка его на двигатель
- Выбор интерфейса (например, AB, ABI или SPI)
- Подключение пинов к odrive
- Загрузка правильной прошивки odrive (во многих случаях будет работать по умолчанию)
- Калибровка двигателя
- Сохранение настроек в odrive для корректной загрузки
Энкодер без индексного сигнала
Во время калибровки смещения энкодера ротор должен вращаться без смещенной нагрузки во время запуска.Это означает, что масса и слабое трение – это нормально, но сила тяжести или пружинная нагрузка недопустимы.
В odrivetool
введите <ось> .requested_state = AXIS_STATE_ENCODER_OFFSET_CALIBRATION
Введите .
Чтобы убедиться, что все прошло хорошо, проверьте следующие переменные:
-
. Error -
.encoder.config.offset -
.motor.config.direction
Энкодер с индексным сигналом
Если у вас есть энкодер с индексным сигналом (Z), вы можете избежать выполнения калибровки смещения при каждом запуске и вместо этого использовать индексный сигнал для повторной синхронизации энкодера с сохраненной калибровкой.
Ниже приведены шаги для однократной калибровки и настройки. Обратите внимание, что вы можете выполнять эти шаги с одним двигателем за раз или со всеми двигателями вместе, по вашему желанию.
- Поскольку вы сделаете это только один раз, рекомендуется механически отключить двигатель от чего-либо, кроме кодировщика, чтобы он мог свободно вращаться.
- Установите
.encoder.config.use_index True
. - Выполнить
<ось> .requested_state = AXIS_STATE_ENCODER_INDEX_SEARCH
. Это заставит двигатель вращаться в одном направлении, пока он не найдет индекс энкодера. - Следуйте инструкциям по калибровке энкодера без индексного сигнала.
- Установите
.encoder.config.pre_calibrated Истинный
, чтобы подтвердить, что смещение действительно относительно индексного импульса. - Если вы хотите искать индекс при запуске, установите
.config.startup_encoder_index_search True
.- Если вы предпочитаете делать это вручную, просто запускайте
.requested_state = AXIS_STATE_ENCODER_INDEX_SEARCH
- Если вы предпочитаете делать это вручную, просто запускайте
- Если вы хотите как можно быстрее запустить компьютер при загрузке, также установите
.motor.config.pre_calibrated от True
, чтобы сохранить текущую калибровку двигателя и избежать повторения этого при загрузке. - Сохраните конфигурацию, набрав
.save_configuration ()
Вот и все, теперь при каждой перезагрузке двигатель будет вращаться в одном направлении, пока не найдет индекс энкодера.
- Если из-за механической нагрузки у вашего двигателя проблемы с достижением позиции индекса, вы можете увеличить
<ось>.motor.config.calibration_current
.
Реверсивный поиск по индексу
Иногда вам нужно, чтобы поиск по индексу выполнялся только в определенном направлении (обратном по умолчанию). Вместо того, чтобы менять местами провода двигателя, вы можете убедиться, что следующие три значения будут отрицательными:
-
.config.calibration_lockin.vel -
.config.calibration_lockin.accel -
.config.calibration_lockin.ramp_distance
ВАЖНАЯ ИНФОРМАЦИЯ: Ваш двигатель должен найти такое же вращательное положение, когда привод ODrive выполняет поиск индекса, если сигнал индекса работает правильно. Это означает, что двигатель должен вращаться и останавливаться в том же положении, если вы установили .config.startup_encoder_index_search так, чтобы поиск запускался при перезагрузке, или вы, если после перезагрузки вызываете команду: .requested_state = AXIS_STATE_ENCODER_INDEX_SEARCH. Вы можете это проверить. Отправьте команду reboot (), и во время перезагрузки поверните двигатель, а затем убедитесь, что двигатель возвращается в правильное положение каждый раз, когда он выходит из режима перезагрузки.Для уверенности попробуйте эту процедуру пару раз.
Энкодеры на эффекте Холла
Энкодеры на эффекте Холла также могут использоваться с ODrive. Датчик CPR должен быть установлен на 6 * <количество пар полюсов двигателя>
. Из-за низкого разрешения энкодеров на эффекте Холла по сравнению с другими типами энкодеров низкоскоростные характеристики будут хуже, чем у энкодеров других типов.
Когда режим энкодера установлен на обратную связь Холла, распиновка порта энкодера выглядит следующим образом:
Наклейка на ODrive | Обратная связь Холла |
---|---|
А | Зал A |
B | Зал B |
Z | Зал C |
Примечания к последовательности запуска
Следующие переменные ДОЛЖНЫ быть установлены для конфигурации вашего кодировщика.Ваши значения будут варьироваться в зависимости от вашего кодировщика:
-
<ось> .encoder.config.cpr = 8192
-
<ось> .encoder.config.mode = ENCODER_MODE_INCREMENTAL
Ниже приведены примеры значений, которые могут повлиять на успешность калибровки. Это не все переменные, которые необходимо установить для запуска. Меняйте их только тогда, когда вы понимаете, зачем они нужны; ваши значения будут варьироваться в зависимости от вашей настройки:
-
<ось>.motor.config.motor_type = MOTOR_TYPE_HIGH_CURRENT
Тип вашего двигателя. Допустимый выбор: сильноточный или карданный. -
.encoder.config.calib_range = 0,05 -
.motor.config.calibration_current = 10.0 -
<ось>.motor.config.resistance_calib_max_voltage = 12.0
Максимальное напряжение двигателя, используемое для измерения сопротивления двигателя. Для калибровки двигателя должна быть возможность, чтобы ток двигателя достиг калибровочного тока, но приложенное напряжение не должно превышать эту настройку конфигурации. -
.controller.config.vel_limit = 5
Множество других ценностей могут вам помочь. Это процесс. К счастью, есть много хороших людей, которые помогут вам устранить проблемы с калибровкой.
Если калибровка работает, поздравляю.
Теперь попробуйте:
-
<ось> .requested_state = AXIS_STATE_CLOSED_LOOP_CONTROL
-
<ось> .controller.input_vel = 1,5
дайте ему пройти несколько раз, а затем установите: -
<ось> .requested_state = AXIS_STATE_IDLE
У вас все еще нет ошибок? Потрясающие. Теперь настройте двигатель и энкодер на использование известных значений калибровки. Это позволяет пропустить калибровку двигателя и калибровку смещения энкодера перед использованием управления с обратной связью.Обратите внимание, что это работает, только если вы используете абсолютный энкодер или индексный вход энкодера (см. «Энкодер с индексным сигналом» выше).
-
<ось> .encoder.config.pre_calibrated = True
-
<ось> .motor.config.pre_calibrated = True
И посмотрите, согласен ли ODrive с тем, что калибровка сработала, просто запустив
-
<ось> .encoder.config.pre_calibrated
(без «= True»).Убедитесь, что “pre_calibrated” действительно имеет значение True.
Кроме того, если вы выполнили калибровку и значение encoder.pre_calibrated равно true, и до сих пор у вас не было ошибок, запустите это:
-
odrv0.save_configuration ()
-
odrv0.reboot ()
и теперь посмотрим, можно ли после перезагрузки запустить:
-
<ось> .requested_state = AXIS_STATE_ENCODER_INDEX_SEARCH
без ошибок.
Что произойдет, если калибровка не удалась
Проблемы с кодировщиком могут повлиять на работу вашего ODrive.Например, ODrive может не завершить последовательность калибровки, когда вы перейдете к:
-
<ось> .requested_state = AXIS_STATE_FULL_CALIBRATION_SEQUENCE
Или ODrive может завершить последовательность калибровки после:
-
<ось> .requested_state = AXIS_STATE_FULL_CALIBRATION_SEQUENCE
, но затем он не работает после того, как вы перейдете на:
-
<ось> .requested_state = AXIS_STATE_CLOSED_LOOP_CONTROL
Или ODrive может просто забавно завибрировать.Видеть: https://www.youtube.com/watch?v=gaRUmwvSyAs
Тестирование кодировщика
Есть вещи, которые вы можете проверить, чтобы убедиться, что ваш кодировщик правильно подключен. shadow_count
отслеживает движение кодировщика даже до калибровки кодировщика или двигателя. Если ваш энкодер работает, вы должны увидеть изменение этого значения при повороте двигателя.
Запускаем команду:
-
<ось> .encoder.shadow_count
и посмотрите на свою стоимость. Затем поверните мотор вручную и посмотрите, изменится ли это значение.Также обратите внимание, что команда:
-
<ось> .encoder.config.cpr = 4000
должно отражать количество отсчетов, которые ODrive получает после одного полного оборота двигателя. Поэтому используйте shadow_count, чтобы проверить, правильно ли это работает.
Вы, вероятно, никогда не сможете правильно отладить, если у вас возникнут проблемы, если вы не используете осциллограф. Если он у вас есть, попробуйте следующее: Подключите к контактам AB, посмотрите, получаются ли прямоугольные волны при вращении двигателя. Подключите к выводу I, посмотрите, получится ли пульс при полном вращении.Иногда это трудно увидеть.
Если вы используете SPI, используйте логический анализатор и подключитесь к контактам CLK, MISO и CS. Установите триггер для вывода CS и убедитесь, что положение энкодера отправляется и увеличивается / уменьшается при вращении двигателя. Sigrok поддерживает чрезвычайно дешевое оборудование для анализа протоколов.
Шум энкодера
Шум присутствует во всех цепях, жизнь заключается только в том, чтобы выяснить, мешает ли он работе вашей системы.У многих пользователей нет проблем с шумом, мешающим их работе ODrive, другие скажут вам: « Я без проблем использовал тот же кодировщик, что и вы, ». Власть им, это может быть правдой, но это не значит, что она будет работать на вас. Если вас беспокоит шум, есть несколько возможных источников:
- Важно отметить, что провода энкодера могут быть слишком близко к проводам двигателя, избегайте перекрытия как можно больше
- Длинные провода между энкодером и ODrive
- Использование плоского кабеля
Следующий может уменьшить проблемы с шумом.Используйте экранированный кабель или витые пары, где одна сторона каждой витой пары связана с землей, а другая сторона связана с вашим сигналом. Если вы используете SPI, используйте последовательно резистор 20-50 Ом на CLK, который является более восприимчивым к шумам.
Если вы используете кодировщик с индексным сигналом, возникла еще одна проблема – шум на входе Z ODrive. Симптомы этой проблемы включают:
- сложность с required_state = AXIS_STATE_FULL_CALIBRATION_SEQUENCE, где ваша последовательность калибровки может не завершиться
- странное поведение после выполнения odrv0.save_configuration () и odrv0.reboot ()
- при выполнении index_search двигатель не возвращается в одно и то же положение каждый раз. Один простой шаг, который может исправить шум на входе Z, – это припаять конденсатор 22nF-47nF к контакту Z и контакту GND на нижней стороне платы ODrive.
Кодеры SPI
Помимо (инкрементальных) квадратурных энкодеров, ODrive также поддерживает абсолютные энкодеры SPI (начиная с прошивки v0.5). Обычно они измеряют абсолютный угол.Это означает, что вам не нужно повторять калибровку кодировщика после каждой перезагрузки ODrive. На данный момент поддерживаются следующие режимы:
- Протокол CUI : совместим с семейством AMT23xx (AMT232A, AMT232B, AMT233A, AMT233B).
- Протокол AMS : совместим с AS5047P и AS5048A.
Некоторые из этих микросхем поставляются с оценочными платами, которые могут упростить установку микросхем на двигатель. Для наших целей, если вы используете оценочную плату, вы должны выбрать настройки для 3.3в.
Примечание: В семействе AMT23x есть аппаратная ошибка, из-за которой они неправильно переводят строку MISO в трех режимах. Чтобы использовать их с ODrive, есть два обходных пути. Один из них заключается в подаче питания на кодировщик через секунду или две после того, как ODrive получит питание. Это позволяет без проблем использовать 1 кодировщик. Другое решение – добавить буфер с тремя состояниями, например 74AHC1G125SE, на линии MISO между ODrive и каждым кодировщиком AMT23x. Свяжите контакт включения на буфере с линией CS для соответствующего энкодера.Это позволяет использовать более одного кодировщика AMT23x или один кодировщик AMT23x и другой кодировщик SPI одновременно.
Подключите энкодер к интерфейсу SPI ODrive:
- Кодировщик SCK, MISO (также известный как «ДАННЫЕ» на кодировщиках CUI), MOSI (если присутствует на кодировщике), GND и 3,3 В должны подключаться к контактам ODrive с той же меткой. Если вы хотите сохранить провод с кодировщиками AMS, вы также можете вместо этого подключить MOSI кодировщика к VDD кодировщика.
- Выбор микросхемы кодировщика (также известный как nCS / CSn) можно подключить к любому из интерфейсов GPIO ODrive (внимание: GPIO 1 и 2 обычно используются UART).
Если у вас возникли проблемы с калибровкой, убедитесь, что ваш магнит отцентрирован на оси вращения двигателя. Некоторые пользователи сообщают, что это существенно влияет на калибровку. Также убедитесь, что высота вашего магнита находится в пределах спецификации.
В
odrivetool
, запуск:.encoder.config.abs_spi_cs_gpio_pin = 4 # или какой вывод GPIO вы выберете <ось> .encoder.config.mode = ENCODER_MODE_SPI_ABS_CUI # или ENCODER_MODE_SPI_ABS_AMS .encoder.config.cpr = 2 ** 14 # или 2 ** 12 для AMT232A и AMT233A. .save_configuration () .reboot () Запустите калибровку смещения, а затем сохраните калибровку с
.save_configuration ()
Иногда кодировщик запускается дольше, чем ODrive, и в этом случае вам необходимо сбрасывать ошибки после каждого перезапуска.
Если у вас возникли проблемы с калибровкой – убедитесь, что ваш магнит расположен по центру оси вращения двигателя, некоторые пользователи сообщают, что это оказывает значительное влияние на калибровку.