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