主要内容

使用Arduino外部中断块触发下游函数调用子系统

这个例子展示了如何通过使用外部中断来自Simulink®Ardu金宝appino®硬金宝app件支持包。

在本例中,您将了解如何在正常模式和外部模式模拟中触发函数调用。

  • 正常模式模拟:在正常模式下,您可以通过模拟外部中断块的输入来验证模型设计。外部中断块接收输入值为01在每个时间步骤。当块端口的输入为1,块执行函数调用子系统。函数调用在每次触发计数器时将计数器的值加1。

  • 外部模式仿真:在外部模式下,引脚4在每个时间步长在硬件引脚2处产生脉宽调制(PWM)信号。当引脚2接收到上升边作为输入时,块执行函数调用来增加计数器的值。

金宝appArduino的硬件支持

  • Arduino由于

  • Arduino达芬奇

  • Arduino超级2560

  • Arduino兆理应

  • Arduino微

  • Arduino MKR1000

  • Arduino MKR WIFI 1010

  • Arduino MKR零

  • Arduino 3.0纳米

  • Arduino机器人控制板

  • Arduino机器人电机板

  • Arduino Uno

  • Arduino Nano 33物联网

先决条件

在开始本示例之前,请完成入门Arduino硬件的例子。

所需的硬件

  • 金宝app支持Arduino电路板

  • USB电缆

  • 试验板线

步骤1:配置Simulink模型支持金宝app的Arduino硬件金宝app

1.在MATLAB®命令窗口中执行此命令打开模型。

open_system(“arduino_external_interrupt_sim”);

步骤2:模拟模型

在模型中SimIRQ外部中断块的端口连接到输入0中断源区域。的输入值1指示该块触发函数调用,在模拟期间的每个时间步骤将计数器值加1。

1.模拟选项卡,单击金宝app运行.当Simulink准备在计算机上运行Simulink模型时,模型窗口的左下角显示状态。金宝app

2.现在切换中断源输入1.只要SimIRQ为1,计数器的值就会增加。

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

1.在MATLAB命令金宝app窗口中执行此命令打开Simulink模型。此型号预设在Arduino Mega 2560上运行。如果您正在使用Arduino Mega 2560,请跳过本节的其余步骤。

open_system(“arduino_external_interrupt”);

2.在模型工具栏上,单击模型配置参数按钮。

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

4.硬件板列表,选择您正在使用的Arduino硬件类型。不要更改任何其他设置。

5.点击好吧

6.将脉冲发生器引脚4连接到硬件的外部中断引脚2。有关硬件上的引脚映射的信息,请参见Arduino定时器独立块的引脚映射

7.通过执行,您可以使用预先配置金宝app为在External模式下运行的Simulink模型open_system(“arduino_external_interrupt_sim”)在MATLAB命令窗口。否则,使用以下步骤修改模型:

一个。在Simuli金宝appnk模型工具栏中,设置仿真停止时间20.0秒。

b。修改中断源在Arduino硬件的引脚4上产生PWM信号。

c。双击外部中断当硬件的引脚2接收到PWM信号的上升沿时,将该块配置为产生中断。

参数参数说明|取值_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Pin码| 2模式| RISING

8.硬件选项卡中的金宝app模式部分中,选择机上运行然后点击监视和优化.模型窗口的左下角显示Simulink在硬件上准备、下载和运行Simulink模型时的状态。金宝app在仿真过程中,引脚4在硬件引脚2上产生PWM信号。当计数器值增加1时,引脚2在信号的每一个上升沿上产生一个中断。

9.控件中的Scope块可以在每个时间步骤中查看计数器的更改值显示数据模型的面积。在范围中,计数器值与时间值相对应。计数器值增加1因为每个时间步骤接收的值都是1。

其他可以尝试的事情

  • 的值模式参数,然后重新部署该模型。

  • 使用编码器产生的信号作为外部中断的源。