短文标题:AIN1/AIN2 + PWMA:TB6612三根线控制电机四种状态

你有没有想过一个问题:用集成H桥芯片控制电机,需要几根线?怎么控制正转、反转、刹车?TB6612需要3根控制线:2根方向(AIN1/AIN2)+1根PWM调速。通过逻辑组合,控制电机的四种状态。

TB6612控制逻辑表

四种状态详解

1. 正转调速(AIN1=1, AIN2=0)
Q1(左上)和Q4(右下)导通。电流路径:VCC→Q1→电机→Q4→GND。速度由PWMA占空比决定。

2. 反转调速(AIN1=0, AIN2=1)
Q2(右上)和Q3(左下)导通。电流路径:VCC→Q2→电机→Q3→GND。速度由PWMA占空比决定。

3. 刹车(AIN1=1, AIN2=1)
Q3和Q4(下桥臂)同时导通,电机两端短接。惯性旋转产生反电动势→制动扭矩→快速停止。比滑行停止快得多。

4. 停止(AIN1=0, AIN2=0)
所有MOS管关断,电机自由滑行停止。

TB6612引脚说明

双通道独立控制

TB6612内置两路独立H桥,可同时控制2个电机:

适合两轮差分驱动小车、双电机云台。

代码示例

// 初始化:使能STBY

HAL_GPIO_WritePin(STBY_GPIO_Port, STBY_Pin, GPIO_PIN_SET);

// 正转50%速度

HAL_GPIO_WritePin(AIN1_GPIO_Port, AIN1_Pin, GPIO_PIN_SET);

HAL_GPIO_WritePin(AIN2_GPIO_Port, AIN2_Pin, GPIO_PIN_RESET);

__HAL_TIM_SET_COMPARE(&htim2, TIM_CHANNEL_1, 500);  // 占空比50%

// 刹车

HAL_GPIO_WritePin(AIN1_GPIO_Port, AIN1_Pin, GPIO_PIN_SET);

HAL_GPIO_WritePin(AIN2_GPIO_Port, AIN2_Pin, GPIO_PIN_SET);

// 反转30%速度

HAL_GPIO_WritePin(AIN1_GPIO_Port, AIN1_Pin, GPIO_PIN_RESET);

HAL_GPIO_WritePin(AIN2_GPIO_Port, AIN2_Pin, GPIO_PIN_SET);

__HAL_TIM_SET_COMPARE(&htim2, TIM_CHANNEL_1, 300);  // 占空比30%

与分立MOS管H桥的对比

常见错误

  • STBY悬空或拉低:芯片待机,不工作
  • 换向未先停PWM:直接换向造成电流冲击。正确:先设PWM=0,延时2ms,再换向
  • PWM频率过低:电机抖动、有噪音。建议10~20kHz

这个故事的启示,三根线(AIN1/AIN2/PWMA)控制四种状态(正转/反转/刹车/停止)。集成H桥芯片让电机控制从“搭电路”变成“写逻辑”。写在最后,TB6612三根线,正反转加刹车全搞定。集成芯片省事,分立MOS管做大功率。选对方案,事半功倍。


(本文灵感源于于振南《新概念ARM32单片机》教程第6.12节、第6.13节。)

觉得有用?点赞、转发,让更多人看懂TB6612三线控制电机的逻辑。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐