TB6612FNG双电机驱动模块Arduino怎么接?PWM调速正反转和避坑

代码杰哥硬件DIY 2026-10-14 19:54:30 10阅读 举报

给两轮小车或履带机器人做电机驱动,除了老牌的L298N,越来越多的玩家开始用TB6612FNG。它是一颗双H桥电机驱动芯片,体积小、压降低、效率高,很多入门套件里都配它。接线看起来脚多,但只要把电源、PWM和方向脚捋一遍,两颗电机的正反转加调速就都能玩起来。这篇把从接线到控制的实操写明白。

脚位一堆,先分三组就好记

TB6612FNG模块上的脚可以分为三块。电源脚:VM是电机电源、VCC是逻辑电源(一般接5V)、GND接地。控制脚:PWMA、AIN1、AIN2管A电机,PWMB、BIN1、BIN2管B电机。输出脚:AO1/AO2接A电机,BO1/BO2接B电机。

接线有个很关键的点:VM电机电源要按电机的额定电压供电,VCC逻辑电源接主控的5V。千万别把驱动两颗大电机所需的电流全部挤到Arduino的5V上,VM最好单独接电池电源,逻辑和电机电源共地就行,这样单片机和电机才能正常沟通。

正反转和调速,就看两条线

控制逻辑很直观:AIN1和AIN2一高一低定方向,PWMA给占空比定速度。比如AIN1高、AIN2低、PWMA给一个0到255的PWM值,A电机就往一个方向以该速度转;把AIN1、AIN2对调,方向就反过来。B电机同理用BIN1、BIN2和PWMB。

用Arduino驱动很省事,直接digitalWrite写方向脚、analogWrite给PWM。很多库里连主动刹车都由它管:把AIN1、AIN2都拉高,电机会进入刹车状态快速停住,比直接把PWM拉0更利落,做小车遇到障碍急停很有用。

三个高频坑,提前绕开

第一是电压和电流。TB6612FNG的VM一般能承受4.5V到13.5V左右,单路最大输出电流大概在1.2A持续、3.2A峰值的样子,做小功率的两轮小车足够。要是拖着大扭矩电机硬来,芯片会发热甚至烧,这种场景就得上更强的驱动。

第二是共地的坑。电机电源和逻辑电源一定要共地,不然PWM信号没有一个统一的参考,电机要么不转要么乱转。接线时把电池负极和Arduino GND连一起,基本就稳了。

第三是PWM频率。普通analogWrite在500Hz左右,对小电机够用;如果电机有啸叫,可以改用定时器把PWM频率调高一点,声音会小很多。把电源、方向脚和共地三件事捋顺,TB6612FNG就是一颗很顺手的小车驱动,做双电机差速转向也很顺。

版权声明:
作者:代码杰哥
链接:https://www.aiddithome.com/p/1eb116c60b27a4.html
来源:硬件DIY
实践版权归作者所有,未经允许请勿转载,若此实践存在违规行为,您可以点击 “举报”。


登录 后发表评论
4条评论
触底反弹的Tony
1楼 · 2天前

刹车把两个IN都拉高这个招好用,比直接拉0稳多了,做避障急停刚好

电烙铁爱好者
2楼 · 2天前

600Hz普通够用,电机啸叫确实可以调高频率,声音真小了不少

阿伟不emo
3楼 · 2天前

终于有人把VM和VCC讲清楚了,我之前以为都接5V,难怪小车一跑就复位

老张装机
4楼 · 2天前

共地这个坑我踩过,不共地PWM完全不听使唤,这篇说得很准