使用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块传输和接收数据例子