Упарвление шаговым двигателем 28BYJ-48

Тема в разделе "Схемотехника, компоненты, модули", создана пользователем inmaze, 21 окт 2014.

  1. inmaze

    inmaze Нуб

    Добрый день,
    для вращения анализатора в Керр-микроскопе приобрел стандартный униполярный (как следует из даташита) шаговый двигатель 28BYJ-48 с драйвером на микросхеме ULN2003 (позже будет разведен сразу на печатной плате) (ссылка 1).
    Никаких даташитов в комплекте не было, но на просторах интернета был найден соответвующий документ (ссылка 2).
    Двигатель через драйвер был подключен к цифровым портам платы NI-6221. Далее я написал програмку в LV для управления, которая "дергает" четырмя соответствующими цифровыми выходами карты, а драйвер уже замыкает соответвсующую обмотку на землю. Между отдельными переключениями стоит задержка в 20мс + между шагами (шаг состоит из 4 либо 8 перключений) еще 10мс. Как я понял, существует 2 режима работы: полный шаг (4 переключения) и полушаг, для реализациие которого необходимо послать в два раза больше команд (см. картинку). Питание 5В берется с платы, ток, который течет по линии питания при замыкании обмотки порядка 150мА.
    Двигатель крутится, но возникли некоторые существенные проблемы:

    1. В режиме полного шага двигатель (торчащая оська) совершает полный оборот за ~512 шагов, что соответвует повороту на 0.703° гард. за один шаг, хотя в даташите утверждается, что шаг должен быть 5.625°/64 , так как там встроен редуктор с коэффициентом 1/64. По факту же получается что шаг двигателя в 8 раз больше, т.е. 5.625°/8.
    Жить с таким шагом невозможно, так как яркость картинки в микроскопе за один шаг меняется на огромную величину.

    2. Режим полушага вообще не работает, т.е. вместо полушага происходит полный шаг.

    3. Если сначал вращать двигатель по часовой стрелке, а затем послать команду (просто инвертированный 2Д массив с картинки) для вращения в противоположную сторону, то двигатель начинает вращаться только после 4-5 команды. Такой вот "люфт".

    Если у кого-либо есть какие-либо соображения по поводу озвученных проблем, пожалуйста, поделитесь, так как ничего аналогичного на просторах интернета не нашлось и только на вашем форуме была немного близкая тема (ссылка 3)
    Есть идея, что возможно перепутаны провода обмоток и последовательность переключения состояний должна быть не такой как на картинке, а, например, 2 и 3 (или любые другие) строки должны быть поменяны местами. Аналогичное поведение продемонстрировал и 2-ой купленный отдельно двигател.


    Ссылка 1 (шаговый двигатель + драйвер):
    http://www.ebay.de/itm/281353506484?ssP ... 1497.l2649
    Ссылка 2 (Даташит на двигатель):
    http://www.google.de/url?sa=t&rct=j&q=& ... 0786,d.bGQ
    Ссылка 3:
    http://forum.amperka.ru/threads/Подключение-шагового-двигателя-28byj-48-через-uln2003.1264/


    Параметры Двигателя:
    Rated voltage : 5VDC
    Number of Phase 4
    Speed Variation Ratio 1/64
    Stride Angle 5.625° /64
    Frequency 100Hz
    DC resistance 50Ω±7%(25℃)
    Idle In-traction Frequency > 600Hz
    Idle Out-traction Frequency > 1000Hz
     

    Вложения:

    • FrageForum.jpg
      FrageForum.jpg
      Размер файла:
      59,3 КБ
      Просмотров:
      848
  2. Unixon

    Unixon Оракул Модератор

    А с таким включением обмоток разве можно сделать полушаг через одну только ULN-ку?
    Буду рад ошибиться, но тут, кажется, нужен пяток честных полумостов...
     
  3. vvr

    vvr Инженерище

    ULN полушаг не даёт
     
  4. inmaze

    inmaze Нуб

    Спасибо большое за ответы.
    По-поводу ULN2003: я может конечно не догоняю, но что мешает этой микросхеме работать в режиме полушага? Она ведь по сути просто набор из независимых драйверов (см рис.1).
    Кроме того, когда я запустил в медленном режиме (200мс между переключениями, чтоб видеть): i) светодиоды на драйвере мигали правильно (см. видео по ссылке ниже), ii) ток по силовой линии протекал то 140 то 280 мА, что, вроде как, и должно соответвовать правильному режиму.

    Но самый главный вопрос:

    почему шаг у меня получается не соответсвует шагу в даташите, а получается в 8 раз больше?
    и почему люфтит при смене направления?


    ссылка видео:
    https://cloud.mail.ru/public/239277900a20/20141021_092901.mp4
     

    Вложения:

    • uln2003forum.png
      uln2003forum.png
      Размер файла:
      126,2 КБ
      Просмотров:
      1.217
  5. Unixon

    Unixon Оракул Модератор

    ULN2003 - это сборка транзисторов Дарлингтона с открытыми коллекторами, она не может прижимать выход к (+) питания, только к (-), а без этой способности нельзя менять полярность включения обмоток.
     
  6. Unixon

    Unixon Оракул Модератор

    Возьмите пару L293D и ими переключайте обмотки.
     
  7. Unixon

    Unixon Оракул Модератор

  8. inmaze

    inmaze Нуб

    Хммм...
    А разве нельзя работать в режиме полушага с униполярным мотором?
    Открываем первую попавшуюся ссылку по запросу: "half step sequence stepper motor", например эту (см. ниже), и видем, что полушаг есть как для биполярного, так и для униполярного. Там в схеме для униполярного нули и единички, а для биполярного - плюсики и минусики.
    Разве нет?

    http://www.chinabaike.com/z/bzj/214479.html
     
  9. inmaze

    inmaze Нуб

    Но проблема с полушагом для меня на самом деле вторична, мне бы правильный угловой шаг в 5.625°/64 получить как в даташите, а не в 8 раз больший как по факту.

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

    Или я не так даташит понимаю?
     
  10. Unixon

    Unixon Оракул Модератор

    А откуда 512 шагов взялось?
     
  11. inmaze

    inmaze Нуб

    Я думаю, что я близок к пониманию проблемы.
    1. По поводу крупного шага: я, видимо, шагом называл не то, что под этим понимают производители. Я считал, что шаг состоит из 4 переключений, а они называют шагом каждое переключение. Плюс полушаг - это у них тоже шаг, вот и получается что 4*2*4=64 - значение понижающего редуктора, которое они указывают. Так что все прояснилось.
    2. Режим полушага пока так и остался загадкой.

    3. Задержка при начале обратного вращения вызвана банальным люфтом в редукторе, который видно механический, если подергать оську.

    Всем спасибо за содействие.