风筝
发表于: 2018-8-14 09:02:29 | 显示全部楼层

在本篇文章中,我们将新建一个简单的MATLAB m文件来与Arduino开发板进行通信。 MATLAB用于Arduino硬件的支持包允许您使用MATLAB通过USB电缆与该开发板通信。支持包适用于32位和64位Windows系统、64位Mac OS和64位Linux。


安装包

您可以通过MATLAB轻松安装软件包。


首先,启动MATLAB,然后单击Add-Ons下拉菜单。在下拉菜单中,单击“Get Hardware Support Packages”。它将启动包安装程序窗口。

matlab1.png

选择Install from internet,然后选择Next

matlab2.png

在下一个窗口中,您将看到MATLAB和Simulink的所有可用包。选择Arduino软件包,然后选中显示的所有软件包,单击“Next”继续安装。请注意,这张图片显示我正在重新安装Arduino软件包,因为我之前已经安装过它们。

matlab3.png

接下来,安装程序将要求您登录MathWorks帐户。如果您没有帐户,可以在安装期间创建一个帐户。在下一个界面上接受许可协议,然后继续下载软件包。现在您需要等待MATLAB下载并安装所有必需的软件包。


测试

安装软件包后,将Arduino开发板连接到PC并在MATLAB命令窗口中键入以下命令,

  1. >> a = arduino()
复制代码

如果您的PC连接了多个Arduino,则必须指定要与之通信的开发板类型:

  1. >> a = arduino(‘com3’, ‘uno’)
复制代码

然后MATLAB将尝试与您的电路板通信。如果成功,MATLAB将显示连接到PC的Arduino开发板的属性,如下所示:

matlab4.png

此信息显示电路板所连接的端口、Arduino电路板的型号以及开发板可用的引脚和库。


在工作区中,您将看到一个变量a,它是MATLAB Arduino对象。运行以下命令以清除此对象。

  1. >> clear a
复制代码

此命令将从工作区中删除对象a。


接线图

如下所示连接电路图以完成以下两个示例:

matlab_5.png

它看起来类似:

matlab_6.png


实验1:使用MATLAB进行数字I / O

在这个例子中,我们将使用MATLAB实现LED闪烁。


所需的硬件

●    Arduino Uno开发板

●    1k欧姆电阻器

●    用于arduino的USB线

●    LED指示灯


代码

启动MATLAB并创建一个m文件并编写以下代码:

  1. % create an arduino object

  2. a = arduino('com3', 'uno');     

  3. % start the loop to blink led for 10 seconds

  4. for i = 1:10

  5.     writeDigitalPin(a, 'D11', 1);

  6.     pause(0.5);

  7.     writeDigitalPin(a, 'D11', 0);

  8.     pause(0.5);

  9. end

  10. % end communication with arduino

  11. clear a
复制代码

确保MATLAB中没有存储先前的Arduino对象,否则MATLAB将显示错误消息。保存文件并运行它。这将使得LED每1秒闪烁一次。


步骤

●    启动MATLAB并安装Arduino硬件支持包(如果尚未安装)。

●    将您的开发板连接到PC并测试它是否与MATLAB一起正常工作。

●    按照电路图所示连接电路,并通过电阻将引脚11连接到LED引脚的一端。

●    将LED的另一端连接到arduino板上的接地引脚。

●    写下您的m文件并保存。运行您的文件,MATLAB会将该文件烧录到您的开发板上。

●    LED指示灯开始闪烁。


实验2:模拟信号控制

在这个例子中,我们将使用脉冲宽度调制信号来改变LED的亮度。程序通过将引脚提供的最大和最小电压除以我们将达到led的最大亮度的迭代次数来计算brightness_step。


所需的硬件

●    Arduino Uno开发板

●    1k欧姆电阻器

●    用于arduino的USB线

●    LED指示灯


如上图所示连接电路。


代码

  1. % create an arduino object

  2. a = arduino('com3', 'uno');     

  3. % calculate a brightness step

  4. brightness_step = (5-0)/20;

  5. % start a loop to brighten up the led

  6. for i = 1:20

  7.     writePWMVoltage(a, 'D11', i*brightness_step);

  8.     pause(0.1)

  9. end

  10. % start a loop to turn off the led in steps so that it looks like

  11. % led is fading

  12. for i = 1:20;

  13.     writePWMVoltage(a, 'D11', 5-i*brightness_step);

  14.     pause(0.1)

  15. end

  16. % end communication with arduino

  17. clear a
复制代码

步骤

●    启动MATLAB并安装Arduino硬件支持包(如果尚未安装)。

●    将您的开发板与PC连接,并测试它是否与MATLAB一起正常工作。

●    按电路连接图所示连接电路,通过电阻将引脚11连接到LED引脚的一端。

●    将LED的另一端连接到arduino板上的接地引脚。

●    写下您的m文件并保存。运行您的文件,MATLAB会将该文件烧录到您的开发板上。

●    LED指示灯开始变亮,然后变暗。

跳转到指定楼层
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题 714 | 回复: 1501



手机版|

GMT+8, 2024-12-22 15:21 , Processed in 0.071369 second(s), 9 queries , Gzip On, MemCache On. Powered by Discuz! X3.5

YiBoard一板网 © 2015-2022 地址:河北省石家庄市长安区高营大街 ( 冀ICP备18020117号 )

快速回复 返回顶部 返回列表