主要内容

测量温度的I2C设备Arduino®硬件

这个例子展示了如何使用MATLAB®支持包Arduino®硬件和I2C接口与I2C通金宝app信设备。

TMP102温度传感器的概述

这个示例使用TMP102,二线串行数字输出的传感器,可以读取温度的决议在摄氏0.0625度。你也可以从设备读取数据在扩展模式具有更高的测量极限。

硬件设置

1)连接SDA, sci、接地和VCC传感器相应的针的针Arduino硬件。这个例子连接SDA和sci别针A4和A5 Arduino Uno董事会。如果您正在使用一个不同的委员会,之前检查正确的针连接。

2)安全地连接的电源线I2C传感器。

创建一个I2C设备对象

1)创建一个arduino对象,包括I2C图书馆。

一个= arduino (“COM9”,“Uno”,“库”,“I2C”);
更新服务器代码Uno (COM9)。这可能需要几分钟。

2)扫描可用I2C地址。

addr = scanI2CBus (a)
addr =1×1单元阵列{' 0 x48 '}

注意温度传感器的地址。您将使用它来创建I2C设备对象。

3)创建I2C设备对象

tmp102 =设备(,“I2CAddress”,0 x48)
tmp102 =设备属性:接口:“I2C”I2CAddress: 72 (0 x48)总线:0 SCLPin: A5的SDAPin: A4的比特率:100000(比特/秒)显示功能

公共汽车默认为0。如果您使用的是专用的I2C接口(SDA1, SCL1)由于板上,例如,确保设置总线1

读取温度的值

传感器的温度读数数字化与8位到12位在正常模式在LSB MSB和4位。每个LSB等于摄氏0.0625度。写的寄存器地址读取,然后读取两个字节的数据。使用uint8数据类型。

写(tmp102, 0 x0,“uint8”);data =阅读(tmp102 2“uint8”);温度=(双(bitshift (int16(数据(1)),4))+双(bitshift (int16(数据(2)),4)))* 0.0625
温度= 26.6250

读温度较高的测量极限

TMP102传感器的扩展模式,您可以通过使用13位测量温度128度以上。要做到这一点,你需要写在十六进制值“B060”配置寄存器地址1。

writeRegister (tmp102 1 0 xb060,“uint16”);

从寄存器读取温度得到更精确的结果。TMP102转化率的默认为4赫兹。因此,在每个阅读之前暂停MATLAB 0.25 s。

写(tmp102, 0 x0,“uint8”);暂停(0.25);data =阅读(tmp102 2“uint8”);温度=(双(bitshift (int16(数据(1)),5))+双(bitshift (int16(数据(2)),3)))* 0.0625
温度= 26.6250

改变缺省配置,类型

writeRegister (tmp102 1 0 xa060,“uint16”);

清理

一旦不再需要连接,明确相关的对象。

清晰的tmp102一个