微控制器小白學習之路(十二)---直流電機的控制

weixin_34214500發表於2018-08-20

目標:直流電機的控制

1.直流電機簡介

直流電機是指能將直流電能轉換成機械能的旋轉電機。
相關引數:
軸長:8mm
軸徑:2mm
電壓:1-6v
參考電流:0.35-0.4A
3v轉速:17000-18000轉每分鐘


13367077-b269d297c05f679e.png
直流電機

2.模組電路

13367077-f662413b670da664.png
直流電機模組

TC1117晶片構造與TC1508一樣,那就來看看TC1508的

13367077-0b5e52c2e8c512a5.PNG
引腳

INA, INB與INC,IND是兩組輸入端OUTA,OUTB與OUTC,OUTD是兩組輸出端


13367077-0204975e430dd17d.PNG
真值表
  • INA和INB都輸入低電平時,電機是待命狀態
  • INA高,INB低時,電機是前進,順時針
  • INA低,INB高時,電機是後退,逆時針
  • INA和INB都輸入高電平時,電機是剎車的狀態,就是正在轉一下停止

OUT的部分加電容是為了去除雜波(比如按鍵的雜波),防止影響電機的運轉

3.程式碼

#include<reg52.h>

typedef unsigned int u16;
typedef unsigned char u8;

sbit ShuC_a = P1^0;   //輸入端a
sbit ShuC_b = P1^1;   //輸入端b
sbit k1 = P1^4;       //獨立按鍵

void delay(u16 i)
{
    while(i--);
}


void main()
{   u8 a;
    u8 mode=0; //用於改變模式

    while(1){
        if(k1==0){
            delay(1000);
            if(k1==0){  //按鍵消抖
                a++;
                mode++;
                if(mode==2)mode=0;
            }while(a<50&&!k1); //判斷是否鬆開了按鍵,在k1不是0和a>=50時跳出
        }
        if(mode==1){   //開啟
            ShuC_a=0;
            ShuC_b=1;   
        }
        else if(mode==0){  //停止
            ShuC_a=0;
            ShuC_b=0;   
        }       
    }
}
//執行狀態:按鍵按一下執行,再按一下就停止

相關文章