数据记录器和Sensirion SHT31x-DIS传感器之间的I2C通信

时间:2018-08-28 20:18:59

标签: hex sensor bit i2c basic

我目前正在尝试与CR1000x数据记录仪上的温度/相对湿度传感器通信(以数据记录仪为主)

我目前一直在使用以下代码:

Public TemporaryRead as Long

BeginProg
PortPairConfig(C5,2) 'set C5 for SCL and C6 for SDA and at 3.3V'
I2COpen (C5, 500000) '500 mHZ start at port C5
I2CWrite (C5, &H44, &H2130, 3, &H2)
Scan (1, Sec, 0, 0)
   PanelTemp (PTemp, 60)
   Battery (Batt_Volt)
   I2CWrite (C5, &H44, &HE000, 2, &H2)
   I2CRead (C5, &H44, TemporaryRead, 4, &H5)
NextScan
EndProg

不过,TemporaryRead变量输出为-1值。

一些参考资料可帮助您帮助我完成这项工作

  • 该程序以CRBasic编写,CRBasic是一些专有语言/编辑器, 就像Campbell Scientific设备的基本版
  • I2CWrite(BeginPort,地址,源,NumBytes,选项)
    • 来源是写入I2C的指令,数据表中指出 16位命令,因此在8位地址的顶部,我将NumBytes划分为3个字节
    • 选项是重新启动,启动和停止(111)。因此开始而不停止是010(2)
  • I2CRead(BeginPort,地址,目标,NumBytes,选项)

    • 目的地是可变的,用于将内容保存到
    • 返回16位温度和16位湿度读数,所以我放了4个字节
    • 选项(停止开始重新启动)(从停止101重新开始-> 5)
  • 传感器数据表:https://www.sensirion.com/fileadmin/user_upload/customers/sensirion/Dokumente/0_Datasheets/Humidity/Sensirion_Humidity_Sensors_SHT3x_Datasheet_digital.pdf

    • 0x2130-每秒1次定期测量
    • 0xE000-获取数据
    • 0x44-传感器地址

我在数据表的第9页和第11页上获得了要在此传感器的I2CWrite方法中输入的命令。对于我在哪里出错以及如何与该传感器正确通信的任何帮助,将不胜感激

0 个答案:

没有答案