Arduino步进电机控制示例

  • 内容
  • ....
  • 相关

在本文中,我们将展示如何连接双极步进电机到Arduino Uno板,步进电机使用的是四线双极步进电机。由于步进电机所需要的电流比Arduino处理器所能承受的电流要大得多,所以我们将使用四路半高驱动器 1A – SN754410 来控制。

stepper-motor

SN754410

更快,更便宜,更小是SN7554410的特点,关键是它使用TTL 5V逻辑电压就能驱动高压步进电机,SN754410在1A连续输出电流的情况下,可以提供4.5V-36V的驱动电压,确实很棒! 如果需要大电流,可以将两个设备物理地堆叠在一起以获得2A的电流。SN754410允许芯片在一个方向上控制4个电机,或者在两个方向上使用一个全H桥控制2个电机。下面是用两个全H桥控制两个电机的电路连接图。

sn754410控制两个步进电机

Arduino步进电机控制

Arduino Stepper library  可以直接支持SN754410芯片,无需做任何的代码修改,因此硬件上我们只需先按照下面的电路图将硬件连接起来。

双极性步进电机的控制电路图

硬件全部连接好后,在Arduino IDE中加载一个步进电机的示例文件。上传后就能使步进电机先向一个方向旋转,然后再向另一个方向旋转了。

/* 
 Stepper Motor Control 
 该程序驱动单极或双极步进电机. 
 电机连接到Arduino的 digital pins 8 - 11. 
 电动机应该先向一个方向旋转一次,再转向另一个方向.    
 */

#include <Stepper.h>

const int stepsPerRevolution = 200;  // 改变这个值来改变电机每转一圈的步数

// 初始化程序库 pins 8 - 11:
Stepper myStepper(stepsPerRevolution, 8,9,10,11);            

void setup() {
  // 设置速度为 60 rpm:
  myStepper.setSpeed(60);
  // 初始化串口:
  Serial.begin(9600);
}

void loop() {
  // 向一个方向旋转:
   Serial.println("clockwise");
  myStepper.step(stepsPerRevolution);
  delay(500);
  
   // 向另一个方向旋转:
  Serial.println("counterclockwise");
  myStepper.step(-stepsPerRevolution);
  delay(500); 
}