Arduino 入门之步进电机试验
2019-09-10
步进电机是一种将电脉冲转化为角位移的执行机构。通俗一点讲:当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(即步进角)。你可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时你也可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的,这个就是本次试验使用的步进电机。
使用步进电机前一定要仔细查看说明书,确认是四相还是两相,各个线怎样连接,本次实验使用的步进电机是四相的,不同颜色的线定义:
减速步进电机的参数:
直径:28mm
电压:5V
步进角度:5.625 × 1/64
减速比:1/64
5线4相 可以用普通uln2003芯片驱动,也可以接成2相使用
该步进电机空载耗电在50mA以下,带64倍减速器,输出力矩比较大,可以驱动重负载,极适合开发板使用。注意:此款步进电机带有64倍减速器,与不带减速器的步进电机相比,转速显得较慢,为方便观察。
步进电机驱动板(UL2003)试验板硬件连接,把代码下载到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;// 保存历史读数
}
试验结果:步进电机可以缓慢地转动了。