MX1508智能小车1.0入门版


doit_179885156902912
原创
发布时间: 2026-04-25 17:31:33 | 阅读数 0收藏数 0评论数 0
封面
大家好,这次制作一个3D打印底盘的PWM小车。下面的教程将指导大家制作一台基于Arduino Nano的自动循环智能小车,使用MX1508电机驱动模块控制4个TT减速电机,实现“前进4秒→原地顺时针转圈5秒→后退4秒→等待20秒→重复循环”的自动动作,步骤清晰、操作简单,适合新手入门。后面将探索新的功能。

准备工作:

材料:

材料名称
数量
备注
m3螺丝【配套螺母】
8
长度≥28mm
3D打印底盘
1
/
电机夹板
8
/
Arduino nano
1
数据线
1
/
MX1508驱动板
1
Arduino nano拓展版
1
/
轮子
4
/
12V电源
1
杜邦线
/
/
扎带
/
STP
小车底盘.stp
1001.23KB
STP
电机夹板.stp
32.18KB

工具:

工具名称
数量
备注
螺丝刀套装
1
/
剪刀
偏口钳
烙铁套装
1

引脚定义接线图

本教程固定引脚,无需修改,程序直接适配

2

安装减速电机

  1. 4个减速电机焊接好杜邦线
  2. 使用3D打印的电机夹板固定电机,螺丝为M3*28mm【长度大于等于28mm】
3

电机驱动预处理

  1. MX1508驱动为A、B两个电机接口,4针,为后期使用避免频繁接线,这里在原来的4针脚上并出新4脚排针,这里使用的是弯针
  2. 焊接注意,默认弯针的间距小,焊接注意错位,多余的针脚剪掉即可
4

驱动接线

1.连接Arduino Nano与MX1508驱动模块:

  1. 用公对母杜邦线,将MX1508的INA1接到Arduino Nano的2号引脚;
  2. 将MX1508的INA2接到Arduino Nano的3号引脚;
  3. 将MX1508的INB1接到Arduino Nano的4号引脚;
  4. 将MX1508的INB2接到Arduino Nano的5号引脚;
  5. 将MX1508的VCC接到Arduino Nano的5V引脚;
  6. 将MX1508的GND接到Arduino Nano的GND引脚(共地关键)。


2.连接MX1508驱动模块与4个TT电机:

  1. MX1508有2组输出接口(OUTA+、OUTA-;OUTB+、OUTB-);
  2. 左侧2个TT电机:电机的正负极分别接到OUTA+、OUTA-(两个电机并联,正负极一致);
  3. 右侧2个TT电机:电机的正负极分别接到OUTB+、OUTB-(两个电机并联,正负极一致);
  4. 注意:电机正负极接反会导致电机反转,后续可通过调试修正。

3.连接12V电源:

  1. 将12V电池输出公头直接供电nano拓展板即可

4.接线完成后,重点检查3点:

  1. 所有GND(Arduino Nano、MX1508)是否连接在一起;
  2. MX1508的VCC是否接对Arduino Nano的5V,未接反;
  3. 电机正负极是否与OUTA、OUTB的正负极对应,避免反转


5

准备Arduino IDE

1. 安装Arduino IDE(版本建议1.8.5及以上,或2.3.8,均可兼容);

2. 打开IDE,选择“工具→开发板→Arduino Nano”;

3. 选择“工具→处理器→ATmega328P(Old Bootloader)”(若上传失败,可切换此选项);

4. 选择“工具→端口”,找到Arduino Nano对应的串口(可通过设备管理器查看)。

// MX1508 4轮小车自动程序
// 功能:前进4s → 顺时针转圈5s → 后退4s → 等待20s → 循环

#define INA1 2
#define INA2 3
#define INB1 4
#define INB2 5

#define SPEED 200 // 电机速度(0-255,越大越快,新手建议200)

void setup() {
Serial.begin(9600); // 初始化串口,用于查看状态
// 设置所有控制引脚为输出模式
pinMode(INA1, OUTPUT);
pinMode(INA2, OUTPUT);
pinMode(INB1, OUTPUT);
pinMode(INB2, OUTPUT);
Serial.println("智能小车启动成功!开始执行自动循环动作...");
}

// 小车前进(4个电机同时正转)
void forward() {
digitalWrite(INA1, HIGH);
digitalWrite(INA2, LOW);
digitalWrite(INB1, HIGH);
digitalWrite(INB2, LOW);
Serial.println("状态:前进");
}

// 小车后退(4个电机同时反转)
void back() {
digitalWrite(INA1, LOW);
digitalWrite(INA2, HIGH);
digitalWrite(INB1, LOW);
digitalWrite(INB2, HIGH);
Serial.println("状态:后退");
}

// 原地顺时针转圈(左轮前进,右轮后退)
void turnClockwise() {
digitalWrite(INA1, HIGH);
digitalWrite(INA2, LOW);
digitalWrite(INB1, LOW);
digitalWrite(INB2, HIGH);
Serial.println("状态:原地顺时针转圈");
}

// 停车(所有电机停止转动)
void stopCar() {
digitalWrite(INA1, LOW);
digitalWrite(INA2, LOW);
digitalWrite(INB1, LOW);
digitalWrite(INB2, LOW);
Serial.println("状态:停车,等待20秒后继续循环\n");
}

// 主循环(自动重复执行预设动作)
void loop() {
// 1. 前进4秒
forward();
delay(4000); // 延时4000毫秒(4秒)
// 2. 原地顺时针转圈5秒
turnClockwise();
delay(5000); // 延时5000毫秒(5秒)
// 3. 后退4秒
back();
delay(4000); // 延时4000毫秒(4秒)
// 4. 停车,等待20秒后重复循环
stopCar();
delay(20000); // 延时20000毫秒(20秒)
}

或者直接下载程序


INO
MX1508.ino
1.45KB
6

调试与运行

打开串口监视器,设置参数:

  1. 波特率:9600
  2. 换行符:NL+CR

2. 串口会实时打印小车状态,例如:

智能小车启动成功!开始执行自动循环动作... 状态:前进 状态:原地顺时针转圈 状态:后退 状态:停车,等待20秒后继续循环

【常见调试问题】

  1. 问题1:电机不转 → 检查接线是否正确(尤其是GND共地)、电源是否有电、电机正负极是否接反;
  2. 问题2:小车前进/后退方向相反 → 调换对应电机的正负极(如左侧电机反转,调换OUTA+和OUTA-的接线);
  3. 问题3:原地转圈不明显 → 检查左右电机速度是否一致,可调整代码中的SPEED参数(两侧电机速度需相同);
  4. 问题4:程序上传失败 → 检查端口选择是否正确、处理器型号是否选对(ATmega328P Old Bootloader)、杜邦线是否接触良好。

【注意事项】

  1. 供电稳定:建议使用5V/2A电源,避免电源不足导致电机转速不稳定;拓展板使用12V电源,注意,5号电池4节是带不起来的,因为启动电流不够
  2. 电机保护:避免小车长时间连续运行,防止电机过热损坏;
  3. 接线规范:接线时务必断电操作,避免正负极接反烧毁模块和电机;
  4. 放置环境:测试时将小车放在平坦的地面,避免卡顿导致电机堵转。


阅读记录0
点赞0
收藏0
禁止 本文未经作者允许授权,禁止转载
猜你喜欢
评论/提问(已发布 0 条)
评论 评论
收藏 收藏
分享 分享
pdf下载 下载
pdf下载 举报