本文主要是介绍12.步进电机驱动实验,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
实验现象:步进电机旋转。
理论学习:
28BYJ-48步进电机空载耗电在50mA以下,带64倍减速器,输出力矩比较大,可以驱动重负载,极适合开发板使用。注意:带有64倍减速器的步进电机,与不带减速器的步进电机相比,转速显得较慢,为方便观察,可在输出轴处粘上一片小纸板。其中红色线为VCC,其余4个为4个相位。
使用ULN2003达林顿驱动芯片驱动步进电机,板载4个LED,可以指示相位状态。
步进电机相位控制,如果选择相位A,单片机给驱动板BJ1引脚高电平,其他BJ2/BJ3/BJ4引脚低电平,达林顿管对应引脚输出电平会翻转,达林顿管输出低电平时候配合VCC,可以驱动A相位。
程序代码:
#include <Arduino.h>#define A1 2 //引脚命名
#define B1 3
#define C1 4
#define D1 5void setup()
{pinMode(A1,OUTPUT); //设置引脚为输出引脚pinMode(B1,OUTPUT);pinMode(C1,OUTPUT);pinMode(D1,OUTPUT);
}void loop()
{Phase_A(); //设置A相位delay(10); //改变延时可改变旋转速度Phase_B(); //设置B相位delay(10);Phase_C(); //设置C相位delay(10);Phase_D(); //设置D相位delay(10);}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引脚高电平
}
这篇关于12.步进电机驱动实验的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!