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); 
      }
}

解决方法

您想要的引脚顺序有点出乎意料;如果您以“标准”方式进行连接,则28BYJ-48应该使用以下软件进行初始化:

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

然后它应该在两个方向上都能正常工作。

如果需要,请参见here