注意:测试过程中由于接线错误导致了步进电机只振动不转。
1、步进电机:28BYJ-48
28:步进电机的有效最大外径是28毫米。
B:表示是步进电机。
Y:表示是永磁式。
J:表示是减速型(减速比1:64)。
48:表示四相八拍。
2、Arduino 代码:
#include <Arduino.h> #define A1 3 //引脚命名 #define B1 4 #define C1 5 #define D1 6 void setup() { pinMode(A1, OUTPUT); //设置引脚为输出引脚 pinMode(B1, OUTPUT); pinMode(C1, OUTPUT); pinMode(D1, OUTPUT); Serial.begin(9600); } void loop() { int i = 0; while ( i < 1024 ) { Serial.println(i++); Phase_A(); // 设置A相位 delay(5); // 改变延时可改变旋转速度 Phase_B(); // 设置B相位 delay(5); Phase_C(); // 设置C相位 delay(5); Phase_D(); // 设置D相位 delay(5); } while (true); } void Phase_A() { digitalWrite(A1, HIGH); // A1引脚高电平 digitalWrite(B1, LOW); digitalWrite(C1, LOW); digitalWrite(D1, LOW); } void Phase_B() { digitalWrite(A1, LOW); digitalWrite(B1, HIGH); // B1引脚高电平 digitalWrite(C1, LOW); digitalWrite(D1, LOW); } void Phase_C() { digitalWrite(A1, LOW); digitalWrite(B1, LOW); digitalWrite(C1, HIGH); // C1引脚高电平 digitalWrite(D1, LOW); } void Phase_D() { digitalWrite(A1, LOW); digitalWrite(B1, LOW); digitalWrite(C1, LOW); digitalWrite(D1, HIGH); // D1引脚高电平 }