Направление шагового двигателя Arduino Uno

Мне не удается заставить шаговый двигатель вращаться против часовой стрелки с помощью кода, написанного для Arduino Uno. Это простая установка, в которой используется кнопка для перемещения шагового двигателя, когда вы удерживаете кнопку. Первоначально код был написан для перемещения шагового двигателя по часовой стрелке, и я изменил myStepMotor.step на -1 вместо 1. Насколько я понимаю, это должно заставить шаговый двигатель двигаться в другом направлении. С положительным или отрицательным числом он все равно вращается по часовой стрелке.

#include <Stepper.h> 
const int myStepsPerRev = 64; 
char k_ccw; 
int myStepsTook = 0; 
// aloocate a stepeper motor object for pins 8 through 11: 
Stepper myStepMotor (myStepsPerRev, 8, 9, 10, 11); 

void setup() { 
  pinMode(3, INPUT); 
  myStepMotor.setSpeed(60); // set the motor speed for 60rpm 
  myStepsTook = 0; // initialize steps taken to zero 
  Serial.begin(9600); // initialize the serial port 
} 

void loop() { 
  k_ccw = digitalRead(3); 
    if (k_ccw == LOW) {
      delay(125); 
      myStepsTook++; 
      Serial.print("Steps Taken: "); 
      Serial.println(myStepsTook);
      myStepMotor.step(-1); 
      }
}

person BoatingPuppy    schedule 28.10.2020    source источник
comment
Трудно сказать, не зная, какой это шаговый двигатель и как он подключен, но я видел несколько двигателей с необычной проводкой; вы можете попробовать Stepper myStepMotor (myStepsPerRev, 8, 10, 9, 11); вместо этого и посмотрим, что произойдет.   -  person ocrdu    schedule 29.10.2020
comment
Извините, я должен был упомянуть шаговый двигатель и драйвер двигателя. Я использую шаговый двигатель 28BYJ-48 и модуль драйвера шагового двигателя ULN2003. Я попробую то, что вы предложили, с перестановкой контактов в коде.   -  person BoatingPuppy    schedule 30.10.2020
comment
Я изменил порядок выводов для Stepper myStepMotor на предложенный способ, и это устранило проблему. Теперь он работает правильно, и шаговый двигатель вращается в двух разных направлениях в зависимости от того, какая кнопка нажата. Спасибо вам за помощь!   -  person BoatingPuppy    schedule 30.10.2020
comment
Отлично, и пожалуйста.   -  person ocrdu    schedule 30.10.2020


Ответы (1)


Желаемая последовательность выводов немного неожиданна; если вы подключили его стандартным способом, то 28BYJ-48 должен быть инициализирован в программном обеспечении следующим образом:

Stepper myStepMotor (myStepsPerRev, 8, 10, 9, 11);

Тогда он должен правильно работать в обоих направлениях.

Если вам понадобится дополнительная информация, см. здесь.

person ocrdu    schedule 29.10.2020