基准/监控/保护电路
步进电机简而言之就是能够通过输入脉冲的个数,确定旋转的角位移,一般用他来控制小车轮子的偏移角度等。
ULN2003是内部结构是达林顿管的列阵:
ULN2003是一个非门电路,包含7个单元,各二极管的正极分别接各达林顿管的集电极。用于感性负载时,该脚接负载电源正极,起续流作用(在感性负载中,电路断开后会产生很大的反电动势,为防止损坏达林顿管,接反相的二极管来构成通路,使之转换为电流)。
何为达灵顿管?达林顿管由两个三极管组成,如图2
将两个三极管串联,第一个管子的发射极接第2个管子的基极,所以达林顿管的放大倍数是两个三极管放大倍数的乘积,具有很大的放大倍数。集电极开路,能输出较大的电流(集电极电位高)。
IC的典型应用如图3
利用ULN2003与MCU引脚相连,可以驱动步进电机。IC的作用主要在于放大驱动电流。本次实验的驱动对象为28BYJ-48型步进电机(五线四相),基本电路如图所示:
再来讲讲二极管的作用,驱动电流断开时,电机内的电感产生很大的反电动势,每一个单元的二极管都与三极管的集电极相连,产生反电动势时就构成了放点回路,从而保护了三极管。
#include 《reg51.h》
#include 《absacc.h》
sbit p10=P1^0;
sbit p11=P1^1;
sbit p12=P1^2;
#define UP 20
#define DOWN 30
#define STOP 40
void delay()//延时程序
{
unsigned i,j,k;
for(i=0;i《0x02;i++)
for(j=0;j《0x02;j++)
for(k=0;k《0xff;k++);
}
main()
{
unsigned char temp;
while(1)
{
if(p10==0)
{
temp=UP;//控制正转
P2=0X00;
delay();
}
if(p11==0)
{
temp=DOWN;//控制反转
P2=0X00;
delay();
}
if(p12==0)
{
temp=STOP;//控制停止
}
switch(temp)
{
case DOWN : P2=0X01;//控制反转 //0011
delay();
delay();
P2=0X02;//0110
delay();
delay();
P2=0X04;//1100
delay();
delay();
P2=0X08;//1001
delay();
delay();
break;
case UP : P2=0X08;//控制正转
delay();
delay();
P2=0X04;
delay();
delay();
P2=0X02;
delay();
delay();
P2=0X01;
delay();
delay();
break;
case STOP ://控制停止
P2=0X00;
delay();
delay();
break;
}
}
}
全部0条评论
快来发表一下你的评论吧 !