实验二十三:步进电机

步进电机是一种将电脉冲转化为角位移的执行机构。通俗一点讲:当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(及步进角)。你可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时你也可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。

下面这个就是本次实验使用的步进电机
在这里插入图片描述
使用步进电机前一定要仔细查看说明书,确认是四相还是两相,各个线怎样连接,本次实验使用的步进电机是四相的,不同颜色的线定义如下图:
在这里插入图片描述

  • 减速步进电机
  • 直径:28mm
  • 电压:5V
  • 步进角度:5.625 x 1/64
  • 减速比:1/64
  • 5 线4 相 可以用普通uln2003 芯片驱动,也可以接成2 相使用

该步进电机空载耗电在50mA 以下,带64 倍减速器,输出力矩比较大,可以驱动重负载,极适合开发板使用。注意:此款步进电机带有64 倍减速器,与不带减速器的步进电机相比,转速显得较慢,为方便观察,可在输出轴处粘上一片小纸板。
在这里插入图片描述
在这里插入图片描述

步进电机(五线四相)驱动板(UL2003)试验板
步进电机驱动板(UL2003)试验板
在这里插入图片描述
外形尺寸:31×35mm

实验接线图

在这里插入图片描述


把代码下载到arduino 控制板中看看效果
参考程序代码如下:

/*

  • 步进电机跟随电位器旋转
  • (或者其他传感器)使用0 号模拟口输入
  • 使用arduino IDE 自带的Stepper.h 库文件
    */
#include <Stepper.h>
// 这里设置步进电机旋转一圈是多少步
#define STEPS 100
// attached to 设置步进电机的步数和引脚
Stepper stepper(STEPS, 8, 9, 10, 11);
// 定义变量用来存储历史读数
int previous = 0;
void setup()
{
// 设置电机每分钟的转速为90 步
stepper.setSpeed(90);
}
void loop()
{
int val = analogRead(0); // 获取传感器读数
stepper.step(val - previous);// 移动步数为当前读数减去历史读数
previous = val;// 保存历史读数
}

实验结果

步进电机缓慢的转动。

程序代码

 /*
* 步进电机跟随电位器旋转
* (或者其他传感器)使用0号模拟口输入
* 使用arduino IDE自带的Stepper.h库文件
 */	 
#include <Stepper.h>	 
// 这里设置步进电机旋转一圈是多少步
#define STEPS 100	 
// attached to设置步进电机的步数和引脚
Stepper stepper(STEPS, 8, 9, 10, 11);	 
// 定义变量用来存储历史读数
int previous = 0;	 
void setup()
{
 // 设置电机每分钟的转速为90步
  stepper.setSpeed(90);
 }	 
 void loop()
 {	  
   int val = analogRead(0); // 获取传感器读数	 	   
   stepper.step(val - previous);// 移动步数为当前读数减去历史读数	 	   
   previous = val;// 保存历史读数
 }