溫濕度傳感器SHT10和SHT11的區別?
SHT10
濕度測量範圍:0~100%RH;
濕度測量範圍:-40~+123.8℃;
濕度測量精度:±4.5%RH
溫度測量精度:±0.5℃
SHT11
濕度測量範圍:0~100%RH;
溫度測量範圍:-40~+123.8℃;
溫度測量精度: ±0.4℃
濕度測量精度:±3.0%RH
可以通用
SHT11溫濕度傳感器的主要特性如下:●將溫濕度傳感器、信號放大調理、A/D轉換、I2C總線接口全部集成於壹芯片(CMOSensTM技術);●可給出全校準相對濕度及溫度值輸出;●帶有工業標準的I2C總線數字輸出接口;●具有露點值計算輸出功能;●具有卓越的長期穩定性;●濕度值輸出分辨率為14位,溫度值輸出分辨率為12位,並可編程為12位和8位;●小體積(7.65×5.08×23.5mm),可表面貼裝;●具有可靠的CRC數據傳輸校驗功能;●片內裝載的校準系數可保證100%互換性;●電源電壓範圍為2.4~5.5V;●電流消耗,測量時為550μA,平均為28μA,休眠時為3μA。
SHT11溫濕度傳感器采用SMD(LCC)表面貼片封裝形式,管腳排列如圖1所示,其引腳說明如下:(1)GND:接地端;(2)DATA:雙向串行數據線;(3)SCK:串行時鐘輸入;(4)VDD電源端:0.4~5.5V電源端;(5~8)NC:空管腳。
3 工作原理SHT11的濕度檢測運用電容式結構,並采用具有不同保護的“微型結構”檢測電極系統與聚合物覆蓋層來組成傳感器芯片的電容,除保持電容式濕敏器件的原有特性外,還可抵禦來自外界的影響。由於它將溫度傳感器與濕度傳感器結合在壹起而構成了壹個單壹的個體,因而測量精度較高且可精確得出露點,同時不會產生由於溫度與濕度傳感器之間隨溫度梯度變化引起的誤差。CMOSensTM技術不僅將溫濕度傳感器結合在壹起,而且還將信號放大器、模/數轉換器、校準數據存儲器、標準I2C總線等電路全部集成在壹個芯片內。SHT11傳感器的內部結構框圖如圖2所示。SHT11的每壹個傳感器都是在極為精確的濕度室中校準的。SHT11傳感器的校準系數預先存在OTP內存中。經校準的相對濕度和溫度傳感器與壹個14位的A/D轉換器相連,可將轉換後的數字溫濕度值送給二線I2C總線器件,從而將數字信號轉換為符合I2C總線協議的串行數字信號。
由於將傳感器與電路部分結合在壹起,因此,該傳感器具有比其它類型的濕度傳感器優越得多的性能。首先是傳感器信號強度的增加增強了傳感器的抗幹擾性能,保證了傳感器的長期穩定性,而A/D轉換的同時完成,則降低了傳感器對幹擾噪聲的敏感程度。其次在傳感器芯片內裝載的校準數據保證了每壹只濕度傳感器都具有相同的功能,即具有100%的互換性。最後,傳感器可直接通過I2C總線與任何類型的微處理器、微控制器系統連接,從而減少了接口電路的硬件成本,簡化了接口方式。3.1 輸出特性(1)濕度值輸出SHT11可通過I2C總線直接輸出數字量濕度值,其相對濕度數字輸出特性曲線如圖3所示。由圖3可看出,SHT11的輸出特性呈壹定的非線性,為了補償濕度傳感器的非線性,可按如下公式修正濕度值:RHlinear=c1+c2SORH+c3SORH2式中,SORH為傳感器相對濕度測量值,系數取值如下:12位:SORH:c1=-4,c2=0.0405,c3=-2.8×10-68位:SORH:c1=-4,c2=0.648,c3=-7.2×10-4(2)溫度值輸出由於SHT11溫度傳感器的線性非常好,故可用下列公式將溫度數字輸出轉換成實際溫度值:T=d1+d2SOT當電源電壓為5V,且溫度傳感器的分辨率為14位時,d1=-40 d2=0.01,當溫度傳感器的分辨率為12位時,d1=-40 d2=0.04。(3)露點計算空氣的露點值可根據相對濕度和溫度值來得出,具體的計算公式如下:LogEW=(0.66077+7.5T/(237.3+T)+[log10(RH)-2]Dp=[(0.66077-logEW)×237.3]/(logEW-8.16077)3.2 命令與接口時序SHT11傳感器***有5條用戶命令,具體命令格式見表1所列。下面介紹壹下具體的命令順序及命令時序。
表1 SHT11傳感器命令列表命 令 編 碼 說 明
測量溫度 00011 溫度測量
測量濕度 00101 濕度測量
讀寄存器狀態 00111 “讀”狀態寄存器
寫寄存器狀態 00110 “寫”狀態寄存器
軟啟動 11110 重啟芯片,清除狀態記錄器的錯誤記錄11毫秒後進入下壹個命令
(1)傳輸開始初始化傳輸時,應首先發出“傳輸開始”命令,該命令可在SCK為高時使DATA由高電平變為低電平,並在下壹個SCK為高時將DATA升高。接下來的命令順序包含三個地址位(目前只支持“000”)和5個命令位,當DATA腳的ack位處於低電位時,表示SHT11正確收到命令。(2)連接復位順序如果與SHT11傳感器的通訊中斷,下列信號順序會使串口復位:即當DATA線處於高電平時,觸發SCK 9次以上(含9次),此後應接著發壹個“傳輸開始”命令。
表2 SHT11狀態寄存器類型及說明位 類型 說 明 缺 省
7 保留 0
6 讀 工檢限(低電壓檢查) X
5 保留 0
4 保留 0
3 只用於試驗,不可以使用 0
2 讀/寫 加熱 0 關
1 讀/寫 不從OTP重下載 0 重下載
0 讀/寫 ‘1‘=8位相對濕度,12位溫度分辨率。‘0‘=12位相對濕度,14位濕度分辨率 0 12位相對濕度,14位濕度
(3)溫濕度測量時序當發出了溫(濕)度測量命令後,控制器就要等到測量完成。使用8/12/14位的分辨率測量分別需要大約11/55/210ms的時間。為表明測量完成,SHT11會使數據線為低,此時控制器必須重新啟動SCK,然後傳送兩字節的測量數據與1字節CRC校驗和。控制器必須通過使DATA為低來確認每壹個字節,所有的量均從右算,MSB列於第壹位。通訊在確認CRC數據位後停止。如果沒有用CRC-8校驗和,則控制器就會在測量數據LSB後保持ack為高來停止通訊,SHT11在測量和通訊完成後會自動返回睡眠模式。需要註意的是:為使SHT11的溫升低於0.1℃ 此時的工作頻率不能大於標定值的15%(如:12位精確度時,每秒最多進行3次測量)。測量溫度和濕度命令所對應的時序如圖4所示。
圖4
3.3 寄存器配置SHT11傳感器中的壹些高級功能是通過狀態寄存器來實現的,寄存器各位的類型及說明見表2所列。下面對寄存器相關位的功能說明:(1)加熱使芯片中的加熱開關接通後,傳感器溫度大約增加5℃,從而使功耗增加至8mA@5V。加熱用途如下:●通過對啟動加熱器前後的溫、濕度進行比較,可以正確地區別傳感器的功能;●在相對濕度較高的環境下,傳感器可通過加熱來避免冷凝。(2)低電壓檢測SHT11工作時可以自行檢測VDD電壓是否低於2.45V,準確度為±0.1V。(3)下載校準系數為了節省能量並提高速度,OTP在每次測量前都要重新下載校準系數,從而使每壹次測量節省8.2ms的時間。(4)測量分辨率設定將測量分辨率從14位(溫度)和12位(濕度)分別減到12位和8位可應用於高速或低功耗場合。
4 應用說明4.1 運行條件測量量程以外的溫度會使濕度信號暫時地偏移+3%。然後傳感器會慢慢返回到校準條件。若將芯片在濕度小於5%環境下加熱24小時到90℃,芯片就會迅速恢復高相對濕度、高溫度環境的影響,但是,延長強度條件會加速芯片的老化。4.2 安裝註意事項由於大氣的相對濕度與溫度的關系比較密切,因此,測量大氣溫度時的要點是將傳感器與大氣保持同壹溫度,如果傳感器線路板上有發熱元件,SHT11應與熱源保持良好的通風,為減少SHT11和PCB之間的熱傳導,應使銅導線最細並在其中加上窄縫,同時應避免使傳感器在強光或UV下曝曬。傳感器在布線時,SCK和DATA信號平行且相互接近,或信號線長於10cm時,均會產生幹擾信息,此時應在兩組信號之間放置VDD或GND。
5 具體應用圖5是AT89C2051單片機與SHT11的接口電路。由於AT89C2051不具備I2C總線接口,故使用單片機通用I/O口線來虛擬I2C總線,並利用P1.0來虛擬數據線DATA,利用P1.1口線來虛擬時鐘線,並在DATA端接入壹只4.7kΩ的上拉電阻,同時,在VDD及GND端接入壹只0.1μF的去耦電容。下面給出與上述硬件電路配套的C51應用程序。#define DATA P1_1#define SCK P1_0#define ACK 1#define noACK 0#define MEASURE_TEMP 0x03 //測量溫度命令#define MEASURE_HUMI 0x05 //測量濕度命令//讀溫濕度數據char s-measure(unsigned char *p- value, un-signed char *p_checksum, unsigned char mode){unsigned char error=0;unsigned int i;s_transstart(); //傳輸開始switch(mode){caseTEMP:error+=s_write_byte(measure_temp);break;caseHUMI:error+=s_write_byte(measure_humi);break;default:break;}for(i=0;i<65535;i++) if(DATA==0) break;if (DATA) reeor+=1;*(p_value)=s_read_byte(ACK);*(p_value+1)=s_read_byte(ACK);*p_checksum=s_read_byte(noACK);return error;}//溫濕度值標度變換及溫度補償void calc_sth15(float *p_humidity,float *p_tempera-ture){const float c1=-4.0;const float c2=0.0405;const float c3=-0.0000028;const float t1=-0.01;const float t2=0.00008;float rh=×p_humidity;float t=×p_temperature;float rh_lin;float th_ture;float t_c;t_c=t×0.01-40;rh_lin=c3×rh×rh+c2×rh+c1;trh_ture=(t_c-25)×(t1+t2×rh)+rh_lin;×p_temperature=t-c;×p_humidity=rh_ture;}//從相對溫度和濕度計算露點char calc_dewpoint(float h,float t){float logex,dew_point;logex=0.66077+7.5×t/(237.3+t)+[log10(h)-2];dew_point=(logex-0.66077)×237.3/(0.66077+7.5-logex);return dew_point;}限於篇幅,上述程序中未給出傳輸開始、寫字節數據、讀字節數據函數。
6 結束語SHT11數字式溫濕度傳感器由於將溫度傳感器、濕度傳感器、信號調理、模/數轉換器、標定參數及I2C總線接口全部集成到傳感器內部,因此,既提高了傳感器的性能,又降低了成本、減少了體積,同時也非常便於和微控制器接口,由此可見,該傳感器是嵌入式系統溫濕度測試的理想選擇。