一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

【CW32模塊使用】TB6612電機(jī)驅(qū)動模塊

CW32生態(tài)社區(qū) ? 來源:CW32生態(tài)社區(qū) ? 作者:CW32生態(tài)社區(qū) ? 2025-03-29 17:21 ? 次閱讀

該模塊相對于傳統(tǒng)的L298N效率上提高很多,體積上也大幅度減少,在額定范圍內(nèi),芯片基本不發(fā)熱,當(dāng)然也就顯得更加?jì)少F,所以我們建議有一定動手能力的朋友使用,接線的時候務(wù)必細(xì)心細(xì)心再細(xì)心,注意正負(fù)極性。

一、模塊來源

模塊實(shí)物展示:

wKgZPGflMZCACYyQAAAkrn0ztA0722.jpg

二、規(guī)格參數(shù)

VM電機(jī)電壓:< 12V

VCC芯片電壓:2.7~5.5V

輸出電流:1A

控制方式:PWM

以上信息見廠家資料文件

三、移植過程

我們的目標(biāo)是將例程移植至CW32F030C8T6開發(fā)板上【能夠控制電機(jī)旋轉(zhuǎn)速度的功能】。首先要獲取資料,查看數(shù)據(jù)手冊應(yīng)如何實(shí)現(xiàn)讀取數(shù)據(jù),再移植至我們的工程。

3.1查看資料

STBY口接單片機(jī)的IO口,STBY置0電機(jī)全部停止,置1才能工作。STBY置1后通過AIN1、AIN2、BIN1、BIN2 來控制正反轉(zhuǎn)。

AIN1 0 0 1 1
AIN2 0 1 0 1
停止 正轉(zhuǎn) 反轉(zhuǎn) 停止

其中A端(AIN1與AIN2)只能控制AO1與AO2端。B端(BIN1與BIN2)只能控制BO1與BO2端。因此是雙路電機(jī)驅(qū)動。

3.2引腳選擇

PWMA為控制A端電機(jī)速度的引腳,通過PWM的占空比大小控制電機(jī)速度。這里選擇PA6,其有復(fù)用功能GTIM3_CH1,意為通用定時器3的PWM通道1。

wKgZO2flMZGAU2OLAAFtdhlTfYY442.jpg

這里將STBY接入3.3V,讓其一直為高電平,后續(xù)的電機(jī)停止控制通過IN1與IN2進(jìn)行控制。

wKgZPGflMZGAVXN_AADYPj9SZio354.jpg

模塊接線圖

3.3移植至工程

移植步驟中的導(dǎo)入.c和.h文件與【CW32模塊使用】DHT11溫濕度傳感器相同,只是將.c和.h文件更改為bsp_tb6612.c與bsp_tb6612.h。這里不再過多講述,移植完成后面修改相關(guān)代碼。

在文件bsp_tb6612.c中,編寫如下代碼。

/*
 * Change Logs:
 * Date           Author       Notes
 * 2024-06-24     LCKFB-LP    first version
 */
#include "bsp_tb6612.h"


/************************************************
函數(shù)名稱 : TB6612_Init
功    能 : TB6612的配置
參    數(shù) : ReloadValue:重裝載值設(shè)置
返 回 值 : 無
作    者 : LC
*************************************************/
void TB6612_Init(uint16_t ReloadValue)
{

    RCC_TB6612_GPIO_ENABLE();       // 使能GPIO時鐘
    RCC_PWMA_TIMER_ENABLE();        // 使能通用定時器1時鐘

    GPIO_InitTypeDef GPIO_InitStruct;  // GPIO初始化結(jié)構(gòu)體

    GPIO_InitStruct.Pins = GPIO_PWMA;           // GPIO引腳
    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;  // 推挽輸出
    GPIO_InitStruct.Speed = GPIO_SPEED_HIGH;     // 輸出速度高

    GPIO_AF_PWM_ENABLE();       // 使用GPIO復(fù)用功能

    GPIO_Init(TB6612_GPIO_PORT, &GPIO_InitStruct);    // 初始化


    GTIM_InitTypeDef GTIM_InitStruct;  // 通用定時器初始化結(jié)構(gòu)體

    GTIM_InitStruct.Mode = GTIM_MODE_TIME;               // 定時器模式
    GTIM_InitStruct.OneShotMode = GTIM_COUNT_CONTINUE;   // 連續(xù)計(jì)數(shù)模式
    GTIM_InitStruct.Prescaler = GTIM_PRESCALER_DIV64;    // DCLK = PCLK / 64 = 64MHz/64 = 1MHz
    GTIM_InitStruct.ReloadValue = ReloadValue;           // 重裝載值設(shè)置
    GTIM_InitStruct.ToggleOutState = ENABLE;            // 輸出翻轉(zhuǎn)功能

    GTIM_TimeBaseInit(BSP_PWMA_TIMER, >IM_InitStruct);        // 初始化

    GTIM_OCInit(BSP_PWMA_TIMER, BSP_PWMA_CHANNEL, GTIM_OC_OUTPUT_PWM_HIGH); // 配置輸出比較通道為PWM模式

    GTIM_Cmd(BSP_PWMA_TIMER, ENABLE);  // 使能定時器

    AIN_GPIO_INIT(); // 使能AIN的GPIO
}

void AIN_GPIO_INIT(void)
{
        GPIO_InitTypeDef  GPIO_InitStructure;

        RCC_TB6612_GPIO_ENABLE(); // 使能GPIO時鐘

        GPIO_InitStructure.Pins = GPIO_AIN1|GPIO_AIN2;
        GPIO_InitStructure.Mode = GPIO_MODE_OUTPUT_PP;
        GPIO_InitStructure.Speed = GPIO_SPEED_HIGH;
        GPIO_Init(TB6612_GPIO_PORT, &GPIO_InitStructure);
}

/******************************************************************
 * 函 數(shù) 名 稱:AO_Control
 * 函 數(shù) 說 明:A端口電機(jī)控制
 * 函 數(shù) 形 參:dir旋轉(zhuǎn)方向 1正轉(zhuǎn)0反轉(zhuǎn)   speed旋轉(zhuǎn)速度,范圍(0 ~ per-1)
 * 函 數(shù) 返 回:無
 * 作       者:LC
 * 備       注:無
******************************************************************/
void AO_Control(uint8_t dir, uint32_t speed)
{
    if( dir == 1 )
    {
        AIN1_OUT(0);
        AIN2_OUT(1);
    }
    else
    {
        AIN1_OUT(1);
        AIN2_OUT(0);
    }
    GTIM_SetCompare1(BSP_PWMA_TIMER, speed );
}

在文件bsp_tb6612.h中,編寫如下代碼。

/*
 * Change Logs:
 * Date           Author       Notes
 * 2024-06-24     LCKFB-LP    first version
 */

#ifndef _BSP_TB6612_H
#define _BSP_TB6612_H

#include "board.h"


#define RCC_TB6612_GPIO_ENABLE()    __RCC_GPIOA_CLK_ENABLE()

#define TB6612_GPIO_PORT            CW_GPIOA

#define GPIO_AF_PWM_ENABLE()        PA06_AFx_GTIM3CH1()     // 使用復(fù)用功能,復(fù)用為通用定時器3通道1

#define GPIO_AIN1                   GPIO_PIN_1
#define GPIO_AIN2                   GPIO_PIN_2
#define GPIO_PWMA                   GPIO_PIN_6

#define RCC_PWMA_TIMER_ENABLE()     __RCC_GTIM3_CLK_ENABLE()
#define BSP_PWMA_TIMER              CW_GTIM3                        // 定時器
#define BSP_PWMA_CHANNEL            GTIM_CHANNEL1

#define AIN1_OUT(X)  GPIO_WritePin(TB6612_GPIO_PORT, GPIO_AIN1, X?GPIO_Pin_SET:GPIO_Pin_RESET)
#define AIN2_OUT(X)  GPIO_WritePin(TB6612_GPIO_PORT, GPIO_AIN2, X?GPIO_Pin_SET:GPIO_Pin_RESET)

void AIN_GPIO_INIT(void);
void TB6612_Init(uint16_t ReloadValue);
void AO_Control(uint8_t dir, uint32_t speed);


#endif  /* _BSP_TB6612_H */

四、移植驗(yàn)證

在自己工程中的main主函數(shù)中,編寫如下。

/*
 * Change Logs:
 * Date           Author       Notes
 * 2024-06-24     LCKFB-LP    first version
 */
#include "board.h"
#include "stdio.h"
#include "bsp_uart.h"
#include "bsp_tb6612.h"

int32_t main(void)
{
    uint16_t i = 1000;
    uint8_t flag = 1;

    board_init();
    uart1_init(115200U);

    TB6612_Init(5000);


    while(1)
    {
        if(flag)
        {

            i += 10;

            if( i >= 4000 )
            {
                    i = 4000;
                    flag = 0;
            }

            AO_Control(1,i);//A端電機(jī)正轉(zhuǎn)
            delay_ms(10);

        }
        else
        {
            i -= 10;

            if( i <= 1000 )
            {
                    i = 1000;
                    flag = 1;
            }

            AO_Control(0,i);//A端電機(jī)反轉(zhuǎn)
            delay_ms(10);

        }
    }
}

移植現(xiàn)象:電機(jī)速度由慢變快的正反轉(zhuǎn).

模塊移植成功案例代碼:

鏈接:https://pan.baidu.com/s/1KReODFKFa4vjTN8qfsaNrQ?pwd=LCKF

提取碼:LCKF

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 電機(jī)驅(qū)動
    +關(guān)注

    關(guān)注

    60

    文章

    1285

    瀏覽量

    87399
  • 開發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    5389

    瀏覽量

    100901
  • 驅(qū)動模塊
    +關(guān)注

    關(guān)注

    0

    文章

    65

    瀏覽量

    14324
收藏 人收藏

    評論

    相關(guān)推薦

    基于tb6612芯片和紅外避障模塊的IO輸出輸入模式

    在這次小車制作中,我使用到的有tb6612電機(jī)驅(qū)動芯片和MH-Sensor-Series紅外循跡避障模塊,兩者的使用方法都不是很復(fù)雜,只需要在對應(yīng)的引腳上接高低電平或者接輸入引腳即可
    的頭像 發(fā)表于 02-14 06:33 ?8097次閱讀
    基于<b class='flag-5'>tb6612</b>芯片和紅外避障<b class='flag-5'>模塊</b>的IO輸出輸入模式

    TB6612模塊使用后就燒了,求助一下各位

    用數(shù)據(jù)線接單片機(jī)時,TB6612能正常工作,但是我調(diào)好程序用12V的航模電池通電時,輪子的轉(zhuǎn)速急劇上升,過了兩秒TB6612開始冒青煙了,搞不懂
    發(fā)表于 07-09 11:16

    電機(jī)驅(qū)動TB6612

    電機(jī)驅(qū)動TB6612資料
    發(fā)表于 06-03 19:58

    TB6612模塊使用時芯片發(fā)燙

    在使用TB6612模塊時,接入無刷電機(jī),并且配置了PWM信號。但在使用時TB6612的芯片發(fā)燙的好厲害,我將VM口接入了11V的電壓,是不是這個電壓太高了導(dǎo)致的?VCC我降壓為5V了。
    發(fā)表于 03-24 23:20

    tb6612電機(jī)驅(qū)動模塊芯片嚴(yán)重發(fā)燙是什么情況~

    tb6612電機(jī)驅(qū)動模塊芯片嚴(yán)重發(fā)燙是什么情況~
    發(fā)表于 04-14 23:32

    請問TB6612如何驅(qū)動電機(jī)

    請問TB6612如何驅(qū)動電機(jī)?
    發(fā)表于 10-20 07:58

    紅外模塊+電機(jī)驅(qū)動TB6612使用方法

    任務(wù)分析、紅外模塊+電機(jī)驅(qū)動TB6612使用方法
    發(fā)表于 01-07 07:57

    TB6612驅(qū)動相關(guān)資料推薦

    TB6612驅(qū)動(雙驅(qū)動)PWMA,AIN1, AIN2, BIN1, BIN2和PWMB為驅(qū)動電路的輸入引腳連接stm32f103c8t6,左側(cè)的AO1, AO2, BO1和BO2為
    發(fā)表于 01-17 06:08

    TB6612FNG電機(jī)驅(qū)動器資料分享

    。兩條電源線上都包含去耦電容。TB6612FNG 的所有引腳都被分成兩個 0.1&quot; 間距接頭;這些引腳的排列方式是輸入引腳在一側(cè),輸出引腳在另一側(cè)。TB6612電機(jī)驅(qū)動
    發(fā)表于 06-22 07:44

    由Adafruit TB6612電機(jī)驅(qū)動器控制的12V直流電機(jī)

    電子發(fā)燒友網(wǎng)站提供《由Adafruit TB6612電機(jī)驅(qū)動器控制的12V直流電機(jī).zip》資料免費(fèi)下載
    發(fā)表于 02-01 14:15 ?2次下載
    由Adafruit <b class='flag-5'>TB6612</b><b class='flag-5'>電機(jī)</b><b class='flag-5'>驅(qū)動</b>器控制的12V直流<b class='flag-5'>電機(jī)</b>

    基于STM32的PWM電機(jī)驅(qū)動TB6612、A4950

    TB6612是一款雙路H橋型的直流電機(jī)驅(qū)動芯片,可以驅(qū)動兩個直流電機(jī)并且控制其轉(zhuǎn)速和方向 A4950
    發(fā)表于 03-16 10:16 ?13次下載
    基于STM32的PWM<b class='flag-5'>電機(jī)</b><b class='flag-5'>驅(qū)動</b><b class='flag-5'>TB6612</b>、A4950

    使用TB6612驅(qū)動電機(jī)

    驅(qū)動電機(jī),我們在這里使用TB6612驅(qū)動電機(jī),同時,電機(jī)的內(nèi)部我們有編碼器進(jìn)行計(jì)次 輸出比較
    發(fā)表于 03-20 14:38 ?1次下載
    使用<b class='flag-5'>TB6612</b>來<b class='flag-5'>驅(qū)動</b><b class='flag-5'>電機(jī)</b>

    stm32 TB6612驅(qū)動直流電機(jī)

    ,發(fā)熱也少。TB6612可以一次驅(qū)動 兩個直流電機(jī),輸出PWM也很簡單,下面就是通過實(shí)驗(yàn)對TB6612電機(jī)進(jìn)行介紹。
    發(fā)表于 03-21 14:49 ?6次下載
    stm32 <b class='flag-5'>TB6612</b><b class='flag-5'>驅(qū)動</b>直流<b class='flag-5'>電機(jī)</b>

    利用TB6612模塊控制直流電機(jī)

    利用TB6612模塊控制直流電機(jī),TB6612模塊的基本使用,在我的博客上面寫有。先看看 里面的控制。再次簡單說一下。 (1)一個
    發(fā)表于 04-03 15:16 ?2次下載
    利用<b class='flag-5'>TB6612</b><b class='flag-5'>模塊</b>控制直流<b class='flag-5'>電機(jī)</b>

    STM32平衡小車 TB6612電機(jī)驅(qū)動學(xué)習(xí)

    TB6612FNG簡介 單片機(jī)引腳的電流一般只有幾十個毫安,無法驅(qū)動電機(jī),因此一般是通過單片機(jī)控制 電機(jī)驅(qū)動芯片 進(jìn)而控制
    發(fā)表于 05-16 15:18 ?8次下載
    STM32平衡小車 <b class='flag-5'>TB6612</b><b class='flag-5'>電機(jī)</b><b class='flag-5'>驅(qū)動</b>學(xué)習(xí)