Почему в библиотеке Stepper при прямом вращении меняется сигнал DIR ?
- Войдите на сайт для отправки комментариев
Доброго времени суток! Из теории известно, что сигнал DIR отвечает за направление вращения шагового двигателя, а STEP за необходимое количество шагов, в зависимости от количества тактов. При подробном изучении стандартной библиотеки Stepper увидел, что при прямом направлении вращения мотора на выход DIR подаются разные уровни логических сигналов. По сути, если у нас направлении прямое, то всегда должна быть единица, а если обратное, то ноль. Возникает вопрос, почему так написано в коде и это работает?
Приведу ниже код из библиотеки Stepper, отвечающих за вращение дигателя:
void Stepper::stepMotor(int thisStep) { if (this->pin_count == 2) { switch (thisStep) { case 0: // 01 digitalWrite(motor_pin_1, LOW); digitalWrite(motor_pin_2, HIGH); break; case 1: // 11 digitalWrite(motor_pin_1, HIGH); digitalWrite(motor_pin_2, HIGH); break; case 2: // 10 digitalWrite(motor_pin_1, HIGH); digitalWrite(motor_pin_2, LOW); break; case 3: // 00 digitalWrite(motor_pin_1, LOW); digitalWrite(motor_pin_2, LOW); break; } } }
Если будут выполняться команды в последовательности 0-1-2-3 это будет прямое направление вращения, а если в последовательности 3-2-1-0 будет обратное. Меня интересует тот факт, почему в принципе у DIR разные уровни при движении в одном направлении? Благодарю.
И где ты в этом коде увидел пин DIR?
Изначально мы задаём переменные:
motor_pin_1 - это сигнал STEP
motor_pin_2 - это сигнал DIR
Используется 2-х проводной драйвер для шагового мотора A4988
https://www.arduino.cc/en/Reference/StepperBipolarCircuit
Никакого степ-дира тут нет.
У меня используется другой драйвер шагового двигателя, отличный от того, ссылку на который Вы привели.
Я подключаю драйвер A4988, у которого с микроконтроллера идут на него такие сигналы. Даташит: https://iarduino.ru/lib/763deea2b49e5b0d72287a32b6bcdd87.pdf
Эта библиотека для L293, а не 4988. Никаких степ и дир здесь нет. Управление через ключи L293 обмотками двигателя
Благодарю за ответ! Проблема в том и заключается, что библиотека предназначена дла другого, а работает и на моём А4988. Мой вопрос как раз в том и заключался, почему же так происходит?
Да, я изначально не знал, что библиотека для другого, но я подключил А4988 и всё заработало - двигатель вращается. И мне стало очень интересно, а почему же он крутится, что и хочу у Вас узнать.
А так-ли он крутится как Вы хотите? Меняет направление вращения? Делает нужное количество шагов? Крутиться он будет если на вход степ приходят импульсы.
Ты и с подключением накосячил, очевидно.