SHTC3自學筆記
一、SHTC3介紹
SHTC3是一款低功耗溫濕度傳感器,溫度的采集范圍為-40℃~125℃,濕度的采集范圍為 0%~100%。
I2C的器件地址只有一個,如圖2所示。
二、讀寫SHTC3
1、寫入數(shù)據(jù)的步驟如下:
1)IIC發(fā)送器件地址+讀/寫位,器件地址如圖2所示。如:寫0xE0(11100000)。
2)IIC發(fā)送需要寫入的指令(兩個字節(jié),分兩次發(fā)送)。如發(fā)送喚醒指令,則連續(xù)發(fā)送0x35,0x17。
2、讀取的步驟如下:
1)IIC發(fā)送器件地址+讀/寫位。如:讀0xE1(11100001)。
2)IIC連續(xù)接收6個字節(jié)的數(shù)據(jù)。
三、SHTC3的寄存器
SHTC3只有1個16位寄存器,所有指令都是直接寫進這個寄存器的,很簡單,不用再寫入寄存器地址了。關(guān)于可以指令,我這里只講幾條比較重要的指令,其他不常用的就不介紹了,你們可以看數(shù)據(jù)手冊,具體介紹如下:
1、睡眠指令(數(shù)值:0xB098):讓SHTC3進入睡眠模式,該模式下耗電更少。
2、喚醒指令(數(shù)值:0x3517):SHTC3如果處于休眠狀態(tài),需要先執(zhí)行喚醒指令才能開始采集溫濕度。
3、測量指令(數(shù)值:看下表):讓SHTC3進行溫濕度采集。采集有多種模式選擇。每一次采集都會同時采集溫度和濕度,然后把采集的數(shù)據(jù)放到寄存器里面,可以自行選擇先存放溫度還是濕度。可以使用時鐘拉伸,如果使用時鐘拉伸的話,那么發(fā)送完測量命令之后,在SHTC3測量溫度濕度數(shù)據(jù)的過程中,SHTC3會拉低I2C的時鐘線SCL,通過這樣來禁止主機發(fā)送命令給SHTC3,只有當SHTC3完成溫度濕度數(shù)據(jù)測量時,SHTC3才會釋放時鐘線SCL。也可以選擇正常模式或者低功耗模式。具體指令如表1所示。
4、讀取ID(數(shù)值:0xEFC8):通過讀取ID可以判斷主機和SHTC3通訊是否正常。
5、軟復(fù)位(數(shù)值:0x805D):對SHTC3進行軟件復(fù)位。
四、采集數(shù)據(jù)的操作步驟
1、喚醒SHTC3:先發(fā)送寫入指令(0xE0),再發(fā)送喚醒指令高位(0x35),再發(fā)送喚醒指令低位(0x17)。
2、等待喚醒:數(shù)據(jù)手冊上寫的最大喚醒時間是240us,等待的時間大于這個就行了。
3、發(fā)送采集指令:先發(fā)送寫入指令(0xE0),再發(fā)送采集指令的高位和低位。采集指令有多個,根據(jù)需要自行選擇。
4、接收數(shù)據(jù):發(fā)送讀取指令(0xE1),連續(xù)接收6個字節(jié)數(shù)據(jù)。如果采集的指令是先存溫度,那么這6個字節(jié)的第1-2個字節(jié)就是溫度數(shù)值,第3個字節(jié)是溫度校驗。第4-5個字節(jié)是濕度數(shù)值,第6個字節(jié)是濕度校驗。如果采集的指令是先存濕度,則前3個字節(jié)和后3個字節(jié)相反。
5、進入睡眠:發(fā)送寫入指令,再發(fā)送睡眠指令進入睡眠。
詳細的操作流程可以參考圖4。
https://download.csdn.net/download/shenzhen_zixian/11712590