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

1. 材料清单

1.1 28BYJ-48步进电机

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

1.2 ULN2003步进电机驱动板

使用ULN2003大功率达林顿芯片驱动步进电机
A、B、C、D发光二极管指示四相步进电机工作时的状态
配有步进电机的标准接口,使用时可直接插拨。

1.3 Arduino Uno

2. 连接方法

将28BYJ-48步进电机的针脚对准ULN2003步进电机驱动板上的接线端子插入。注意卡槽方向。
将4根杜邦线插入ULN2003步进电机驱动板的IN1-IN4,另一头按此顺序插入Arduino的D8-d11。
将2根杜邦线插入ULN2003步进电机驱动板的电源正负极,另一头按此顺序插入Arduino的5V和GND。

3.代码

#include<Stepper.h>
const int stepsPerRevolution = 100;// 每转一圈的步数

//初始化步进库,接口按8、10、9、11
Stepper myStepper1(stepsPerRevolution, 8, 10, 9, 11);

void setup() {
  //设置旋转速度,每分钟多少步
  myStepper1.setSpeed(200);
  //初始化串口
  Serial.begin(9600);
}
void loop() {
  Serial.println("顺时针转");
  myStepper1.step(2048);
  delay(500);
  Serial.println("逆时针转");
  myStepper1.step(-2048);
  delay(500);
}

参考1:https://segmentfault.com/a/1190000008018620

参考2:https://blog.csdn.net/sdlgq/article/details/50357703

参考3:https://blog.csdn.net/wuhenyouyuyouyu/article/details/51612073