从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接口的信息。
所需的硬件
要运行此示例,您需要以下硬件:
树莓派板
USB电缆
试验板线
面包板(推荐)
金宝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子系统,观察如下:
这个子系统类似于使用树莓派硬件从I2C传感器读取温度模型。
的获得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)通信。