问题描述
我无法通过写入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。