✅作者简介:热爱科研的嵌入式开发者,修心和技术同步精进
❤欢迎关注我的知乎:对error视而不见
代码获取、问题探讨及文章转载可私信。
☁ 愿你的生命中有够多的云翳,来造就一个美丽的黄昏。
🍎获取更多嵌入式资料可点击链接进群领取,谢谢支持!👇
一、基本概述
28BYJ-48 是一款常见的四相五线式步进电机,常用于各种对精度要求不是极高的自动化设备和控制场景中,如小型机器人、智能门锁、自动化仪表等。其型号中“28”代表电机的机身直径为 28 毫米,“BYJ”表示这是一款永磁式减速步进电机,“48”则表示电机的基本步距角为 7.5 度(未经过减速齿轮组减速前)。
二、结构特点
- 电机本体:内部由定子和转子组成。定子上有四相绕组,分别标记为 A、B、C、D 相,这些绕组通过外部的五线与驱动电路连接。转子是由永磁材料制成的,具有一定的磁极对数。
- 减速齿轮组:28BYJ-48 配备了减速齿轮组,这是其区别于普通步进电机的重要特征。减速齿轮组的存在使得电机的输出转速降低,同时增大了输出扭矩,更适合一些需要较大扭矩的应用场景。经过减速后,电机的实际步距角变为 1.8 度。
三、工作原理
步进电机是一种将电脉冲信号转变为角位移或线位移的开环控制电机。对于 28BYJ-48 步进电机,其工作原理基于电磁感应。当定子的某一相绕组通电时,会产生磁场,吸引转子转动。通过按照一定的顺序依次给各相绕组通电,就可以使转子按照预定的方向逐步转动。常见的通电方式有单四拍、双四拍和八拍等。
- 单四拍:通电顺序为 A-B-C-D-A,每次只有一相绕组通电,每四步完成一个循环。
- 双四拍:通电顺序为 AB-BC-CD-DA-AB,每次有两相绕组同时通电,每四步完成一个循环。
- 八拍:通电顺序为 A-AB-B-BC-C-CD-D-DA-A,这种方式结合了单拍和双拍的特点,每八步完成一个循环,步距角更小,运行更平稳。
四、驱动电路
由于 28BYJ-48 步进电机的工作电流和电压要求,一般不能直接连接到微控制器的 GPIO 引脚上,需要使用专门的驱动电路。常用的驱动芯片有 ULN2003、A4988 等。ULN2003 是一款达林顿管阵列驱动芯片,具有较高的电流放大能力,能够满足 28BYJ-48 步进电机的驱动需求。其连接方式相对简单,将电机的五线分别连接到 ULN2003 的相应引脚上,ULN2003 的输入端连接到微控制器的 GPIO 引脚即可。
五、控制代码示例(以 Arduino 为例)
// 定义电机引脚
const int IN1 = 2;
const int IN2 = 3;
const int IN3 = 4;
const int IN4 = 5;
// 定义步进电机的步序
int steps[8][4] = {
{1, 0, 0, 0},
{1, 1, 0, 0},
{0, 1, 0, 0},
{0, 1, 1, 0},
{0, 0, 1, 0},
{0, 0, 1, 1},
{0, 0, 0, 1},
{1, 0, 0, 1}
};
void setup() {
// 设置引脚为输出模式
pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
pinMode(IN3, OUTPUT);
pinMode(IN4, OUTPUT);
}
void loop() {
for (int i = 0; i < 8; i++) {
// 按照步序给电机引脚赋值
digitalWrite(IN1, steps[i][0]);
digitalWrite(IN2, steps[i][1]);
digitalWrite(IN3, steps[i][2]);
digitalWrite(IN4, steps[i][3]);
delay(5); // 控制电机转动速度
}
}
上述代码中,首先定义了连接到 28BYJ-48 步进电机的四个引脚(IN1、IN2、IN3、IN4),然后定义了八拍的步序数组。在 setup 函数中,将这些引脚设置为输出模式。在 loop 函数中,通过循环遍历步序数组,按照步序给电机引脚赋值,实现电机的转动,并通过 delay 函数控制电机的转动速度。
六、应用注意事项
- 电源供应:确保提供给电机和驱动电路的电源电压和电流满足要求,电源不稳定可能导致电机运行不正常或损坏。
- 安装固定:电机在运行时会产生一定的振动,要确保电机安装牢固,避免因振动导致连接松动或设备损坏。
- 散热问题:长时间连续运行可能会使电机发热,要注意电机的散热,避免因过热影响电机的性能和寿命。
总之,28BYJ-48 步进电机以其结构简单、成本低廉、易于控制等优点,在许多领域得到了广泛的应用。通过了解其工作原理、驱动电路和控制方法,并注意应用中的相关事项,能够更好地发挥其性能,满足不同的控制需求。