新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > H橋電路原理及直流電機驅(qū)動編程

H橋電路原理及直流電機驅(qū)動編程

作者: 時間:2016-11-25 來源:網(wǎng)絡 收藏



上圖中所示為一個典型的直流電機控制電路。電路得名于“H橋驅(qū)動電路”是因為它的形狀酷似字母H。4個三極管組成H的4條垂直腿,而電機就是H中的橫杠(注意:圖只是示意圖,而不是完整的電路圖,其中三極管的驅(qū)動電路沒有畫出來)。

本文引用地址:http://www.2s4d.com/article/201611/321343.htm


H橋式電機驅(qū)動電路包括4個三極管和一個電機。要使電機運轉(zhuǎn),必須導通對角線上的一對三極管。根據(jù)不同三極管對的導通情況,電流可能會從左至右或從右至左流過電機,從而控制電機的轉(zhuǎn)向。
要使電機運轉(zhuǎn),必須使對角線上的一對三極管導通。例如,如下圖所示,當Q1管和Q4管導通時,電流就從電源正極經(jīng)Q1從左至右穿過電機,然后再經(jīng) Q4回到電源負極。按圖中電流箭頭所示,該流向的電流將驅(qū)動電機順時針轉(zhuǎn)動。當三極管Q1和Q4導通時,電流將從左至右流過電機,從而驅(qū)動電機按特定方向轉(zhuǎn)動(電機周圍的箭頭指示為順時針方向)。



上圖所示為另一對三極管Q2和Q3導通的情況,電流將從右至左流過電機。當三極管Q2和Q3導通時,電流將從右至左流過電機,從而驅(qū)動電機沿另一方向轉(zhuǎn)動(電機周圍的箭頭表示為逆時針方向)。


典型的H橋驅(qū)動電路如下:


PWM1為1,PWM2為1時,Q1和Q2導通,節(jié)點1和2都是低電平,Q15和Q16導通,電機不工作

PWM1為0,PWM2為0時,Q1和Q2導通,節(jié)點1和2都是高電平,Q13和Q14導通,電機不工作

PWM1為1,PWM2為0時,Q1導通而Q2不導通,節(jié)點1是低電平而2是高電平,Q14和Q15導通,電機逆時針旋轉(zhuǎn)

PWM1為0,PWM2為1時,Q1不導通而Q2導通,節(jié)點1是高電平而2是低電平,Q13和Q16導通,電機順時針旋轉(zhuǎn)


C語言代碼:

功能:能是電機正轉(zhuǎn),逆轉(zhuǎn),停止。
#include
#define uchar unsigned char
#define uint unsigned int

sbit Key_UP=P3^2; //正轉(zhuǎn)按鍵
sbit Key_DOWN=P3^3; //反轉(zhuǎn)按鍵
sbit Key_STOP=P3^4; //停止按鍵

sbit ZZ=P1^0; //控制端,用單片機的P1.0口
sbit FZ=P1^1; //控制端,用單片機的P1.1口

sbit 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; //產(chǎn)生脈沖
}
FMQ=1; //關閉蜂鳴器
delaynms(300);
}



void main(void)
{
ZZ=1;
FZ=1; //使直流電機停止運轉(zhuǎn)
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;
}
}



評論


技術專區(qū)

關閉