使用Arduino外部中断块触发下游函数调用子系统
方法来触发下游函数调用子系统外部中断Arduino®硬件的Simulink®支持包。
在本例中,您将学习如何在正常模式和外部模式模拟下触发函数调用。
正常模式仿真:在正常模式下,您可以通过模拟外部中断块的输入来验证模型设计。外部中断块接收一个输入值
0
或1
在每个时间步。当阻塞端口的输入为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。
其他可以尝试的事情
的值模式参数,然后重新部署模型。
使用编码器产生的信号作为外部中断的源。