Arduino对57步进电机的控制

最近实验室的智能车从大车路线改到了小车路线,于是笔者也跟着学习一些新的知识。大车的控制可以使用标准的CAN协议,很多方便的指令都能够通过CAN来传输给ECU并得到相应的反馈。然而对于最近接触的电动小白车,控制策略只能使用物理机械去控制。因此使用步进电机拉杆成为目前的解决方案之一。

1. 设备

【设备】:
- 57步进电机套装,包括2相4线的电机以及对应驱动板;
- Arduino UNO;
- 杜邦线若干;
- 电源输出设备一台(提供24V电压);
Arduino对57步进电机的控制_第1张图片

2. 电机连线

【信号输入端】:

  • PUL+:脉冲信号正
  • PUL-:脉冲信号负
  • DIR+:电机正反控制信号正
  • DIR-:电机正反控制信号负
  • EN+:电机脱机信号正
  • EN-:电机脱机信号负

【电源电压】:
DC:9-40V,这里我们用电源输出设备输出24V即可。
【电路接法】:
我们使用共阴极接法:分别将 PUL-,DIR-,EN-连接到控制系统的地端, 脉冲输入信号通过PUL+接入,方向信号通过DIR+接入,使能信号通过EN+接 入。若需限流电阻,则接入限流电阻R。(EN信号可不接,并且下图的CP即指脉冲信号PUL)
Arduino对57步进电机的控制_第2张图片

3. 拨码开关设定细分以及电流

【细分数】:
根据驱动板上面的开关状态设定,细分后步进电机步距 角按下列方法计算:步距角=电机固有步距角/细分数。

4. Arduino输出脉冲信号

上述连接完毕后,我们用Arduino模拟输出脉冲信号:

#define PUL 9

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);

  // Set the port function, output or input.
  pinMode(PUL, OUTPUT);

}

void loop() {
  // put your main code here, to run repeatedly:
  analogWrite(PUL, 100);
}

如果需要进一步的左右控制,我们定义Arduino的一个数字管脚,连接驱动板的DIR+,给出HIGH或者LOW信号即可改变电机旋转方向。
接下来可以通过串口通信,实现对电机的转动方向、转动速度、角度的控制。

你可能感兴趣的:(嵌入式开发,arduino,步进电机,嵌入式)