28BYJ-48步进电机空载耗电在50mA以下,带64倍减速器,输出力矩比较大,可以驱动重负载,极适合开发板使用。注意:此款步进电动机带有64倍减速器,与不带减速器的步进电机相比,转速显得较慢,为方便观察,可在输出轴粘上一片小纸板。
使用ULN2003达林顿驱动芯片驱动步进电动机,板载4个LED,可以指示相位状态。
步进电机相位控制,如果选择相位A,单片机给驱动板BJ1引脚高电平,其他BJ2/BJ3/BJ4引脚低电平,达林顿管对应引脚输出电平会翻转,达林顿管输出低电平时候配合VCC,可以驱动A相位。代码示例:
void Phase_A()
{
digitalWrite(A1,HIGH);
digitalWrite(B1,LOW);
digitalWrite(C1,LOW);
digitalWrite(D1,LOW);
}
代码:
#include <Arduino.h>
#define A1 2 //引脚命名
#define B1 3
#define C1 4
#define D1 5
void setup()
{
pinMode(A1,OUTPUT);//设置引脚为输出引脚
pinMode(B1,OUTPUT);
pinMode(C1,OUTPUT);
pinMode(D1,OUTPUT);
}
void loop()
{
Phase_A();
delay(10);
Phase_B();
delay(10);
Phase_C();
delay(10);
Phase_D();
delay(10);
}
void Phase_A()
{
digitalWrite(A1,HIGH);
digitalWrite(B1,LOW);
digitalWrite(C1,LOW);
digitalWrite(D1,LOW);
}
void Phase_B()
{
digitalWrite(A1,LOW);
digitalWrite(B1,HIGH);
digitalWrite(C1,LOW);
digitalWrite(D1,LOW);
}
void Phase_C()
{
digitalWrite(A1,LOW);
digitalWrite(B1,LOW);
digitalWrite(C1,HIGH);
digitalWrite(D1,LOW);
}
void Phase_D()
{
digitalWrite(A1,LOW);
digitalWrite(B1,LOW);
digitalWrite(C1,LOW);
digitalWrite(D1,HIGH);