AIN1/AIN2 + PWMA:TB6612三根线控制电机四种状态
短文标题: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三线控制电机的逻辑。

更多推荐

所有评论(0)