☛ 功能说明
利用 Arduino UNO 开发板控制步进马达 28BYJ-48 转动方向。当步进马达的顺时针转动时,点亮绿色 LED 灯;马达反转时,点亮黄色 LED 灯;马达停止时,点亮红色 LED 灯。步进马达的动作顺序为,先顺时针转动一圈,接着逆时针转动一圈,然后停止二秒后,再重复动作顺序。
☛ 使用材料
Arduino UNO R3 开发板 × 1、ULN2003 芯片 × 1、步进马达 28BYJ-48 × 1、LED × 3、电阻 220Ω × 3。
☛ 电路图及面包板接线图
☛ 程式码
#include <Stepper.h> //使用 Stepper.h 函式库 #define STEPS 2038 //步进马达转动一圈步进数 Stepper stepper(STEPS, 2, 4, 3, 5); //建立 Steeper 资料形态的物件 int motoStep = 63.68395; //步进马达 28BYJ-48 每一步步进值 int i = 1; //步进马达动作索引值 void setup() { pinMode(7, OUTPUT); //数位接脚 7 连接至黄色 LED pinMode(8, OUTPUT); //数位接脚 8 连接至绿色 LED pinMode(9, OUTPUT); //数位接脚 9 连接至红色 LED stepper.setSpeed(10); //设定步进马达的转速为 10 RPM } void loop() { switch(i) { case 1: digitalWrite(7,LOW); //熄灭黄色 LED digitalWrite(8,HIGH); //点亮绿色 LED digitalWrite(9,LOW); //熄灭红色 LED stepper.step(-32*motoStep); //马达正转 32 步 i++; break; case 2: digitalWrite(7,HIGH); //点亮黄色 LED digitalWrite(8,LOW); //熄灭绿色 LED digitalWrite(9,LOW); //熄灭红色 LED stepper.step(32*motoStep); //马达反转 32 步 i++; break; case 3: digitalWrite(7,LOW); //熄灭黄色 LED digitalWrite(8,LOW); //熄灭绿色 LED digitalWrite(9,HIGH); //点亮红色 LED stepper.step(0*motoStep); //马达停止转动 delay(2000); //延迟 2 秒 i=1; break; } }