玩轉X-CTR100 l STM32F4 l TB6612直流電機調速控制

我造輪子,你造車,創客一塊兒造起來!塔克創新資訊【塔克社區 www.xtark.cn 】【塔克博客 www.cnblogs.com/xtark/ 函數

本文介紹X-CTR100控制器的直流調速電機控制,X-CTR100具備4路專用直流電機調速接口,PWM進行調速,可用於航、機械臂、機器人等製做。 測試

原理

X-CTR100左側MNOP接口可實現4路直流電機PWM調速控制,經過TIM1的四個通道實現,每一個控制接口配置兩個輔助IO,方便實現轉向、剎車等控制效果,直流電機控制接口須要配合直流電機驅動使用。X-CTR100的電機控制可用於機器人、智能車等具備直流電機調速控制的場合。 ui

X-CTR100電機接口須要配合電機驅動,可以使用配套專用電機驅動模塊X-CTR100-MDX2或X-CTR100-MDX4。 spa

X-CTR100-MDX4鏈接方式以下圖所示,X-CTR100-MDX4詳細資料請參考硬件資料中的擴展模塊資料。 blog

TB6612

TB6612FNG引腳圖 TB6612FNG是東芝半導體公司生產的一款直流電機驅動器件,它具備大電流MOSFET-H橋結構,雙通道電路輸出,可同時驅動2個電機。 接口

TB6612FNG每通道輸出最高1.2 A的連續驅動電流,啓動峯值電流達2A/3.2 A(連續脈衝/單脈衝);4種電機控制模式:正轉/反轉/制動/中止;PWM支持頻率高達100 kHz;待機狀態;片內低壓檢測電路與熱停機保護電路;工做溫度:-20~85℃;SSOP24小型貼片封裝。 資源

TB6612FNG的主要引腳功能:AINl/AIN二、BIN1/BIN二、PWMA/PWMB爲控制信號輸入端;AO1/A0二、B01/B02爲2路電機控制輸出端;STBY爲正常工做/待機狀態控制引腳;VM(4.5~15 V)和VCC(2.7~5.5 V)分別爲電機驅動電壓輸入和邏輯電平輸入端。 get

TB6612FNG是基於MOSFET的H橋集成電路,其效率高於晶體管H橋驅動器。相比L293D每通道平均600 mA的驅動電流和1.2 A的脈衝峯值電流,它的輸出負載能力提升了一倍。相比L298N的熱耗性和外圍二極管續流電路,它無需外加散熱片,外圍電路簡單,只需外接電源濾波電容就能夠直接驅動電機,利於減少系統尺寸。對於PWM信號,它支持高達100 kHz的頻率,相對以上2款芯片的5 kHz和40 kHz也具備較大優點。 博客

例程

控制四路電機實現增速正傳和增速反轉交替運行。 it

硬件說明

硬件資源:

  • 串口UART1
  • RM、RN、RO、RP擴展接口(4路直流電機擴展接口)
  • 直流電機驅動器(需自備,可選專用X-CTR100-MDX2/4驅動器)
  • 直流電機(需自備)

硬件鏈接:

使用X-CTR100-MDX2 2路驅動器。

直流電源也能夠使用3S鋰電池代替。

除了專用配套電機驅動模塊,也能夠使用普通電機驅動模塊,使用TB6612電機驅動鏈接示意圖以下圖所示。

軟件生態

X-SOFT軟件生態,X-API擴展文件以下。

ax_motor.c——X-CTR100 直流電機控制源文件

ax_motor.h——X-CTR100 直流電機控制頭文件

接口函數

void AX_MOTOR_TIM1_MNOP_Init(uint8_t freq_khz); //電機MNOP接口初始化

void AX_MOTOR_TIM1_M_SetSpeed(int16_t speed); //電機M控制

void AX_MOTOR_TIM1_N_SetSpeed(int16_t speed); //電機N控制

void AX_MOTOR_TIM1_O_SetSpeed(int16_t speed); //電機O控制

void AX_MOTOR_TIM1_P_SetSpeed(int16_t speed); //電機P控制

軟件說明

函數AX_MOTOR_TIM1_MNOP_Init()函數實現電機的初始化,包括左側MNOP四路電機接口,並可設定PWM頻率爲20K,最大PWM頻率100KHz。AX_MOTOR_TIM1_X_SetSpeed()可分別設置四路電機轉速。本例程在while循環中實現了增速正轉和增速反轉交替運行,主程序代碼以下。

int main(void)

{

    uint8_t temp; //工做模式

 

    //X-CTR100初始化

    AX_Init(115200);

    printf("***直流電機調速例程***\r\n\r\n");

 

    //模塊初始化及配置

    AX_MOTOR_TIM1_MNOP_Init(20); //初始化電機控制端口,PWM頻率爲20KHz    

 

    //X-API測試:四路電機正反轉調速測試    

    printf("*四個電機正反轉調速測試\r\n");

 

    while (1)

    {

        printf("*電機正方向增速旋轉\r\n");

        for (temp = 0; temp <= 200; temp++)

        {

            AX_MOTOR_TIM1_M_SetSpeed(temp);

            AX_MOTOR_TIM1_N_SetSpeed(temp);

            AX_MOTOR_TIM1_O_SetSpeed(temp);

            AX_MOTOR_TIM1_P_SetSpeed(temp);

            AX_Delayms(30);

        }

        AX_MOTOR_TIM1_M_SetSpeed(0);

        AX_MOTOR_TIM1_N_SetSpeed(0);

        AX_MOTOR_TIM1_O_SetSpeed(0);

        AX_MOTOR_TIM1_P_SetSpeed(0);

        AX_Delayms(1000);

 

        printf("*電機反方向增速旋轉\r\n");

        for (temp = 0; temp <= 200; temp++)

        {

            AX_MOTOR_TIM1_M_SetSpeed(-temp);

            AX_MOTOR_TIM1_N_SetSpeed(-temp);

            AX_MOTOR_TIM1_O_SetSpeed(-temp);

            AX_MOTOR_TIM1_P_SetSpeed(-temp);

            AX_Delayms(30);

        }

        AX_MOTOR_TIM1_M_SetSpeed(0);

        AX_MOTOR_TIM1_N_SetSpeed(0);

        AX_MOTOR_TIM1_O_SetSpeed(0);

        AX_MOTOR_TIM1_P_SetSpeed(0);

        AX_Delayms(1000);

    }

}

實現效果

按照硬件鏈接說明鏈接好驅動和電機,電機可鏈接至四路控制接口中的任意一路,能夠觀察到電機作間隔的增速正轉和反轉。

相關文章
相關標籤/搜索