主要内容

通过触发Arduino硬件上的ISR来测量PWM频率

这个例子展示了如何使用Arduino®在Arduino硬件上测量脉宽调制(PWM)信号的频率外部中断块。该实例使用同一个板来产生和检测PWM信号。Arduino Mega 2560硬件的引脚2连接到引脚3。引脚2产生PWM信号。当在引脚3有一个上升边时,外部中断块执行一个函数调用来计算信号的两个连续上升边之间的时间,然后用来计算信号在引脚3的频率。

先决条件

在开始本示例之前,我们建议您完成入门Arduino®硬件的例子。

所需的硬件

  • 金宝app支持Arduino电路板

  • USB电缆

  • 试验板线

模型描述

open_system (“arduino_measure_frequency”

脉宽调制源:脉宽调制块被配置为在硬件引脚2上产生占空比为50%、频率为1000hz的PWM信号。该模型接受生成的信号来计算生成信号的频率。该模型测量同一板产生的信号的频率。要测量由其他源产生的信号的频率,将外部源连接到硬件的引脚3。

外部中断处理程序:外部中断块被配置为在PWM信号的每个上升沿触发中断服务程序(ISR)。当引脚3上有上升沿时,块执行函数调用来计算信号两个连续上升沿之间的时间差。用此公式计算时差,并存储在时差数据存储块。

TimeDiffCTime-PTime

地点:TimeDiff为两个连续上升边之间的时间间隔,PTime是上一次上升的时间戳吗,和CTime是当前上升沿的时间戳。

脉宽调制测量:在每个时间步,该子系统接收由外部中断处理程序子系统。如果时差等于0,表示没有信号产生。如果时差大于0,子系统使用公式计算频率,频率1 e-6/TimeDiff

数据存储内存

子系统由PreviousTimeCurrentTime,TimeDifferenceData Store内存块。

步骤1:连接Arduino硬件

1.将USB线的micro端连接到硬件上,将USB线的regular端连接到计算机上。等待硬件上PWR指示灯开始闪烁。

2.将脉冲发生器引脚2连接到Arduino Mega 2650硬件的外部中断引脚3。如果您正在使用任何其他支持的Arduino硬件,请参考金宝app以下方法更改密码Arduino定时器独立块的引脚映射

步骤2:配置Simulink模型金宝app

1.打开arduino_measure_frequency模型在MATLAB®命令窗口。该型号预先配置在Arduino Mega 2560上运行。如果您正在使用Arduino Mega 2560,请跳过本节的其余步骤。

2.在硬件选项卡上,单击硬件设置按钮。

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

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

5.在模型中:

一。修改密码参数的PWM块到产生PWM信号的引脚。在这个例子中密码参数设置为2

b。修改密码外部中断块的参数到产生外部中断的引脚。在这个例子中密码参数设置为3.

步骤3:测量PWM频率

1.在硬件选项卡上,单击监视和优化按钮。这个操作在Arduino硬件上构建、下载并运行模型。模型窗口的左下角显示了Simulink准备、下载和运行模型时的状态。金宝app成功建立模型后,引脚2产生PWM信号。在每一个上升沿上,引脚3产生一个中断,以计算信号的两个连续上升沿之间的时间,然后用来计算PWM信号在引脚3的频率。信号的频率显示在显示块。显示块上显示的频率近似等于由PWM块产生的PWM信号的频率。

2.打开检查和分析仿真结果,右键单击已记录的信号指示器图标并选择开放数据检查.SDI显示所有记录的PWM信号的频率计算在每个时间步长。

另请参阅

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