一.ULN2003芯片介绍
ULN2003 是高耐压、大电流达林顿陈列,由七个硅 NPN 达林顿管组成。该电路的特点如下:
ULN2003内部电路框图及封装图
主要作用:ULN2003的主要作用就是为单片机提供大电流的驱动能力,以此达到驱动步进电机所需的电流。
二.28BYJ-48五线四相电机介绍
28BYJ-48步进电机为五线四相永磁式步进电机,其名称含义为:“28”为电机直径28mm,B为步进电机,Y表示电机为永磁式,J表示内部自带减速箱,48表示驱动方式为四相八拍;
(1)28BYJ-48步进电机参数
对于初学者,对于以上参数,可以先注意以上几个主要参数:工作电压为DC5-12V;步距角为5.625°,即电机转一圈需要的步数=360/5.625*64=4096步,驱动方式为四相四拍或四相八拍。
(2)28BYJ-48步进电机电路图
从电路图可以看出,五线四相表示电机有4个线圈,5根接线端子,其中引脚5为公共端。
三.ULN2003步进电机驱动模块
(1)驱动模块电路图如下:
其中IN1-4引脚为ULN2003的控制端,主要连接单片机引脚,高电平导通,低电平截止;OUT1-4为ULN2003的驱动端,主要连接步进电机4个相线。LED1-4为指示作用,ULN2003通道导通时亮,截止时灭。
VCC主要为ULN2003内部续流二极管的公共端,VM为步进电机的驱动电压;VCC与VM的工作电压需保持一直。
ULN2003模块与电机实物图
(2)单片机与驱动模块连接图
ULN2003与单片机、步进电机电路连接图,步进电机以5V为工作电压。
四.驱动程序
步进电机的驱动方式主要为四相四拍或四相八拍;
四相四拍为步进电机的导通顺序为:
(1)正转:A-B-C-D;
(2)反转:D-C-B-A;
四相八拍为步进电机的导通顺序为:
(3)正转:AD-A-AB-B-CB-C-DC-D;
(4)反转:D-DC-C-CB-B-BA-A-AD;
程序以四相四拍为例:
*******************************************************
接线方式:
IN1 ---- P00
IN2 ---- P01
IN3 ---- P02
IN4 ---- P03
*********************/
#include< reg52.h >
#define uchar unsigned char
#define uint unsigned int
#define MotorData P0 //步进电机控制接口定义
uchar phasecw[4] ={0x08,0x04,0x02,0x01};//正转 电机导通相序 D-C-B-A
uchar phaseccw[4]={0x01,0x02,0x04,0x08};//反转 电机导通相序 A-B-C-D
//ms延时函数
void Delay_xms(uint x)
{
uint i,j;
for(i=0;i< x;i++)
for(j=0;j< 112;j++);
}
//顺时针转动
void MotorCW(void)
{
uchar i;
for(i=0;i< 4;i++)
{
MotorData=phasecw[i];
Delay_xms(4);//转速调节
}
}
//逆时针转动
void MotorCCW(void)
{
uchar i;
for(i=0;i< 4;i++)
{
MotorData=phaseccw[i];
Delay_xms(4);//转速调节
}
}
//停止转动
void MotorStop(void)
{
MotorData=0x00;
}
//主函数
void main(void)
{
uint i;
Delay_xms(50);//等待系统稳定
while(1)
{
for(i=0;i< 500;i++)
{
MotorCW(); //顺时针转动
}
MotorStop(); //停止转动
Delay_xms(500);
for(i=0;i< 500;i++)
{
MotorCCW(); //逆时针转动
}
MotorStop(); //停止转动
Delay_xms(500);
}
}
全部0条评论
快来发表一下你的评论吧 !