Arduino蓝牙小车:从零到一的无线遥控实现

📅 2026/7/16 2:13:28
Arduino蓝牙小车:从零到一的无线遥控实现
1. 项目概述与材料清单想要亲手制作一台能用手机蓝牙遥控的小车吗这个Arduino蓝牙小车项目非常适合刚接触硬件的创客爱好者。我去年带学生做这个项目时发现它不仅能学习基础电路知识还能理解无线通信原理。整个项目成本不到200元周末下午就能完成。必备材料清单Arduino Uno开发板兼容版也行L298N电机驱动模块建议买带散热片的版本HC-05蓝牙模块注意要买主从一体款直流减速电机6V/200转的性价比最高小车底盘套件含轮子、亚克力板等18650锂电池两节带电池盒更安全杜邦线若干建议买20cm长的公对公、公对母各10条我第一次做这个项目时因为贪便宜买了杂牌电机驱动模块结果调试时冒烟烧毁了。后来换成正规的L298N模块就再没出过问题。这里特别提醒电机驱动一定要选带光耦隔离的能有效保护Arduino主板。2. 硬件组装与电路连接2.1 机械结构组装先从小车底盘开始组装。把亚克力板平铺在桌面按照说明书用螺丝固定电机支架。这里有个小技巧在电机轴和轮毂接触处滴一滴502胶水等30秒再套上轮子能防止后期跑动时轮子打滑。记得给电机接线留出足够长度我建议预留15cm左右。2.2 电路接线详解核心接线原则先接电源再连信号线。按照这个顺序操作能避免短路风险电源部分锂电池正极接L298N的12V输入负极接GND共地很重要L298N的5V输出接Arduino的VIN引脚电机驱动左电机接OUT1和OUT2右电机接OUT3和OUT4用万用表测试电机正反转如果方向反了调换接线即可蓝牙模块HC-05的VCC接Arduino 5VGND接GNDTX接Arduino的RX注意是交叉连接RX接Arduino的TX实测中发现如果蓝牙模块接反了虽然不会烧毁但会导致串口通信失败。有个判断技巧正常工作时HC-05上的LED会间隔闪烁如果常亮或完全不亮就要检查接线。3. Arduino程序编写3.1 基础控制逻辑先定义电机控制引脚建议使用PWM引脚带~标记的以便后期调速// 电机引脚定义 #define ENA 5 // 左电机使能 #define IN1 6 // 左电机方向1 #define IN2 7 // 左电机方向2 #define ENB 10 // 右电机使能 #define IN3 8 // 右电机方向1 #define IN4 9 // 右电机方向2 void setup() { // 所有电机控制引脚设为输出 pinMode(ENA, OUTPUT); pinMode(IN1, OUTPUT); // ...其他引脚类似设置 Serial.begin(9600); // 蓝牙串口初始化 }3.2 运动函数封装把常见动作封装成函数会大幅提高代码可读性。下面是经过优化的运动函数void moveForward(int speed) { analogWrite(ENA, speed); analogWrite(ENB, speed); digitalWrite(IN1, HIGH); digitalWrite(IN2, LOW); digitalWrite(IN3, HIGH); digitalWrite(IN4, LOW); } void turnLeft(int speed) { analogWrite(ENA, speed); analogWrite(ENB, speed); digitalWrite(IN1, LOW); digitalWrite(IN2, HIGH); // 左轮反转 digitalWrite(IN3, HIGH); digitalWrite(IN4, LOW); // 右轮正转 }3.3 蓝牙指令解析在loop()中添加蓝牙数据处理逻辑。建议使用switch语句提高效率void loop() { if(Serial.available()) { char cmd Serial.read(); switch(cmd) { case F: moveForward(200); break; case B: moveBackward(200); break; case L: turnLeft(150); break; case R: turnRight(150); break; case S: stopMotors(); break; default: break; } } }调试时可以用串口监视器发送测试指令输入F/B/L/R/S看小车反应。如果出现电机抖动可能是PWM频率问题可以在setup()里加上analogWriteFrequency(1000)调整。4. 手机APP配置与调试4.1 蓝牙配对连接给手机安装蓝牙串口助手APP推荐Serial Bluetooth Terminal。打开HC-05电源在手机蓝牙设置里搜索并配对默认密码通常是1234。配对成功后APP里选择该设备建立连接。有个常见问题部分手机会自动断开蓝牙连接。解决方法是在APP设置里关闭优化电池用量选项保持后台运行。4.2 自定义控制界面高级玩法是使用MIT App Inventor自己开发控制APP。我做过一个带摇杆控制的版本核心逻辑是通过摇杆坐标生成方向指令水平摇杆X坐标0时发送RX坐标0时发送L垂直摇杆Y坐标0时发送FY坐标0时发送B这样操作起来比按键更流畅适合需要精准控制的场景。APP源码可以在我GitHub找到链接在文末。5. 进阶优化与问题排查5.1 电源系统改进基础版用两节18650电池供电但连续运行20分钟后会出现电压下降导致电机无力。我的改进方案增加一块稳压模块单独给Arduino供电电机电源改用7.4V航模电池在L298N的电源输入端加装470μF电容滤波实测改进后小车动力提升40%连续工作1小时以上不衰减。5.2 常见故障排查问题1蓝牙连接不稳定检查天线是否完好确保模块与手机距离10米避开WiFi路由器等2.4G设备干扰问题2电机单边无力用万用表测量电机两端电压检查对应驱动通道的二极管是否损坏尝试调换电机线测试是否为电机本身问题问题3小车跑偏在代码中为左右电机设置不同的PWM补偿值检查轮胎是否打滑在平整地面重新校准最后分享一个实用技巧在车头加装超声波模块后可以扩展自动避障功能。当检测到前方障碍物时自动刹车结合蓝牙遥控就变成半自动小车了。相关代码和接线图我已经整理成完整教程需要的朋友可以留言索取。