步进电机(stepping motor)又称脉冲电机,它是一种感应电机,涉及到机械、电机、电子及计算机等许多专业知识。步进电机作为执行元件,是机电一体化的关键产品之一,广泛应用在各种自动化控制系统中。

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

主要特征
步进马达只需要通过脉波信号的操作,即可简单实现高精度的定位,并使工作物在目标位置高精度地停止。步进马达是以基本步级角的角度为单位来进行定位。
实验用的28BYJ-48步进电机参数:
4步控制信号序列:11.25度/步,32步旋转一周。
4步模式下旋转一周将用:32(步/周)X64(齿轮比) = 2048 步。

实验用的步进马达一圈是2048步,步进电机转一圈需要给其2048个脉冲信号。那用2048除以60就可以做成一个类似秒针的效果了。

# 部署

OSEPP UNO的2-5号引脚连到步进电机INA-IND

# 程序搭建

  • oseppBlock 积木知识

步进电机模块积木。定义步进电机的名称,引脚和一些参数。一般不需要更改。

步进电机驱动积木。设定步进电机的转动步数,可以是任意整数。

步进电机转动速度积木。如需改变,请设定值在20以内,超出这个范围步进电机无法启动。

  • oseppBlock程序

  • Arduino程序
#include <Stepper.h>

Stepper stepper1(2048, 2, 4, 3, 5); //定义步进电机的步数和引脚

void setup()
{
    stepper1.setSpeed(10); //定义每分钟转速
}

void loop()
{
    stepper1.step(-2048 / 60); //每次执行步数
    delay(1000);               //延时1000毫秒
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14

# 运行结果

代码上传后,步进电机就像时钟的秒针一样转动。

# 解析

由于60不能被2048整除,所以每走几圈就会有一秒的误差。
2048/60=34...82048/60=34...8,每走4圈就差不多慢了一秒。

# 操作视频