主要内容

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

方法来触发下游函数调用子系统外部中断Arduino®硬件的Simulink®支持包。

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

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

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

支持Arduino硬件

  • Arduino由于

  • Arduino达芬奇

  • Arduino Mega 2560

  • Arduino Mega ADK

  • Arduino微

  • Arduino MKR1000

  • Arduino MKR WIFI 1010

  • Arduino MKR ZERO

  • Arduino Nano 3.0

  • Arduino机器人控制板

  • Arduino机器人马达板

  • Arduino Uno

  • Arduino Nano 33 IoT

先决条件

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

所需的硬件

  • 支持Arduino单板

  • USB电缆

  • 试验板线

步骤1:为支持的Arduino硬件配置Simulink模型

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

open_system(“arduino_external_interrupt_sim”);

第二步:模拟模型

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

1.模拟在Simulink模型页签中,单击运行.当Simulink准备在计算机上运行Simulink模型时,模型窗口的左下角显示状态。

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

步骤3:在外部模式下运行Simulink模型(监视和调优)

1.在MATLAB命令窗口中执行此命令打开Simulink模型。该模型预配置为在Arduino Mega 2560上运行。如果您使用的是Arduino Mega 2560,请跳过本节的其余步骤。

open_system(“arduino_external_interrupt”);

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

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

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

5.点击好吧

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

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

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

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

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

|参数值_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _引脚号| 2模式| RISING

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

9.控件中的Scope块,查看计数器在每个时间步骤中的变化值显示数据模型面积。在作用域上,计数器值与时间值相对应。计数器值的增量为1由于每个时间步接收到的值为1。

其他可以尝试的事情

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

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

Baidu
map