主要内容

使用Arduino CAN块监测引擎转速

本示例展示了如何使用Arduino CAN块使用Simuli金宝appnk®Ar金宝appduino硬件支持包来监控车辆发动机RPM。

金宝app支持的硬件

  • Arduino Mega 2560

  • Arduino Mega ADK

  • Arduino Uno

  • Arduino由于

  • Arduino MKR1000

  • Arduino MKR WIFI 1010

  • Arduino零

  • Arduino微

  • Arduino达芬奇

  • Arduino Nano 33 IoT

简介

本例中的模型使用CAN传输、CAN接收、作用域和子系统块。模型中的读取引擎RPM子系统从接收到的数据中提取并验证引擎RPM细节。

先决条件

在开始这个例子之前,你必须:

所需的硬件

要运行这个例子,你必须有以下硬件:

  • 金宝app支持Arduino单板

  • 连接电线

  • OBD(机载诊断)连接器

  • 基于MCP2515的CAN屏蔽

配置CAN硬件

1.连接Arduino板上的CAN屏蔽。

2.将车载OBD连接器连接到基于MCP2515的CAN屏蔽。有关MCP2515的更多信息,请参见MCP2515

发动机转速监测模型

在这个例子中,请求首先从CAN传输块发送到车辆。车辆响应并将RPM详细信息发送到CAN接收块。模型设置是在此模型中预先配置的。有关设置或修改CAN属性的信息,请参见Arduino硬件的Simulink支持包的模型配置参数金宝app金宝app

open_system (“arduino_CAN”);

该模型包含一个常量块,其预配置的常量值为[2 1 12 0 0 0 0 0]。此值用于发送接收引擎RPM详细信息的请求。

值[2 1 12 0 0 0 0 0 0]中使用的信息有特定的用途。取值[2 1 12 0 0 0 0 0 0]的使用和目的如表中所示。

使用CAN传输块发送引擎转速请求

双击CAN传输块打开块掩码并设置CAN传输块参数,如图所示。这将向引擎发送一个请求,以发送RPM详细信息。请求在消息ID为7DFh的CAN总线上发送到车辆,使用8个数据字节。

  • 数据输入如下:用于发送消息的数据输入类型。如果需要,您可以更改此值。

  • 标识符类型:消息标识符类型。使用标准(11位标识符)类型。

  • 消息ID:消息标识符的值。将值指定为hex2dec (7 df)

  • 消息长度:消息长度,以字节为单位。将值指定为8

在CAN接收块中接收引擎转速信息

车辆响应CAN总线上的请求,消息ID为7E8h。CAN接收块接收消息中的引擎RPM细节,如图所示。

的消息hex2dec (7 df)收到的,它们的使用情况如表中所示。

Scope块显示目标硬件接收到的数据。读取引擎RPM子系统从接收到的数据中提取并验证引擎RPM细节。

部署Simul金宝appink模型

要在Arduino硬件上部署金宝appSimulink模型,请在硬件选项卡中的Simuli金宝appnk模型模式部分中,选择在船上跑然后点击构建、部署和启动

其他可以尝试的事情

使用Arduino CAN块使用Arduino CAN块传输和接收数据例子