Уважаемые посетители! Форум CQHAM.RU существует исключительно за счет показа рекламы. Мы будем благодарны, если Вы не будете блокировать рекламу на нашем Форуме. Просим внести cqham.ru в список исключений для Вашего блокировщика рекламы.
Страница 1 из 4 1234 ПоследняяПоследняя
Показано с 1 по 10 из 40

Тема: Шаговый двигатель - энкодер

  1. #1
    Аватар для IG_58
    Регистрация
    27.10.2012
    Адрес
    Германия
    Сообщений
    13,014
    Записей в дневнике
    18

    Шаговый двигатель - энкодер

    Меня давно занимала мысль применить в качестве энкодера шаговый двигатель, так чтобы маленький и бесконтатный, а не механическая трещотка, которая довольно быстро разваливается. Наконец-то выдался ничем не занятый день, и я решил наконец-то попробовать, что из этого получится.

    Для проверки идеи был собран стенд, состоящий из маленького китайского шагового двигателя (униполярный, двухфазный), двух драйверов по известной схеме на LM358 – по одному для каждой из обмоток, старого заслуженного контроллера Arduino Uno, который пылился без дела в ящике, и 5-вольтового стаба на 7805. К оси шагового двигателя был прицеплен редуктор, что позволило очень точно и медленно позиционировать его ось, это мне было важно для исследования.

    Нажмите на изображение для увеличения. 

Название:	Стенд.jpg 
Просмотров:	159 
Размер:	476.1 Кб 
ID:	399559 Нажмите на изображение для увеличения. 

Название:	Stepper.jpg 
Просмотров:	115 
Размер:	25.3 Кб 
ID:	399560

    Для начала была выбрана вот такая схема подключения шагового двигателя, в которой использовались одна обмотка и один драйвер:

    Нажмите на изображение для увеличения. 

Название:	StepperEncoderOne.jpg 
Просмотров:	176 
Размер:	123.6 Кб 
ID:	399561

    Выходы драйвера подключены ко входам прерывания D2 и D3. Был написан простой скетч с использованием широко известной библиотеки Eherkit. На Serial Monitor выдавалось содержимое счетчика шагов, чтобы понять, какая получается разрешающая способность такого „энкодера“, каков характер дребезга и т.п.

    Результат получился не очень-то впечатляющим. Дребезг есть, причем довольно заметный. Возможно, имело бы смысл отфильтровать его аппаратно и/или программно, но оказалось (вполне ожидаемо), что такой вариант включения даёт не более 10 шагов за 1 оборот оси (точнее – от 6 до 10). Эта величина зависит от характера дребезга, обусловленного динамикой вращения оси и, в свою очередь, наличием и длительностью всплесков наведенного ротором в обмотках напряжения, в основном, в моменты, когда ротор только-только начинает взаимодействовать с краем обмотки, или когда уже почти прекращает с ней взаимодействовать. Т.е., в конечном счете, зависит от наличия паразитных импульсов на выходе драйвера и их ширины.

    Такой результат порадовать не мог, и стало понятно, что нужно делать две вещи:
    - для увеличения разрешающей способности использовать вторую пару обмоток двигателя и
    - фильтровать дребезг.

    На втором этапе исследований были задействованы обе обмотки, для чего был подключен второй драйвер. Скетч был построен так, чтобы контроллер видел как бы два энкодера, генерирующих импульсы независимо друго от друга, но работающих тандемом и складывающих импульсы в одну «корзину», т.е. работающих на общий счетчик – накопитель. Схема получилась такая:

    Нажмите на изображение для увеличения. 

Название:	StepperEncoderTwo.jpg 
Просмотров:	173 
Размер:	244.0 Кб 
ID:	399562
    В скетче была применена библиотека ErriezRotaryEncoderH alfStep, позволяющая работать с двумя или несколькими энкодерами. Выходы драйверов были подключены ко входам D4, D5, D6 и D7 контроллера, и, поскольку это не входы прерывания, был реализован вариант работы без прерываний. Можно было, конечно, использовать и прерывания от ввода-вывода, но решил для разнообразия остановиться на этом варианте.

    Первый результат оказался обнадеживающим, хотя и не вполне оптимальным. Мне удалось реализовать разрешающую способность порядка 25 – 35 импульсов на оборот оси, но без фильтрации набюдались выбросы на 1-2 и иной раз и более импульсов в ту или ную сторону.

    После того, как была реализована программная фильтрация (медианный фильтр и контроль области допустимых значений), результат получился намного лучше. Теперь он меня вполне устраивает. Выбросов практически нет, а наличие дребезга приводит лишь к незначительым флюктуациям разрешающей способности такого «энкодера» - как я уже писал, от 25 до 35 импульсов на оборот. Какие факторы влияют на изменение разрешающей способности, я выше описал. В принципе, такие колебания разрешающей способности практически ни на что не влияют.

    Скетчи первого и второго варианта, а также примененная во втором варианте билиотека, приведены ниже. Возможно, кому-нибудь они понадобятся. На самом деле, оба драйвера можно собрать на маленькой плате из копеечных деталей, а чтобы не занимать 4 входа контроллера, на этой же плате можно поместить PCF8574, подключить к ней выходы драйверов и получится решение, позволяющее использовать шаговый двигатель в качестве бесконтактного и очень надежного энкодера, висящего на шине I2C.
    Вложения Вложения
    Последний раз редактировалось IG_58; 24.03.2024 в 02:43.
    Игорь

  2. Спасибо от RA6MT, SAM


  3. #2
    Недостатком представленных схем является безгестерезисное включение компаратора и ненагруженные обмотки.
    Как вариант https://radiokot.ru/articles/27/

  4. #3
    Аватар для IG_58
    Регистрация
    27.10.2012
    Адрес
    Германия
    Сообщений
    13,014
    Записей в дневнике
    18
    akl, у меня была задача получить как можно большую разрешающую способность, поэтому аппаратное демпфирование в драйверах не применялось. С этой точки зрения отсутствие демпфирования недостатком не является, а является достоинством, т.к. позволяет добиться результата более гибко - программно.

    А Вы пробовали эту схему с к.з. полуобмоткой? Cколько импульсов на оборот получили?
    Игорь

  5. #4
    IG_58, а зачем этот колхоз? На али доступны по демократическим ценами (самые маленькие размером как современный потенциометр только дорогие) оптические и магнитные энкодеры, почти любых размеров и шагов на выбор, даже с подшипниками на оси, а не муфта скольжения как у механических.
    Мог бы эти потуги понять лет 15+ назад.

  6. #5
    Аватар для IG_58
    Регистрация
    27.10.2012
    Адрес
    Германия
    Сообщений
    13,014
    Записей в дневнике
    18
    А из интереса. Мною движет любопытство, что можно сделать из обычной колхозной сноповязалки и какой-то матери обычного шагового моторчика. Так-то энкодеров у меня до фига разных, и разного-всякого, и купить можно всё, от проводочка до трансивера. Но купить неинтересно

    Здесь, на этом форуме, еще недавно была жива целая длинная тема, как руками сделать "валкодер" (непонятно, кстати, что за валкодер и почему он не энкодер, но ладно) с какими-то там магнитиками, колесиками от мышки и пр. дребеденью. Спросил, зачем их делать, так меня там затюкали Теперь понимаю: из интереса
    Игорь

  7. Спасибо от ex UN7CDN, Serg, UA9UDQ

  8. #6
    IG_58 Если бы не пробовал, статьи бы не было. Шаговый движок имел 200 шагов/оборот и, пока не выяснил почему число шагов при обороте в одну сторону не совпадает с числом шагов при обороте в другую, смысла применения для позиционирования не было. Для валкодера такая заминка значения не имеет.
    Последний раз редактировалось akl; 24.03.2024 в 10:28.

  9. Спасибо от IG_58

  10. #7
    Аватар для IG_58
    Регистрация
    27.10.2012
    Адрес
    Германия
    Сообщений
    13,014
    Записей в дневнике
    18
    akl, так сколько шагов на оборот получилось у энкодера? Двести?
    Игорь

  11. #8
    Да, после программного учета специфики ШД ровно 200 шагов/оборот.

  12. #9
    Цитата Сообщение от IG_58 Посмотреть сообщение
    Здесь, на этом форуме, еще недавно была жива целая длинная тема, как руками сделать "валкодер"
    Слава богу, уже затихла, наконец-то все узнали, что они продаются по адекватным ценам.
    Хотя смысла в той теме уже те же лет 10+ не понимал, очередной раз видя заголовок в списке тем лишь иронично удивлялся и проходил мимо.

  13. Спасибо от IG_58


  14. #10
    Аватар для IG_58
    Регистрация
    27.10.2012
    Адрес
    Германия
    Сообщений
    13,014
    Записей в дневнике
    18
    akl, спасибо, очень интересно.

    Добавлено через 22 минут(ы):

    Попробовал. Перепаял входы драйвера по такой схеме:

    Нажмите на изображение для увеличения. 

Название:	StepperEncoderDamper.jpg 
Просмотров:	54 
Размер:	124.2 Кб 
ID:	399570

    Использовал скетч EncoderFullStep_v1.1 .rar для одного драйвера.
    Результат получился еще хуже, чем в первоначальном эксперименте: разрешающая способность осталась на уровне 5-8 импульсов на оборот, но энкодер ожидаемо стал гораздо тупее. До гистерезиса дело не дошло.

    Пожалуй, вариант с двумя драйверами пока лучше всех.

    Уточню: такой результат получился с моим конкретным шаговым движком. С другим движком, обладающим бОльшим разрешением, он, возможно, получился бы другим, но я сравниваю яблоки с яблоками, а не с грушами различные решения с одним и тем же движком, а не с разными.

    Добавлено через 7 минут(ы):

    Следующий эксперимент. Схема та же, с закороченными полуобмотками, т.е. аппартное демпфирование. Скетч для двух драйверов EncoderHalfStep_v1.4 .rar, но подключен только один драйвер.
    Результат ожидаемый: разрешающая способность 13 - 15 импульсов на оборот, т.е. половина от ранее максимально достигнутой с этим же скетчем и этим же движком. Это и объяснимо, т.к. вместо двух "виртуальных энкодеров" (на самом деле - двух обмоток) на общую корзину работает только один из них.

    Пока смысла в аппаратном демпфировании за счет ухудшения разрешающей способности (т.е. использования двух полуобмоток вместо четырех) не вижу.
    Последний раз редактировалось IG_58; 24.03.2024 в 11:29.
    Игорь

Страница 1 из 4 1234 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Валкодер энкодер IC-756
    от Alex2 в разделе Технологии
    Ответов: 7
    Последнее сообщение: 20.05.2021, 06:09
  2. Шаговый двигатель 28BYJ48
    от RA1AFS в разделе Антенная механика
    Ответов: 2
    Последнее сообщение: 04.12.2018, 14:31
  3. Энкодер для TS-480
    от UR4LL в разделе TS-480
    Ответов: 15
    Последнее сообщение: 14.08.2016, 12:24
  4. как запитать шаговый двигатель pm42L-048-cdc3
    от Анатолий Егоров в разделе Технический кабинет
    Ответов: 4
    Последнее сообщение: 25.11.2012, 17:48
  5. Шаговый двигатель в качестве поворотки
    от RN6LPW в разделе Антенны КВ
    Ответов: 28
    Последнее сообщение: 24.02.2009, 12:27

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •