【发布时间】:2020-10-28 20:15:50
【问题描述】:
我无法使用写入 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);
}
}
【问题讨论】:
-
如果不知道它是哪个步进电机,以及它是如何接线的,很难分辨,但我见过一些接线不寻常的;你可以试试 Stepper myStepMotor (myStepsPerRev, 8, 10, 9, 11);而是看看会发生什么。
-
对不起,我应该提到步进电机和电机驱动器。我使用的是 28BYJ-48 步进电机和 ULN2003 步进电机驱动模块。我会尝试你建议的重新排列代码中的引脚。
-
我将 Stepper myStepMotor 的引脚顺序更改为建议的方式并解决了问题。它现在可以正常工作,步进电机会根据按下的按钮朝两个不同的方向前进。感谢您的帮助!
-
太好了,不客气。
标签: arduino arduino-uno stepper