当前位置: 首页 > news >正文

物联网智能小车实战:L9110S、TB6612FNG与DRV8833电机驱动模块深度对比与应用指南

1. 三种电机驱动模块基础参数对比

先来看一张参数对比表,这是我实测后整理的干货数据:

参数L9110STB6612FNGDRV8833
工作电压范围2.5V-12V3V-13.5V2.7V-10.8V
持续输出电流800mA1.2A1.5A
峰值电流1.5A2A/3.2A2A
PWM频率支持无专用PWM引脚最高100kHz需通过IN引脚实现
待机功能
保护功能过温保护过温/欠压保护过流/短路/欠压保护
典型应用场景玩具车/小型机器人智能小车/中型负载精密控制设备

实测中发现几个关键点:

  • L9110S在9V供电时芯片表面温度约42℃,而TB6612FNG在相同负载下仅36℃
  • DRV8833的FAULT引脚非常实用,我在调试时曾因短路触发保护,LED指示灯立即亮起
  • TB6612FNG的待机电流仅0.1μA,适合电池供电项目

2. 电路连接实战详解

2.1 ESP32与L9110S的连接方案

最简接线只需要6根线:

// ESP32引脚定义 #define MOTOR_A1A 12 // GPIO12 #define MOTOR_A1B 13 // GPIO13 #define MOTOR_B1A 14 // GPIO14 #define MOTOR_B1B 15 // GPIO15 void setup() { pinMode(MOTOR_A1A, OUTPUT); pinMode(MOTOR_A1B, OUTPUT); // 其他引脚类似... }

注意坑点:L9110S没有使能端,PWM调速需要同时给两个控制引脚输出互补信号。比如要让电机A正转50%速度:

analogWrite(MOTOR_A1A, 128); // 50%占空比 analogWrite(MOTOR_A1B, 0); // 保持低电平

2.2 TB6612FNG的双电源设计

这个模块需要特别注意电源配置:

  1. VM接电机电源(我用的7.4V锂电池)
  2. VCC接逻辑电源(ESP32的3.3V)
  3. STBY引脚必须接高电平

典型接线图:

ESP32 GPIO16 → PWMA ESP32 GPIO17 → AIN1 ESP32 GPIO5 → AIN2 ESP32 3.3V → VCC 电池正极 → VM

2.3 DRV8833的保护电路应用

DRV8833的FAULT引脚需要接10kΩ上拉电阻到3.3V。我在项目中的实际接法:

const int faultPin = 34; // ESP32的输入引脚 void checkFault() { if(digitalRead(faultPin) == LOW) { Serial.println("电机驱动异常!"); // 紧急停止逻辑... } }

3. PWM调速的三种实现方式

3.1 L9110S的软件PWM方案

由于没有专用PWM引脚,需要用delay微调:

void motorSpeed(int speed) { // speed: 0-255 for(int i=0; i<100; i++) { digitalWrite(MOTOR_A1A, HIGH); delayMicroseconds(speed * 2); digitalWrite(MOTOR_A1A, LOW); delayMicroseconds(510 - speed*2); } }

3.2 TB6612FNG的硬件PWM

ESP32的LEDC外设是绝配:

const int freq = 5000; const int resolution = 8; ledcSetup(0, freq, resolution); // 通道0 ledcAttachPin(PWMA_PIN, 0); void setSpeed(int speed) { ledcWrite(0, speed); // 直接写入PWM值 }

3.3 DRV8833的相位调速

通过交替改变IN1/IN2的PWM实现:

void phaseControl(int speed) { analogWrite(IN1, speed); analogWrite(IN2, 255-speed); }

4. 典型应用场景选择建议

4.1 避障小车方案

推荐组合:ESP32 + TB6612FNG

  • 优势:待机功能节省电量,1.2A电流足够驱动130电机
  • 实测数据:4节AA电池可连续工作3小时

关键代码片段:

void avoidObstacle() { if(ultrasonicRead() < 20) { // 紧急转向 ledcWrite(0, 255); // 左轮全速 ledcWrite(1, 80); // 右轮减速 } }

4.2 遥控赛车方案

推荐组合:ESP32 + DRV8833

  • 优势:2A峰值电流支持快速启停
  • 技巧:启用FAULT监测可防止电机堵转烧毁

4.3 教育级机器人

推荐组合:ESP32 + L9110S

  • 优势:成本低廉,接线简单
  • 教学建议:先用LED替代电机演示逻辑关系

5. 常见问题解决方案

问题1:电机抖动不转

  • 检查电源电压是否达标
  • 测量电机两端电压是否正常
  • L9110S需确保两个控制信号互补

问题2:驱动芯片发烫

  • 立即断电检查是否短路
  • TB6612FNG需确认STBY引脚状态
  • DRV8833检查散热是否良好

问题3:PWM调速不线性

  • 调整PWM频率(TB6612FNG建议5-10kHz)
  • 检查电源滤波电容(建议并联100μF)
  • L9110S需要优化软件PWM算法

我在去年做的智能送餐车项目就遇到过PWM干扰问题,后来发现是电源走线太长导致的。解决方法是在电机供电端就近加装470μF电解电容,同时用0.1μF陶瓷电容滤除高频噪声。

http://www.jsqmd.com/news/578028/

相关文章:

  • 用两片74LS73芯片,手把手教你搭建一个四位二进制计数器(附完整电路图与波形分析)
  • 1079div1A. Game with a Fraction
  • 从YOLOv5到YOLOv11:聊聊为什么Ultralytics还在用CNN,以及我踩过的那些坑
  • 艾奇GEO:零售企业AI搜索转化低破局指南——从流量到意图的精准匹配逻辑 - 小白条111
  • 入行热设计近20年,我整理了一份新手入门指南(价值/流程/资料/避坑)
  • ICMP协议实战指南:从原理到网络诊断
  • 别再只会ollama run了!这10个Ollama命令帮你玩转本地大模型
  • Go高性能缓冲区管理器(BufferManager)设计与实现
  • 多AI平台适配效果差怎么办?艾奇GEO专业方案解析 - 小白条111
  • 局部遮阴下光伏最大功率点跟踪:布谷鸟算法与电导增量法的巧妙结合
  • 3步搞定语雀文档迁移:免费开源工具yuque-exporter终极指南
  • MyBatis性能优化神器!用IDEA插件Log Free分析慢SQL的5种姿势
  • Vite项目中使用pnpm构建时Rollup模块解析失败的深度解析与解决方案
  • 新手必看:用Wireshark分析CTF流量题,手把手教你从抓包到找到Flag
  • 用Wireshark抓包分析CAN总线:手把手教你解码数据帧与遥控帧
  • Windows右键菜单瘦身秘籍:3个技巧让你的文件操作快如闪电
  • SDK 游戏盾接入闪退 / 初始化失败?依赖冲突与兼容修复
  • SecGPT-14B模型量化:降低OpenClaw长期运行的Token消耗
  • 第四章 可微分声纳物理与端到端自适应处理
  • 鸽姆智库创始人贾子简历、成就及其贾子哲学思想理论体系构建研究
  • 告别热键劫持:Hotkey Detective的系统级冲突解决方案
  • Golang基于Redis的高性能发布订阅(PubSub)系统设计与实现
  • Fish Speech 1.5优化指南:调整参数让语音更自然、更逼真
  • 实战驱动:基于快马平台生成集成openclaw的ubuntu自动化测试项目实例
  • Megatron-LM源码解析:Tensor与Sequence并行训练中的通信优化策略
  • 效率提升:用快马生成脚本自动化你的zotero文献整理与格式化工作
  • 保姆级教程:手把手教你用VCSA 8.0.3接管Windows AD域,实现统一登录
  • 用ESP32-WROOM-32和xiaozhi开源项目,5分钟搞定一个智能温湿度监测站(附Home Assistant联动配置)
  • 跨平台运行Android应用:APK Installer实现Windows系统无缝集成与性能优化指南
  • 4/2