主要内容

使用Arduino硬件发送和接收串行数据

这个例子展示了如何使用Simulink®Support Pa金宝appckage金宝app for Arduino®Hardware来发送和接收串行数据。

金宝app支持的硬件

  • Arduino超级2560

  • Arduino Mega Adk.

  • Arduino Uno

  • Arduino到期

  • Arduino MKR1000

  • Arduino MKR WIFI 1010

  • Arduino ZERO

  • arduino leonardo

  • Arduino Nano 33 IoT

  • Arduino Nano 33 BLE Sense

介绍

在这个例子中使用Arduino硬件发送和接收串行数据使用Arduino硬件发送串行数据到主机模型用于发送和接收串行数据。这些模型使用串行传递序列收到块来交换数据。

  • 使用Arduino硬件发送串行数据到主机:在此模型中,Arduino硬件通过Arduino硬件的串行端口0(USB端口)向计算机发送数据。此模型配置为以正常模式运行。在此模式下,该模型部署在Arduino硬件上。

本例中提供的模型是为Arduino Mega 2560板预先配置的。你可以在任何一块板上运行这些模型金宝app支持的硬件通过改变的部分硬件板Simulink模型中的参数。金宝app有关如何更改的更多信息硬件板参数,见步骤2:配置Arduino硬件模型这个例子的一部分。

先决条件

在开始这个示例之前,我们建议您完成以下内容:

所需的硬件

要运行此示例,您必须具有以下硬件:

  • 金宝app支持Arduino电路板

  • 连接电线

  • USB电缆

步骤1:在Arduino硬件上连接TX和RX引脚

1。使用USB电缆将您的Arduino Board连接到计算机。

2。将TX1引脚连接到Arduino硬件的RX1引脚。这个连接是一个环回连接。

步骤2:配置Arduino硬件的Si金宝appmulink模型

1。打开使用Arduino硬件发送和接收串行数据模型。此模型被配置为在外部模式下运行。

2。要配置模型,单击硬件设置硬件选项卡。金宝app

3.在“配置参数”对话框中,选择硬件实现

4.来自硬件板列表,选择您正在使用的Arduino板类型。

5。来自团体列表目标硬件资源, 选择串行端口属性

串口1波特率参数设置为9600。在这个例子中,波特率串口1波特率设置为TX1和RX1引脚对应于Arduino硬件的串行端口1。如果您使用的是用于通信的任何其他串行端口引脚,请指定相应的串口的波特率。

6。点击申请。点击好吧关闭对话框。

第3步:在Simulink模型中配置块金宝app

双击这些块并验证块参数对话框中指定的参数值。

块|参数名称|价值  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - -----------------------------常量|恒定值|[5682.769 -4561 7825] |将载体参数解释为1-D |选择|采样时间|0.1串行发射|串口| 1 | Send mode | write Serial Receive | Port number | 1 | Data type | double | Data length | 3 | Sample time | 0.1 Display Data | Format | long Display Status | Format | short

笔记

  • 因为TX1引脚连接到RX1引脚,所以指定串行端口参数的串行传递块和端口号参数的序列收到1

  • 采样时间的参数常数块和序列收到块必须是相同的。

步骤4:验证使用连接I/O的Sim金宝appulink模型设计

在生成代码并在Arduino上部署模型之前,您可以使用Connected I/O在Normal模式下模拟模型,以验证模型设计。当您模拟模型时,TX1引脚将数据传输到Arduino硬件的RX1引脚。模型和Arduino之间的这种通信不需要任何代码生成或模型部署,从而加快了仿真过程。有关连接I/O的更多信息,请参见使用连接的I / O与正常模式仿真中的硬件通信

使用Connected I/O在Normal模式下模拟模型:

1。在这一点硬件选项卡中的金宝app模式部分,选择连接输入输出然后点击运行IO。当Simulink在您的计算机上准备、下载和运行Simulink模型时,模型窗口的左下角显示状态。金宝app

在每个时间步骤,TX1引脚传输在常数块到Arduino硬件的RX1引脚。RX1引脚接收数据并显示它显示输出堵塞。

2。观察输出显示输出显示状态块。

块| |描述输出  --------------------------------------------------------------------------------------- 显示数据| |(7825 -4561 5682.769)显示接收到的数据| | RX1销的Arduino | |硬件在给定的时间步长。| |与|Constant|块中的| |相同。显示状态| 1 |值为1表示| | Serial Receive block在给定的时间步长接收到数据| |。

3.断开RX1引脚上的电线。这两个展示现在输出块0.。价值0.显示状态块表示在给定的时间步长没有接收数据。如果再次重新连接,可以看到展示块恢复。

4.要停止运行模型,请单击停止

步骤5:在外部模式下运行金宝appSimulink模型(监控和调优)

在Connected I / O中成功模拟模型后,在外部模式下模拟模型。与连接的I / O不同,模型将部署为硬件上的C代码。代码从硬件获取实时数据。

在外部模式下模拟模型:

1。在这一点硬件选项卡中的金宝app模式部分,选择跑在船上然后点击监控和曲调。模型窗口的左下角显示Simulink在硬件上准备、下载和运行Simulink模型时的状态。金宝app

2。要停止运行模型,请单击停止

第六步:在Arduino上部署金宝appSimulink模型

1。卸下连接RX1和TX1引脚的导线,因为在该模型中,数据将在串行端口0(USB端口)上发送到串行端子。

2。打开使用Arduino硬件发送串行数据到主机模型。此模型配置为以正常模式运行。

3.在“配置参数”对话框中,转到硬件实现>目标硬件资源>团体>串行端口属性。集串口0波特率到Arduino硬件串口支持的最大波特率。金宝app

4.双击串行传递阻塞并验证这些参数值。

参数名称|价值|描述  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - ------------------------------------------------------------------------串口|0 |通过串行端口发送数据0.发送模式|println |添加回车符号'\ r'(ascii 13)||和纽诺字符'\ n'(ascii 10)|| end of each byte of data. Label | Counter_val : | The label for the data to be displayed on the serial terminal.

5。在这一点硬件选项卡中的金宝app模式部分,选择跑在船上然后点击构建,部署和启动。模型窗口的左下角显示Simulink在硬件上准备、下载和运行Simulink模型时的状态。金宝app

6。打开计算机中的串行终端(例如Arduino IDE串行监视器)。登录串口时:

  • 指定与串行连接对应的COM端口号。要了解如何找到COM端口号,请参阅手动配置主机和引导程序COM端口

  • 将波特率指定为与“模型配置参数”对话框中设置的波特率相同的值。在这个例子中,波特率是115200

登录到串口终端后,可以看到计数器值带有标签显示counter_val:

其他可以尝试的事情

  • 创建使用的Simu金宝applink模型序列收到序列发送仪器控制工具箱在您的计算机和Arduino硬件之间交换串行数据。