一.ULN2003芯片介绍
ULN2003 是高耐压、大电流达林顿陈列,由七个硅 NPN 达林顿管组成。该电路的特点如下:
- ULN2003 的每一对达林顿都串联一个 2.7K 的基极电阻,在 5V 的工作电压下它能与 TTL 和 CMOS 电路直接相连,可以直接处理原先需要标准逻辑缓冲器来处理的数据。
- ULN2003 工作电压高,工作电流大,灌电流可达 500mA,并且能够在关态时承受 50V 的电压,输出还可以在高负载电流并行运行。
- ULN2003 采用 DIP-16 或 SOP-16 塑料封装。
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); } }
讯享网

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/68971.html