Arduino 4WD 遥控小车:nRF24L01+摇杆手柄完整制作指南
元器件清单
| 元器件 | 数量 | 用途 |
|---|---|---|
| Arduino UNO R3 | 2 | 车端 + 手柄端各一 |
| nRF24L01+PA+LNA 模块 (带天线) | 2 | 2.4GHz 无线通信,空旷距离 1km |
| Funduino 摇杆扩展板 V1.A | 1 | 含 2 轴摇杆 + 7 按键 + nRF24 接口 |
| L298N 双 H 桥驱动板 | 2 | 驱动 4 个直流减速电机 |
| 4WD 智能小车底盘套件 | 1 | 含 4 电机、车轮、底盘板 |
| 18650 锂电池 | 2 | 车端供电(建议带保护板) |
| 移动电源 / 5V 升压模块 | 1 | 手柄端供电 |
| LED、220Ω 电阻、面包板、跳线 | 若干 | 指示灯、原型搭建 |
硬件连接说明
手柄端 (发射端)
- 摇杆 X 轴 → A0,Y 轴 → A1
- 按键:上(2)、右(3)、下(4)、左(5) —— 内部上拉
- nRF24L01 接线:CE→D9, CSN→D10, SCK→D13, MOSI→D11, MISO→D12, VCC→3.3V, GND→GND
- 注意: nRF24L01 供电必须 3.3V,不可接 5V!建议加 10μF 电容滤波
车端 (接收端)
- nRF24L01 接线:CE→D6, CSN→D8, SPI 共用 D11/D12/D13
- L298N #1 (右侧电机):ENA→D3, ENB→D5, IN1→D0, IN2→D1, IN3→D2, IN4→D4
- L298N #2 (左侧电机):ENA→D9, ENB→D10, IN1→A0, IN2→A1, IN3→A2, IN4→A3
- 前照灯 LED→A4 (D18),尾灯 LED→A5 (D19),蜂鸣器→D7
- 电机供电接 18650 电池组 (7.4V),逻辑供电接 Arduino 5V
通信协议与数据格式
手柄端每 20ms 发送 6 字节数组:
joystick[6] = {xAxis, yAxis, btnUp, btnRight, btnDown, btnLeft}
其中摇杆值为 0-1023 (10bit ADC),按键为 0/1 (低电平触发)。管道地址固定为 0xE8E8F0F0E1LL,速率 1Mbps,信道 22 (可调)。
核心控制算法
前进/后退 (Y 轴)
- yAxis < 470:后退,速度映射 470→0 映射为 PWM 0→255
- yAxis > 550:前进,速度映射 550→1023 映射为 PWM 0→255
- 中间死区 470-550:停止
转向 (X 轴)
- xAxis < 470:左转,左轮减速、右轮加速
- xAxis > 550:右转,右轮减速、左轮加速
- 差速转向算法:
speedLeft ±= xMapped,speedRight ∓= xMapped - PWM 下限阈值 70 (防止电机嗡嗡不转)
功能按键映射
| 按键 | 功能 |
|---|---|
| 上 (Up) | 蜂鸣器鸣笛 |
| 右 (Right) | 前照灯开/关 |
| 左 (Left) | 尾灯开/关 |
| 下 (Down) | 预留 |
| 摇杆按下 | 预留 |
调试与常见问题
- 上传代码前必须拔掉 D0/D1 跳线,否则串口冲突导致上传失败
- nRF24L01 供电不足是最大坑:必加 10-100μF 电容贴片在模块 VCC/GND 引脚
- 若通信不稳定,尝试降低速率至 250kbps (
rf.setDataRate(RF24_250KBPS)) 并增大发射功率 - 电机转向反了?交换对应 L298N 的 IN1/IN2 或 IN3/IN4
- 车身跑偏?调整左右电机 PWM 补偿系数
扩展玩法
- 加装超声波避障、循迹模块实现自主导航
- 接入 MPU6050 姿态解算,实现自平衡/防翻滚
- 手柄端加装 Nokia 5110 LCD 显示电压、信号强度
- 改用 ESP-NOW 或 WiFi 实现手机 App 控制
制造工艺
- Arduino 数字骰子:LCD 显示随机点数的电子骰子
- DIY Arduino USB 游戏手柄 — 自制高性能游戏手柄
- 废旧遥控车改装:Arduino + USB Host Shield 实现 Xbox 手柄无线控制
- DIY 钢铁侠人偶:Arduino 控制超声波触发音效与灯光
- Find Me:基于 Arduino 与蓝牙的智能寻物器制作指南
- 打造功能完整的 Arduino 驱动 3D 打印机械臂:分步指南
- DIY Arduino 加湿器控制器:继电器安全控制高压电路
- 智能停车计数系统:Arduino + Processing + PHP 实时车位追踪上云
- Arduino Nano 驱动 NeoPixel 矩阵:自制霓虹乒乓游戏
- DIY Arduino 手柄方向盘 - 游戏竞速模拟器自制指南
- 自制 Arduino 遥控保时捷赛车:从改装底盘到手机 App 控制全攻略
- Arduino + TEA5767 打造 FM 收音机:Nokia 5110 显频谱/信号强度/立体声