新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > H橋電路原理及直流電機驅動編程

        H橋電路原理及直流電機驅動編程

        作者: 時間:2016-11-25 來源:網絡 收藏



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

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


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



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


        典型的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
        #define uchar unsigned char
        #define uint unsigned int

        sbit Key_UP=P3^2; //正轉按鍵
        sbit Key_DOWN=P3^3; //反轉按鍵
        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; //產生脈沖
        }
        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;
        }
        }



        評論


        技術專區

        關閉
        主站蜘蛛池模板: 云浮市| 兴文县| 辽中县| 闽侯县| 诏安县| 潼关县| 衡东县| 阿坝县| 深水埗区| 中山市| 岗巴县| 潼关县| 景谷| 渭南市| 梁河县| 米易县| 扶沟县| 鄱阳县| 抚松县| 南投县| 邛崃市| 玉林市| 阿鲁科尔沁旗| 贞丰县| 怀宁县| 澳门| 砚山县| 甘谷县| 云龙县| 屏南县| 景洪市| 进贤县| 剑阁县| 尚志市| 英德市| 陇川县| 巴塘县| 紫阳县| 苗栗县| 天气| 左云县|