【问题标题】:Arduino Uno stepper directionArduino Uno 步进方向
【发布时间】: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


【解决方案1】:

你想要的引脚顺序有点出乎意料;如果您以“标准”方式连接它,则 28BYJ-48 应在软件中初始化,如下所示:

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

它应该可以在两个方向上正常工作。

如果您需要,请参阅here 了解更多信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-24
    • 2013-10-22
    • 2013-06-05
    • 2017-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多