×

TB6612FNG 电机驱动器开源分享

消耗积分:0 | 格式:zip | 大小:0.03 MB | 2022-07-01

凤毛麟角

分享资料个

pYYBAGKxpeCAeLCZAAVALDQPXfE753.png



组件

TB6612FNG(O,C,8,EL
东芝
× 1
227CKS035M
伊利诺伊电容器
× 1
741C083510JP
CTS电阻器产品
× 1
Y1624350R000T9R
Vishay 箔电阻器(Vishay Precision Group 的部门)
× 1
标头男
 
× 1

描述

TB6612FNG 电机驱动

 

TB6612FNG电机驱动器可以以 1.2A(峰值 3.2A)的恒定电流控制多达两个直流电机。两个输入信号(IN1 和 IN2)可用于以四种功能模式之一控制电机:CW、CCW、短制动和停止。两个电机输出(A 和 B)可以单独控制,每个电机的速度通过频率高达 100kHz 的 PWM 输入信号控制。应将 STBY 引脚拉高以使电机脱离待机模式。

 

poYBAGKxpfWASQwpAACHxc87BN8249.jpg

 

逻辑电源电压 (VCC) 可以在 2.7--5.5VDC 的范围内,而电机电源 (VM) 的最大电压限制为 15VDC。每个通道的额定输出电流高达 1.2A(或短单脉冲高达 3.2A)。

如图所示,这个小板安装了所有组件。两条电源线上都包含去耦电容。TB6612FNG 的所有引脚都被分成两个 0.1" 间距接头;这些引脚的排列方式是输入引脚在一侧,输出引脚在另一侧。

 

pYYBAGKxpfiAdEozAABbCpRHbF8468.png

 

TB6612电机驱动模块采用TB6612FNG作为驱动芯片,具有大电流(1.2A连续电流),双通道输出,MOSFET-H桥结构,可驱动两台电机。电机电压和模块的工作电压是分开的——模块的 VCC:2.7 V 到 5.5 V,电机的 VM:15V(最大值)。但电机的最佳工作电压为2.5V-13.5V,低于2.5V时无法工作。

容易控制,通过设置MA和MB的高低电平可以控制两个舵机的正反转,PWMA和PWMB是控制电机转速的;因此,只有 4 个 I/O 引脚会被占用。电机连接和信号输入的防反接端口插接牢固方便。通过芯片内部的低压检测和热关断来保护电路,您无需担心破坏您的项目或损坏主控板。

特征

 

poYBAGKxpfqAFAkyAACueJQ48Xw673.jpg

 

> 采用TB6612FNG电机驱动芯片,最大输出电流1.2A。

> 接线牢固方便,电机连接和信号输入均带有防反接端口。

> 简单控制:同时控制两台电机 - MA 和 MB 控制电机方向,PWMA 和 PWMB 控制转速。

> 双电源。模块的 VCC:2.7-5.5 V,电机的 VM:15V(最大)。

> 小巧轻便,带3mm安装孔,适用于智能汽车。

> 内置热关断电路和低电压检测。

> 尺寸:42 x 32 毫米

实验测试

我用 Arduino 驱动 2 个电机

驱动 2 个电机加速和减速。

成分

-1 x TB6612 电机驱动器

-1 x Arduino Uno

-1 x 电机

-1 x 18650 电池座

-2 x 18650 锂电池

- 几根跳线

步骤 1. 安装库

打开 Arduino 软件,选择 Sketch -> Include Library -> Add .ZIP Library。

 

pYYBAGKxpfyAJjz6AABrIuxJvyg459.png

 

选择下载的zip文件并打开。SunFounder_TB6612.zip

 

 

 

步骤 2. 打开示例

打开 File -> Examples -> Sunfounder TB6612 Motor Driver -> motor,然后上传这个例子

 

poYBAGKxpf6AKty6AAB9FPD93So771.jpg

 

步骤 3. 接线

将独立电源连接到模块,如下图所示:

独立电源TB6612电机驱动VCCVMGNDGND

将 Arduino UNO 连接到模块:

Arduino UNOTB6612电机驱动器5VVCCGNDGND5MA6PWMA9MB10PWMB

将电机连接到模块:

电机TB6612电机驱动器黑线A1红线A2黑线B1红线B2

以下是接线的样子:

 

pYYBAGKxpgGAHtckAABwqiGnPvs844.png

 

示例上传后,电机会加速旋转并正向减速,然后反向重复。

您可以打开串行监视器查看输出 PWM 值的变化 - 从小到大,然后从大到小。

电机转速与PWM值呈正相关。

 

 

II 用 Raspberry pi 控制 2 个电机

步骤 1. 接线

由于电机会消耗大量功率,因此您需要为该模块提供独立的电源,以确保伺服有充足的供电。

将独立电源连接到模块,如下图所示:

独立电源TB6612电机驱动VCCVMGNDGND

将树莓派连接到模块:

树莓派TB6612电机驱动3.3VVCCGNDGNDGPIO17MAGPIO27PWMAGPIO18MBGPIO22PWMB

将电机连接到模块:

电机TB6612电机驱动器黑线A1红线A2黑线B1红线B2

 

树莓派的引脚:

 

poYBAGKxpgOAQJUpAAEFu_e6y08313.png

 

将伺服连接到模块:

电机TB6612电机驱动器黑线A1红线A2黑线B1红线B2

步骤 2. 建立您的项目:

通过 ssh 登录树莓派,从 Github 复制 TB6612 仓库:

git 克隆 https://github.com/sunfounder/SunFounder_TB6612.git

复制后,您将获得 TB6612 的 Python 包。将其导入Python程序中,即可使用。

这是一个简单的例子:

1.创建一个新文件:

mkdir test_TB6612/

2. 将包复制到文件中:

cd test_TB6612

cp –r /home/pi/SunFounder_TB6612 ./

3.创建代码文件

触摸 test_motor.py

这里你的程序的文件结构是这样的:

测试_TB6612/

 

pYYBAGKxpgWAHN13AAB0I9SaGZs252.png

 

有了这个结构,就可以成功导入 Python 文件了。

接下来,让我们看看如何控制电机。

步骤 3. 驱动电机的代码

纳米 test_motor.py

输入以下代码:

#!/usr/bin/env python

进口时间

从 SunFounder_TB6612 导入 TB6612

导入 RPi.GPIO 作为 GPIO

 

定义主():

进口时间

 

打印 ”********************************************”

打印 ”* *”

print "* SunFounder TB6612 *"

打印 ”* *”

print "* 将 MA 连接到 BCM17 *"

print "* 将 MB 连接到 BCM18 *"

print "* 将 PWMA 连接到 BCM27 *"

print "* 将 PWMB 连接到 BCM22 *"

打印 ”* *”

打印 ”********************************************”

GPIO.setmode(GPIO.BCM)

GPIO.setup((27, 22), GPIO.OUT)

a = GPIO.PWM(27, 60)

b = GPIO.PWM(22, 60)

一开始(0)

b.开始(0)

 

def a_speed(值):

a.ChangeDutyCycle(值)

 

def b_speed(值):

b.ChangeDutyCycle(值)

 

电机A = TB6612.电机(17)

电机B = TB6612.电机(18)

motorA.debug = True

motorB.debug = True

motorA.pwm = a_speed

motorB.pwm = b_speed

 

延迟 = 0.05

 

电机A.forward()

对于范围内的 i (0, 101):

电机A.速度=我

time.sleep(延迟)

对于范围内的 i (100, -1, -1):

电机A.速度=我

time.sleep(延迟)

 

motorA.backward()

对于范围内的 i (0, 101):

电机A.速度=我

time.sleep(延迟)

对于范围内的 i (100, -1, -1):

电机A.速度=我

time.sleep(延迟)

 

motorB.forward()

对于范围内的 i (0, 101):

电机B.速度=我

time.sleep(延迟)

对于范围内的 i (100, -1, -1):

电机B.速度=我

time.sleep(延迟)

 

motorB.backward()

对于范围内的 i (0, 101):

电机B.速度=我

time.sleep(延迟)

对于范围内的 i (100, -1, -1):

电机B.速度=我

time.sleep(延迟)

 

poYBAGKxpgiAE3iQAADSLChDlvs059.png

 

定义销毁():

电机A.stop()

马达B.stop()

 

如果 __name__ == '__main__':

尝试:

主要的()

除了键盘中断:

破坏()

 

按 Ctrl+X 退出,会提示保存更改,输入 Y(保存)或 N(未保存),然后按 Enter 键退出。

输入命令以运行示例:

 

python test_motor.py

 

我们仍然会看到电机加速旋转并正向减速,然后反向重复,如前所示。

附件

数据表

SunFounder_TB6612.zip

 

 

 

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !