主要内容

从TMP102传感器读取温度

本示例演示了如何使用Simulink®支持包为树莓派硬件配置和读取TMP金宝app102传感金宝app器的温度。

简介

金宝app“Sim金宝appulink支持包”支持树莓派硬件使用I2C接口与I2C设备通信。在本例中,您将学习如何从TMP102数字传感器读取温度。该传感器通过I2C总线连接到树莓派单板上。默认情况下,TMP102传感器输出温度值的精度为12位,对应的分辨率为0.0625摄氏度。您可以配置TMP102在需要时提供13位温度测量。有关设备的详细信息,请参见TMP102数据表

这个例子展示了如何编程树莓派板使用I2C总线从传感器读取温度。它还说明了如何编程树莓派板来初始化传感器的一些高级设置。

先决条件

我们建议填写树莓派硬件的Simulink支持包入门金宝app金宝app示例和完成与树莓派™硬件通信示例,以了解外部模式。指树莓派I2C接口了解更多关于树莓派I2C接口的信息。

所需的硬件

要运行此示例,您需要以下硬件:

金宝app仿真软件模型

模型示例如下图所示:

open_system (“raspberrypi_I2C_temp”);

任务1 -连接TMP102传感器到树莓派硬件

本任务中需要将TMP102传感器连接到树莓派板上。参考下面树莓派3型号B的引脚图进行连接。

将TMP102传感器连接到树莓派板上,连接方式如下:

TMP102 pin |树莓Pi pin _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ VCC | 3.3 V GND | GND SDA | I2C1_SDA (GPIO 2) SCL | I2C1_SCL (GPIO 3) ALT | Not Connected ADD0 | GND _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

本例显示树莓派3 Model B连接到TMP102。但是,您可以连接任何由Simulink支持包为树莓派硬件支持的树莓派板。金宝app金宝app使用showPins来查看树莓派板子的图钉。

任务2 -为树莓派硬件配置Simuli金宝appnk模型

在本任务中,您需要为树莓派硬件配置模型。

1.打开使用树莓派硬件从I2C传感器读取温度模型。

2.在Simulin金宝appk模型中,单击仿真>模型配置参数打开配置参数对话框。

3.选择硬件实现窗格并选择覆盆子π硬件板参数列表。请勿更改其他设置。

4.点击好吧

任务3 -配置Simulink模型使用金宝appI2C主读块读取温度

在本任务中,您必须配置模型以使用I2C Master read块从TMP102传感器读取数据。

1.打开使用树莓派硬件从I2C传感器读取温度模型。

2.配置I2C主读块:

  • 打开I2C主读块。注意从设备地址块的参数设置为“0x48”。TMP102传感器的ADD0引脚接地7位地址1001000(十六进制0x48)的TMP102数据表

  • TMP102传感器包含多个寄存器。上电时,从设备读取的数据返回存储在寄存器0 -中的值温度寄存器(只读).离开启用寄存器访问参数未选中,因为您将在此步骤中读取温度寄存器。

  • 温度寄存器的大小为16位。它以左对齐2的补码格式存储12位温度值。TMP102传感器以大端字节顺序发送数据。选择从字节顺序到'Big Endian',数据量(N)1,数据类型到'int16'(照顾正温和负温),和样品时间到0.1。

3.注意模型中的以下内容:

  • 获得Block用于将int16数据右移4位(除以16),以右对齐温度测量的上12位。的获得block还将传感器分辨率为0.0625的12位数据相乘,得到相应的温度(摄氏度)。

  • 这两个常数值为1和0的块与a一起使用开关块将温度读数与27摄氏度的阈值进行比较。当从TMP102读取的温度值超过阈值时,树莓派用户指示灯会发光。尝试按TMP102芯片以增加传感器温度来观察这种行为。

任务4 -在外部模型中运行金宝appSimulink模型(监视和调优)

在本任务中,您将在外部模式下运行Simulink模型以监控温度金宝app。当TMP102读数超过指定的温度阈值时,树莓派的用户LED(在板上标有ACT)将会显示。

1.建模按下TAB键Ctrl + E打开“配置参数”对话框。

2.浏览到硬件实现>目标硬件资源>外部模式,并设置通信接口参数TCP/IP上的XCP

3.在模型中,识别模拟过程中要记录的监测信号。选择识别的信号,打开其上下文菜单,并单击对应的图标启用数据日志.金宝appSimulink为每个记录信号显示一个记录信号指示器。有关更多信息,请参见标记一个测井信号

的输出获得数据类型转换块被标记为日志记录。

4.硬件选项卡中的Simuli金宝appnk模型模式部分中,选择在船上跑然后点击监视和调优

当新的仿真数据在仿真数据检查器(SDI)中可用时,“仿真数据检查器”按钮将高亮显示。的显示模型中的块显示TMP102传感器温度读数,以摄氏度为单位。颜色块变为绿色时显示模型中的块显示温度高于27摄氏度。当温度超过27摄氏度时,树莓派内置的ACT LED也会发光。

5.根据实际环境温度,在“开关”区域框中修改阈值,单击应用.当温度超过新的阈值时,看到板载ACT LED发光。

7.单击“仿真数据检查器”按钮,检查和比较来自多个仿真的数据,以验证模型设计。有关SDI的更多信息,请参见分析仿真结果

8.点击停止以结束监视器和调优执行。

任务5 -配置Simulink模型初始金宝app化温度传感器13位扩展模式

本任务向您展示如何写入TMP102传感器上的一个寄存器,以将其配置为13位扩展模式。

1.打开使用树莓派硬件从I2C传感器初始化和读取温度模型。

2.注意模型中的两个子系统:

One_time_initialization子系统配置TMP102传感器运行在13位扩展模式。

Execution_loop子系统读取13位温度值。

  • One_time_initialization子系统在模型初始化时只执行一次,而Execution_loop子系统在每个命中的采样时间运行。方法处理子系统的这种选择性执行单位延迟启用子系统块从Simulink库。金宝app

  • 传感器配置为扩展模式新兴市场在那里配置寄存器到1的每TMP102数据表.这意味着将值“0x60B0”写入位于TMP102传感器地址1的配置寄存器。

3.打开One_time_initialization子系统。

4.配置I2C主写块写入TMP102传感器的配置寄存器:

  • 打开I2C Write Master块。的从设备地址块的参数设置为“0x48”。

  • 选择启用寄存器访问参数。然后从寄存器地址参数出现在块中。

  • 设置从寄存器地址参数为1。配置寄存器的地址为1TMP102数据表

  • 设置从字节顺序参数作为数据需要通过I2C总线以大端字节顺序发送。

5.中注意以下内容One_time_initialization子系统:

  • 常数block保存了uint16数据类型的值“0x60B0”,要写入配置寄存器。

  • I2C主读块连接到显示块,确保正确的数据被写入配置寄存器。I2C主读块与I2C主写块的设置相同。的数据量(N)参数设置为1和数据类型设置为uint16。

  • I2C主写块优先级设置为1。I2C Master Read块的优先级设置为高于1的任何值,以确保您在设置配置寄存器后读取该值。如果需要设置块的优先级,右键单击块>属性>常规>优先级。要了解更多关于块优先级及其对块执行顺序的影响,请参阅指定块属性

6.打开Execution_loop子系统,观察如下:

  • 获得Block执行除法8,对应右移3位。右除法表示13位温度值。

任务6 -在外部模式下运行金宝appSimulink模型(监视和调优)

在本任务中,您将在外部模式下运行Simulink模型以监控温度金宝app。

1.硬件选项卡中的Simuli金宝appnk模型模式部分中,选择在船上跑然后点击监视和调优

2.打开One_time_initialization子系统。

3.验证显示block显示了一个十六进制的值“0x60B0”,对应于所需的配置寄存器值。

4.监控显示连接到Execution_loop子系统,以摄氏度为单位观察TMP102的温度读数。当树莓派的显示屏显示温度超过27摄氏度时,树莓派内置的ACT LED会发光。

5.根据实际环境温度,在“开关”区域框中修改阈值,单击应用.当温度超过新的阈值时,看到板载ACT LED发光。

6.(可选)您可以单击“仿真数据检查器”按钮来检查和比较来自多个仿真的数据,以验证模型设计。

7.点击停止以结束监视器和调优执行。

任务7 -将温度值记录到MAT文件中

使用树莓派硬件的S金宝appimul金宝appink支持包,您可以记录Simulink模型中出现的信号。在这个任务中,我们将记录从I2C传感器读取的温度值。

1.附加一个到工作空间块的输出Execution_loop子系统。

2.双击到工作空间块来配置它。

3.的任务2中提到的步骤树莓派MAT-File格式日志信号以启用MAT文件日志记录。

4.在Simulin金宝appk模型中,设置希望记录信号的时间。

5.您可以模拟模型,也可以在外部模式(Monitor和Tune)下运行模型。

6.在指定的时间过去后,您可以将MAT文件导入MATLAB中进行进一步分析。的任务4中提到的步骤树莓派MAT-File格式日志信号导入树莓派硬件上生成的MAT文件。

其他可以尝试的事情

  • 配置TMP102传感器恢复12位输出。

  • 使用配置寄存器更改传感器中ADC的转换速率。中的连续转换模式和配置寄存器部分TMP102数据表欲知详情。

  • 请参阅TMP102数据表并尝试将TMP102配置为运行关机模式和/或比较器模式.尝试更改高低限制寄存器的值。

  • 按照本例中的步骤与其他I2C传感器(如SenseHAT)通信。