挑战使用MATLAB/Simulink和Arduino实现LED闪烁控制(L闪)
Back to Top
为了覆盖更广泛的受众,这篇文章已从日语翻译而来。
您可以在这里找到原始版本。
引言:使用 Simulink 和 Arduino 开始“L闪”
#“L闪”(LED 闪烁) 是硬件控制入门中最基本的实验。
在本篇文章中,我将解说如何将 MATLAB/Simulink 与 Arduino 联动,以及创建 LED 闪烁程序的方法。
开发环境准备
#- 软件
- MATLAB(版本:R2025a)
- Simulink(版本:25.1)
- 应用(for Simulink)
- Simulink Support Package for Arduino Hardware(版本:25.1.0)
- 硬件
- Arduino Uno/Nano(或兼容板)
- USB 数据线(用于 PC 与 Arduino 通信)
- (可选)
- LED + 电阻(约 330Ω)
- 面包板、跳线
环境搭建详细步骤:
#1. 安装 MATLAB 和 Simulink
- 从 MathWorks 官方网站下载安装程序
- 进行许可证认证,安装 MATLAB 和 Simulink
- 安装时请务必勾选“Simulink”组件
2. 导入 Arduino 支持包
-
在搜索框中输入 “Arduino”,选择
Simulink Support Package for Arduino Hardware
-
点击 Install 并安装该包
-
安装完成后,Simulink 库中将添加“Simulink Support Package for Arduino Hardware”模块
3. 确认 Arduino 的串口通信
- 将 Arduino 板通过 USB 连接到 PC,会自动识别驱动
- 如果未识别,请在设备管理器(Windows)或使用
ls /dev/tty*
(Mac/Linux)检查端口(※下图示例连接在 COM7)
电路连接
#将 Arduino 的 13 号引脚 和 GND 连接到 LED + 电阻。
(如果使用板载 LED,则无需外部接线)
电路示意图:
(Arduino 13) ----[电阻330Ω]----|>|(LED)---- (GND)
创建 Simulink 模型
#创建新模型
#-
从模块库中放置以下模块:
参数设置
#设置刚才放置模块的参数。
-
Pulse Generator
-
Digital Output
由于采样时间为“0.001”(秒),采样周期为“1000”,因此周期(时间)为“1(秒)”。
脉宽设置为“500”,因此在此设置下,LED 将每 500 毫秒重复 ON/OFF。
模型设置
#按如下方式配置硬件参数。
(本次使用了 Arduino Nano 兼容板。由于兼容板使用的是旧版 bootloader,应用下载的波特率较低)
确认脉冲发生器输出
#在将应用程序上传到 Arduino 之前,先确认脉冲是否正确输出。
监视与调整(通过 USB 端口确认运行)
#通过 USB 将程序传输到 Arduino Nano,确认程序是否正常运行。
写入并运行 Arduino
#将程序上传到 Arduino,使其能够自动运行。
运行结果与思考
#- 仅需连接两个模块,就能轻松创建 LED 闪烁程序。
- 缩短周期即可实现“高速闪烁”(例如,周期设为100,脉宽设为50 等)。
- 通过改变脉宽 (占空比),可应用于亮度控制(PWM 基础)。
总结
#- 通过将 MATLAB/Simulink 与 Arduino 结合,可以基于方块图直观地开发控制程序。
- LED 闪烁是一个简单的示例,但可扩展到 PWM 控制、传感器输入、马达控制等应用。
如果仅仅是让 LED 闪烁,使用 Arduino IDE 或 PlatformIO 等开发环境编程可能更快速,但在今后进行复杂编程时,我认为 MATLAB/Simulink 将成为 MBD 开发的强大工具。
今后我想制作自定义库,并连接更高级的外围设备来进行更细致的编程挑战。