Arduino 控制TB6612FNG驱动直流电机详解
创作时间:
作者:
@小白创作中心
Arduino 控制TB6612FNG驱动直流电机详解
引用
CSDN
1.
https://blog.csdn.net/ling3ye/article/details/51691201
TB6612FNG是一款高性能的电机驱动模块,相比传统的L298N模块具有更高的效率和更小的体积。本文将详细介绍如何使用Arduino控制TB6612FNG驱动直流电机,包括模块特性、引脚说明、接线方式和控制程序。
TB6612FNG 电机驱动模块
该模块相对于传统的L298N效率上提高很多,体积上也大幅度减少,在额定范围内,芯片基本不发热。TB6612FNG每通道输出最高1.2 A的连续驱动电流,启动峰值电流达2A/3.2 A(连续脉冲/单脉冲)。
主要特性
- 4种电机控制模式:正转/反转/制动/停止
- PWM支持频率高达100 kHz
- 待机状态
- 片内低压检测电路与热停机保护电路
- 工作温度:-20~85℃
- SSOP24小型贴片封装
引脚说明
引脚 | 功能说明 |
|---|---|
A控制信号输入 | PWMA |
电机驱动电压输入端 | VM (4.5V-15V) |
A电机输入端2 | AIN2 |
逻辑电平输入端 | VCC (2.7V-5.5V) |
A电机输入端1 | AIN1 |
GND | 接地 |
正常工作/待机状态控制端 | STBY |
A电机输出端1 | AO1 |
B电机输入端1 | BIN1 |
B电机输出端2 | AO2 |
B电机输入端2 | BIN2 |
B控制信号输入端 | PWMB |
BO2 | B电机输出端2 |
GND | 接地 |
BO1 | B电机输出端1 |
接线方式
程序实现
//motor A connected between A01 and A02
//motor B connected between B01 and B02
int STBY = 10; //standby
//Motor A
int PWMA = 3; //Speed control
int AIN1 = 9; //Direction
int AIN2 = 8; //Direction
//Motor B
int PWMB = 5; //Speed control
int BIN1 = 11; //Direction
int BIN2 = 12; //Direction
void setup(){
pinMode(STBY, OUTPUT);
pinMode(PWMA, OUTPUT);
pinMode(AIN1, OUTPUT);
pinMode(AIN2, OUTPUT);
pinMode(PWMB, OUTPUT);
pinMode(BIN1, OUTPUT);
pinMode(BIN2, OUTPUT);
}
void loop(){
move(1, 255, 1); //motor 1, full speed, left
move(2, 255, 1); //motor 2, full speed, left
delay(1000); //go for 1 second
stop(); //stop
delay(250); //hold for 250ms until move again
move(1, 128, 0); //motor 1, half speed, right
move(2, 128, 0); //motor 2, half speed, right
delay(1000);
stop();
delay(250);
}
void move(int motor, int speed, int direction){
//Move specific motor at speed and direction
//motor: 0 for B 1 for A
//speed: 0 is off, and 255 is full speed
//direction: 0 clockwise, 1 counter-clockwise
digitalWrite(STBY, HIGH); //disable standby
boolean inPin1 = LOW;
boolean inPin2 = HIGH;
if(direction == 1){
inPin1 = HIGH;
inPin2 = LOW;
}
if(motor == 1){
digitalWrite(AIN1, inPin1);
digitalWrite(AIN2, inPin2);
analogWrite(PWMA, speed);
}else{
digitalWrite(BIN1, inPin1);
digitalWrite(BIN2, inPin2);
analogWrite(PWMB, speed);
}
}
void stop(){
//enable standby
digitalWrite(STBY, LOW);
}
实例效果
通电后,测量马达A与B的输出电压,基本相同,电压差在正负0.03V,输出稳定。这可以完美解决L9110S 和 L298N两路电机输出电压误差大导致的走不到直线的问题。
热门推荐
张守成花鸟画:典雅情趣与传承创新的完美融合
杭州职业技术学院拟更名大学,工作人员:更名完成后入学的学生才是本科生
老君山:揭秘这座神秘山峰的海拔高度,你猜对了吗?
阿托伐他汀与依折麦布复方片,成降脂新利器!用好它,要知道5点
摇曳的鸡尾酒:调制魅力的艺术
国债投资策略:长期与短期投资的选择
居家玄关摆件风水布局详解
海龟汤:传统滋补佳肴,助力美好婚姻
研究提醒:年龄大了,静息心率越高,全因死亡风险就越高
鳌拜之死:清朝风云中的权力博弈与家族兴衰
奶粉溯源码如何辨别真假
企业资质是什么?如何申请和维护?
安全气囊使用指南:工作原理、注意事项及展开条件详解
体重管理策略:营养与运动的关键作用
8所A+,中国“最火爆”学科,谁最强?
猫咪怀孕多久会生?了解猫咪妊娠期的关键知识
盉、卣、銎、罍、璏、簋……博物馆里的生僻字,你认识吗?
“我爱你”:三字里的无尽情感魅力
向海图强 河南远航 ——从周口晋升“国家队”看河南省内河航运新机遇
让人羡慕的农家小院,生活有乐趣,清闲又自在,有滋有味
小儿家庭必备退烧药 为你的宝宝选好退烧药
戴眼镜一段时间后视力模糊,如何处理
精神分裂症的家庭护理要点
缺氧攻略:浅谈一下经验
海啸:人类面临的严重自然灾害
全球肺癌临床治疗模式变化趋势
IIS服务器的功能与应用
炒股指期货的技术分析方法有哪些?这些方法如何帮助投资者决策?
航空工业集团成飞公司实施科技创新“百团大战” 激发科技人才创新活力
[数据分享]人口密度数据