上图中所示为一个典型的直流电机控制威廉希尔官方网站
。威廉希尔官方网站
得名于“H桥驱动威廉希尔官方网站
”是因为它的形状酷似字母H。4个三极管组成H的4条垂直腿,而电机就是H中的横杠(注意:图只是示意图,而不是完整的威廉希尔官方网站
图,其中三极管的驱动威廉希尔官方网站
没有画出来)。
H桥式电机驱动威廉希尔官方网站
包括4个三极管和一个电机。要使电机运转,必须导通对角线上的一对三极管。根据不同三极管对的导通情况,电流可能会从左至右或从右至左流过电机,从而控制电机的转向。
要使电机运转,必须使对角线上的一对三极管导通。例如,如下图所示,当Q1管和Q4管导通时,电流就从电源正极经Q1从左至右穿过电机,然后再经 Q4回到电源负极。按图中电流箭头所示,该流向的电流将驱动电机顺时针转动。当三极管Q1和Q4导通时,电流将从左至右流过电机,从而驱动电机按特定方向转动(电机周围的箭头指示为顺时针方向)。
上图所示为另一对三极管Q2和Q3导通的情况,电流将从右至左流过电机。当三极管Q2和Q3导通时,电流将从右至左流过电机,从而驱动电机沿另一方向转动(电机周围的箭头表示为逆时针方向)。
典型的H桥驱动威廉希尔官方网站
如下:
H桥威廉希尔官方网站
原理及直流电机驱动编程
PWM1为1,PWM2为1时,Q1和Q2导通,节点1和2都是低电平,Q15和Q16导通,电机不工作
PWM1为0,PWM2为0时,Q1和Q2导通,节点1和2都是高电平,Q13和Q14导通,电机不工作
PWM1为1,PWM2为0时,Q1导通而Q2不导通,节点1是低电平而2是高电平,Q14和Q15导通,电机逆时针旋转
PWM1为0,PWM2为1时,Q1不导通而Q2导通,节点1是高电平而2是低电平,Q13和Q16导通,电机顺时针旋转
C语言代码:
功能:能是电机正转,逆转,停止。
#include《AT89X52.h》
#define uchar unsigned char
#define uint unsigned int
***it Key_UP=P3^2; //正转按键
***it Key_DOWN=P3^3; //反转按键
***it Key_STOP=P3^4; //停止按键
***it ZZ=P1^0; //控制端,用单片机的P1.0口
***it FZ=P1^1; //控制端,用单片机的P1.1口
***it FMQ=P3^6;
uchar KeyV;
uchar TempKeyV;
void delaynms(uint aa)
{
uchar bb;
while(aa--)
{
for(bb=0;bb《115;bb++) //1ms基准延时程序
{
;
}
}
}
void delay500us(void)
{
int j;
for(j=0;j《57;j++)
{
;
}
}
void beep(void)
{
uchar t;
for(t=0;t《100;t++)
{
delay500us();
FMQ=!FMQ; //产生脉冲
}
FMQ=1; //关闭蜂鸣器
delaynms(300);
}
void main(void)
{
ZZ=1;
FZ=1; //使直流电机停止运转
while(1)
{
if(!Key_UP)
KeyV=1;
if(!Key_DOWN)
KeyV=2;
if(!Key_STOP)
KeyV=3;
if(KeyV!=0)
{
delaynms(10);
if(!Key_UP)
TempKeyV=1;
if(!Key_DOWN)
TempKeyV=2;
if(!Key_STOP)
TempKeyV=3;
if(KeyV==TempKeyV)
{
if(KeyV==1)
{
beep();
ZZ=1;
FZ=0;
}
if(KeyV==2)
{
beep();
ZZ=0;
FZ=1;
}
if(KeyV==3)
{
beep();
ZZ=1;
FZ=1;
}
}
}
KeyV=0;
TempKeyV=0;
}
}
上图中所示为一个典型的直流电机控制威廉希尔官方网站
。威廉希尔官方网站
得名于“H桥驱动威廉希尔官方网站
”是因为它的形状酷似字母H。4个三极管组成H的4条垂直腿,而电机就是H中的横杠(注意:图只是示意图,而不是完整的威廉希尔官方网站
图,其中三极管的驱动威廉希尔官方网站
没有画出来)。
H桥式电机驱动威廉希尔官方网站
包括4个三极管和一个电机。要使电机运转,必须导通对角线上的一对三极管。根据不同三极管对的导通情况,电流可能会从左至右或从右至左流过电机,从而控制电机的转向。
要使电机运转,必须使对角线上的一对三极管导通。例如,如下图所示,当Q1管和Q4管导通时,电流就从电源正极经Q1从左至右穿过电机,然后再经 Q4回到电源负极。按图中电流箭头所示,该流向的电流将驱动电机顺时针转动。当三极管Q1和Q4导通时,电流将从左至右流过电机,从而驱动电机按特定方向转动(电机周围的箭头指示为顺时针方向)。
上图所示为另一对三极管Q2和Q3导通的情况,电流将从右至左流过电机。当三极管Q2和Q3导通时,电流将从右至左流过电机,从而驱动电机沿另一方向转动(电机周围的箭头表示为逆时针方向)。
典型的H桥驱动威廉希尔官方网站
如下:
H桥威廉希尔官方网站
原理及直流电机驱动编程
PWM1为1,PWM2为1时,Q1和Q2导通,节点1和2都是低电平,Q15和Q16导通,电机不工作
PWM1为0,PWM2为0时,Q1和Q2导通,节点1和2都是高电平,Q13和Q14导通,电机不工作
PWM1为1,PWM2为0时,Q1导通而Q2不导通,节点1是低电平而2是高电平,Q14和Q15导通,电机逆时针旋转
PWM1为0,PWM2为1时,Q1不导通而Q2导通,节点1是高电平而2是低电平,Q13和Q16导通,电机顺时针旋转
C语言代码:
功能:能是电机正转,逆转,停止。
#include《AT89X52.h》
#define uchar unsigned char
#define uint unsigned int
***it Key_UP=P3^2; //正转按键
***it Key_DOWN=P3^3; //反转按键
***it Key_STOP=P3^4; //停止按键
***it ZZ=P1^0; //控制端,用单片机的P1.0口
***it FZ=P1^1; //控制端,用单片机的P1.1口
***it FMQ=P3^6;
uchar KeyV;
uchar TempKeyV;
void delaynms(uint aa)
{
uchar bb;
while(aa--)
{
for(bb=0;bb《115;bb++) //1ms基准延时程序
{
;
}
}
}
void delay500us(void)
{
int j;
for(j=0;j《57;j++)
{
;
}
}
void beep(void)
{
uchar t;
for(t=0;t《100;t++)
{
delay500us();
FMQ=!FMQ; //产生脉冲
}
FMQ=1; //关闭蜂鸣器
delaynms(300);
}
void main(void)
{
ZZ=1;
FZ=1; //使直流电机停止运转
while(1)
{
if(!Key_UP)
KeyV=1;
if(!Key_DOWN)
KeyV=2;
if(!Key_STOP)
KeyV=3;
if(KeyV!=0)
{
delaynms(10);
if(!Key_UP)
TempKeyV=1;
if(!Key_DOWN)
TempKeyV=2;
if(!Key_STOP)
TempKeyV=3;
if(KeyV==TempKeyV)
{
if(KeyV==1)
{
beep();
ZZ=1;
FZ=0;
}
if(KeyV==2)
{
beep();
ZZ=0;
FZ=1;
}
if(KeyV==3)
{
beep();
ZZ=1;
FZ=1;
}
}
}
KeyV=0;
TempKeyV=0;
}
}
举报