如何使用arduino控制步进电机运动

图1 步进电机与驱动器连线图(图片摘自网络)

一.步进电机控制程序及分析

话不多说,先上图和程序,时间比较急的可以直接拿去用,下面分析可以不看。

#define vcc 2

#define pls 3

#define dir 4

#define ena 5

void setup() {

  Serial.begin(9600);

  pinMode(vcc,OUTPUT);

  pinMode(pls,OUTPUT);

  pinMode(dir,OUTPUT);

  pinMode(ena,OUTPUT);

  }

void loop() {

  digitalWrite(vcc,HIGH);

  digitalWrite(pls,HIGH);

  digitalWrite(dir,HIGH);

  digitalWrite(ena,HIGH);

  tone(pls,200);

}

接下来是程序讲解,最开始几个define是定义引脚,VCC是给驱动器提供电源引脚,pls是给步进电机提供脉冲引脚,dir决定电机正转还是反转,ena相当于步进电机驱动器的开关,控制电路给ena引脚高电压那么就相当于让驱动器能够接受控制信号,如果ena给的是低电压,那么不论你怎么给脉冲信号电机都不会动。

在arduino里面有一个tone函数可以产生脉冲


图2 tone()函数官方文档介绍

由上可知我们直接调用tone函数,即可在pls引脚产生一定频率的脉冲,并控制脉冲时间,上面程序中只设定了脉冲频率没有设定时长。至此驱动程序完成,如果感兴趣可以看一看下面为什么步进电机需要驱动。

二.步进电机与普通直流电机区别

步进电机是将电脉冲信号转变为角位移或线位移的开环控制电机,是现代数字程序控制系统中的主要执行元件,应用极为广泛。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数。


图3 步进电机原理(图片摘自网络)

如上图2所示,步进电机内部有多对磁极,若通电状态保持不变,则步进电机会保持在某个固定状态,只有不断改变各个磁极对的通电状态,才能让步进电机不断旋转。所以步进电动机不能直接接到直流或交流电源上工作,必须使用专用的驱动电源(步进电动机驱动器)。控制器(脉冲信号发生器)可以通过控制脉冲的个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。

直流电机原理,电机内部有由永磁铁形成的磁场,当线圈通电时由于受到电磁力而转动,转动到平衡位置后,由于电源没有随着线圈转动,故线圈受力依然使其朝同一个方向运动。如此往复,导致线圈可以不断朝一个方向转动。


图4 直流电机原理图(图片摘自网络)

你可能感兴趣的:(如何使用arduino控制步进电机运动)