дешифровка сигналов на шаговый двигатель

Тема в разделе "Arduino & Shields", создана пользователем gater06, 6 фев 2018.

  1. gater06

    gater06 Нуб

    Добрый день,

    Подскажите, как сделать "дешифровку" сигналов на шаговый двигатель, чтобы понять на сколько шагов и в какую сторону он поворачивается?

    Есть шаговый биполярный мотор от епсон с65. 4 вывода. Он управляет подачей бумаги. Один шаг - поворот на 1,8 градуса. Может поворачиваться как в одну, так и в другую сторону.

    Каким образом можно декодировать сигналы, поступающие на шаговый двигатель, чтобы понять на сколько и в какую сторону он повернулся?
     
  2. mcureenab

    mcureenab Гуру

    По диаграмме можно определить

    [​IMG]
     
  3. timofeevvas

    timofeevvas Нерд

    Вопрос изначально не совсем корректно поставлен. Так как этот двигатель шаговый, то ты сам определяешь насколько ему надо повернуться. Например ему надо сделать полный оборот - 360 градусов. 360/1,8=200 шагов. То есть правильным образом 200 раз скоммутировав выводы обмоток двигателя - ты заставишь двигатель сделать 200 шагов. Правила коммутации смотри выше.
    Но это относится к ПОЛНОшаговому режиму. В ПОЛУшаговом - на один оборот приходится уже 400 шагов - 0,9 градуса\шаг. В таком режиме чуть больше крутящий момент и вдвое большая точность позиционирования при вырастающем потреблении тока.
    Подводя итог: тебе не надо знать насколько движок повернулся - ты сам решаешь насколько.
    Другое дело - блокировка вала. Если ты умудришься повесить слишком большую нагрузку на вал - то он заблокируется и будут пропуски шагов или вообще полный клин - это черевато сгоранием двигателя.
    Если неохота заморачиваться с правилами коммутации обмоток - посмотри "драйвер шагового двигателя". Чаще всего drv8825 или a4988. Это так называемые step/dir-драйвера. Там ты на драйвер подаешь 2 сигнала: на направление (0 - в одну сторону, 1 - в другую) и сигнал на шаг. То есть если надо сделать полный оборот - выставляешь 1 на ногу направления и 200 раз дергаешь ногу шага (0-1-0).