發布日期:2022-10-09 點擊率:118
1、SHT1x (包括 SHT10, SHT11 和 SHT15) 屬于Sensirion溫濕度傳感器家族中的貼片封裝系列。傳感器將傳感元件和信號處理電路集成在一塊微型電路板上,輸出完全標定的數字信號。傳感器具有體積小、響應速度快、接口簡單、性價比高等特點。
傳感器接口定義如下:
SHT10的供電電壓范圍為2.4v-5.5v,建議供電電壓為3.3v。SHT1x的串行接口,在傳感器信號的讀取及電源損耗方面,都做了優化處理;傳感器不能按照I2C協議編址,但是如果I2C總線上沒有掛接別的元件,傳感器可以連接到I2C總線上,但單片機必須按照傳感器的協議工作。
串行時鐘輸入(SCK): SCK 用于單片機與SHT10之間的通訊同步。
串行數據(DATA):DATA引腳為三態結構,用于讀取傳感器數據。當向傳感器發送命令時, DATA在SCK上升沿有效且在SCK高電平時必須保持穩定,DATA在SCK下降沿之后改變。
傳感器的通訊如下:
啟動傳感器:首先,選擇供電電壓后將傳感器通電,上電速率不能低于1V/ms。通電后傳感器需要11ms 進入休眠狀態,在此之前不允許對傳感器發送任何命令。發送命令:用一組“啟動傳輸”時序,來完成數據傳輸的初始化。它包括當SCK 時鐘高電平時DATA 翻轉為低電平,緊接著SCK變為低電平,隨后是在SCK時鐘高電平時DATA 翻轉為高電平。啟動時序如下圖:
后續命令包含三個地址位(目前只支持“000”),和五個命令位。SHT1x會以下述方式表示已正確地接收到指令:在第8個SCK時鐘的下降沿之后,將DATA下拉為低電平(ACK 位)。在第9個SCK時鐘的下降沿之后,釋放DATA(恢復高電平)。命令集如下:
溫濕度測量:發布一組測量命令(‘’表示相對濕度RH,‘’表示溫度T)后,控制器要等待測量結束。這個過程需要大約20/80/320ms,分別對應8/12/14bit測量。SHT1x 通過下拉DATA至低電平并進入空閑模式,表示測量的結束。控制器在再次觸發SCK 時鐘前,必須等待這個“數據備妥”信號來讀出數據。接著傳輸2個字節的測量數據和1個字節的CRC 奇偶校驗(可選擇讀取)。控制器需要通過下拉DATA為低電平,以確認每個字節。所有的數據從MSB開始,右值有效(例如:對于12bit 數據,從第5個SCK時鐘起算作MSB;而對于8bit 數據,首字節則無意義。默認分辨率:14bit (溫度) 和 12bit (濕度)可以被降低為12和8bit. 尤其適用于要求測量速度極高或者功耗極低的應用)。在收到CRC的確認位之后,表明通訊結束。如果不使用CRC-8校驗,控制器可以在測量值LSB后,通過保持ACK高電平終止通訊。在測量和通訊完成后,SHT1x自動轉入休眠模式。通訊復位時序:如果與SHT1x通訊中斷,可通過下列信號時序復位:當DATA保持高電平時,觸發SCK時鐘9次或更多,接著發送一個“傳輸啟動”時序。復位時序如下:
測量時序:傳感器的通訊過程為:發送開始時序,啟動傳感器 -> 發送命令 -> 等待傳感器應答及測量結束 -> 接收傳感器數據值 -> 接收CRC校驗數據 -> 休眠,等待下一次傳輸開始。
信號轉換:
相對濕度的轉換:為獲得精確的測量數據,建議用以下公式進行信號轉換。
? RHlinear = C1 + C2 * SORH + C3 * SORH2(%RH)
公式參數如下:
濕度信號的溫度補償:由于實際溫度與測試參考溫度25℃ (~77℉)的顯著不同, 濕度信號需要溫度補償。
RHtrue = (T℃ - 25) *(t1 + t2 * SORH) + RHlinear
公式參數如下:
溫度值轉換:可用如下公式將數字輸出 (SO T ) 轉換為溫度值。
? T = d1+d2 * SOT
公式參數如下:
露點的定義:露點溫度指空氣在此溫度下能保持最多的水汽,當溫度冷卻到露點,空氣變得飽和,就會出現霧、露或霜。SHT1x并不直接進行露點測量,但露點可以通過溫度和濕度讀數計算得到。由于溫度和濕度在同一塊集成電路上測量,所以SHT1x可測量露點。露點計算公式如下:
?
4、 Sensor_Humidity.c
5、Sensor_Humidity.h
5、主函數
?
去百度文庫,查看完整內容>
內容來自用戶:三年五年158
Datasheet SHT1x (SHT10, SHT11, SHT15
數字溫濕度傳感器
?完全標定?數字信號輸出?低功耗
?卓越的長期穩定性
? SMD封裝–適于回流焊接
外形尺寸
圖1 SHT1x傳感器尺寸(1mm=0.039inch,“ 11”表示該傳感器型號為SHT11。
外部接口:1:GND, 2: DATA, 3: SCK, 4: VDD
傳感器芯片
此說明書適用于SHT1x-V4。SHT1x-V4是第四代硅傳感芯片,除了濕度、溫度敏感元件以外,還包括一個放大器, A/D轉換器, OTP內存和數字接口。第四代傳感器在其頂部印有產品批次號,以字母及數字表示,如“ A5Z ”,見圖1。
材質
傳感器的核心為CMOS芯片,外圍材料頂層采用環氧LCP ,底層為FR4。傳感器符合ROHS和
WEEE標準,因此不含Pb, Cd, Hg, Cr(6+, PBB, PBDE。
實驗包
如要進行直接的傳感器測量,傳感器性能檢驗或者溫濕度實驗,客戶可選用EK-H2,其中包括傳感器和與電腦配套的軟、硬件。
如需進行更復雜的,要求更高的測量,可選用EK-H3。它可以同時進行20個點的溫濕度測量。
產品概述
SHT1x (包括SHT10, SHT11和SHT15屬于Sensirion溫濕度傳感器家族中的貼片封裝系列。傳感器將傳感元件和信號處理電路集成在一塊微型電路板上,輸出完全標定的數字信號。傳感器采用專利的CMOSens?技術,確保產品具有極高的可靠性與卓越的長期穩定性。傳感器包括一個電容性聚合體測濕敏感元件、一個用能隙材料制成SHT1X± 2.5± 3.0-40圖975%RH為避免信號沖突** T R0 is determined by the RP
? ? ? ?首先講講SHT10這款溫室度傳感器。SHT1x(包括SHT10,SHT11和SHT15)屬于Sersirion溫濕度傳感器家族中的貼片封裝系列。更之前我講過的DHT11這款溫濕度傳感器相比,體積小了許多,特別適合用于產品中。SHT10溫濕度傳感器包括一個電容性聚合體測濕敏感元件、一個用能隙材料制成的測溫元件(文縐縐的),傳感器內部有一個精度高達14為位的A/D轉換器,適應串行接口電路實現無縫連接。該產品具有品質卓越、響應速度速度快,抗干擾能力強、性價比高等優點。
? ? ? 1、接口定義:
SHT10的接口定義如下圖所示:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ?如上圖所示,1腳為GND,4腳為VDD。它的供電電壓范圍為2.4~5.5V,建議的電壓為3.3V,在電源引腳(VDD、GND)之間必須加上一個0.1uf的電容,應于去耦濾波用。它的2腳DATA為數據引腳,3腳SCK為時鐘控制引腳,沒有發現這兩個引腳很像IIC所使用的引腳功能?沒錯,這個傳感器確實可以認為是IIC接口,但是又有卻別。該傳感器不能按照IIC的協議編址,但是,如果IIC總線上沒有掛接別的元件,傳感器可以直接連到IIC總線上,但是單片機必須按照傳感器的協議工作。傳感器與單片機的接線如下圖所示:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? 2、傳感器的通訊
? ?
? ? ?2.1、“啟動傳輸”時序
用一組“啟動傳輸”時序來完成數據傳輸的初始化。它包括:當SCK時鐘高電平時DATA翻轉為低電平,緊接著SCK變成低電平,隨后是在SCK時鐘高電平,隨后是在SCK時鐘高電平DATA翻轉位高電平。時序如下:
? ? ? ? ? ? ? ? ? ? ? ?
? ? ?2.2、復位時序
如果與SHT1x 通訊中斷,可通過下列信號時序復位:當DATA 保持高電平時,觸發SCK 時鐘9 次或更多。時序圖如下:
? ? ? ? ? ? ? ? ?
? 2.3、命令集
傳感器的命令包含三個地址位(目前只支持000,這就是他只能掛接在空閑的IIC總線上的原因)和五個命令位。。SHT1x 會以下述方式表示已正確地接收到指令:在第8 個SCK 時鐘的下降沿之后,將DATA 下拉為低電平(ACK 位)。在第9 個SCK 時鐘的下降沿之后,釋放DATA(恢復高電平)。命令集如下:
? ? ? ? ? ? ? ? ? ? ? ? ?
?
? ? ?2.4、溫濕度測量
發布一組測量命令(‘’表示相對濕度RH,‘’表示溫度T)后,控制器要等待測量結束。這個過程需要大約20/80/320ms,分別對應8/12/14bit 測量。確切的時間隨內部晶振速度,最多可能有-30%的變化。。SHT1x 通過下拉DATA 至低電平并進入空閑模式,表示測量的結束。控制器在再次觸發SCK 時鐘前,必須等待這個“數據備妥”信號來讀出數據。檢測數據可以先被存儲,這樣控制器可以繼續執行其它任務在需要時再讀出數據。
在收到CRC 的確認位之后,表明通訊結束。如果不使用CRC-8 校驗,控制器可以在測量值LSB 后,通過保持ACK高電平終止通訊。在測量和通訊完成后,SHT1x 自動轉入休眠模式。
? ? 2.5、狀態寄存器
SHT1x 的某些高級功能可以通過給狀態寄存器發送指令來實現,如選擇測量分辨率,電量不足提醒,使用 OTP 加載或啟動加熱功能等。狀態寄存器度、寫如下:
?
狀態寄存器寫
?狀態寄存器讀
狀態寄存器的具體描述如下表所示:
測量分辨率:默認分辨率 14bit (溫度) 和 12bit (濕度) 可以被降低為 12 和 8bit. 尤其適用于要求測量速度極高或者功耗極低的應用。
電量不足檢測功能:在電壓不足 2.47V 發出警告。精度為±0.05 V。
加熱:可通過向狀態寄存器內寫入命令啟動傳感器內部加熱器.。加熱器可以使傳感器的溫度高于周圍環境 5 – 10°C12 。功耗大約為 8mA @ 5V 。
OPT加載:開啟此功能,標定數據將在每次測量前被上傳到寄存器。如果不開啟此功能,可減少大約 10ms的測量時間。
上面的寄存器如果沒有什么特殊要求或應用于特定的場合,則無需配置,選擇默認就可以了。
? ? ?2.6、通訊過程
傳感器的通訊過程為:發送”啟動傳輸“時序,初始化傳感器——>發送命令——>等待傳感器應答,及測量結束——>接收傳感器的16位數據值——>接收8為的CRC校驗數據——>休眠,等待下一次傳輸開始。
傳輸的過程的測量時序可以由下圖示意:
?
上圖中 TS = 傳輸開始, MSB = 高有效字節,LSB =低有效字節, LSb = 低有效位。
下面舉個實際測量時的相對濕度測量時序例子。時序如下:
這張圖可以知道:我們接收到的數據數值為”0000 0100 0011 0001“ = 1073 = 35.50% RH (位含溫度補償),至于怎么計算的,請接著往下看。
? ? ?2.7、信號轉化
? ? ? ?2.7.1 溫度的轉化
設T 2 1 SOt為從傳感器上讀出來的測量數值,我們需要用下面的公式將測量數值轉換成整整的溫度值。
T = d1 + d2 * SOt ?(其中d1,d2的值根據實際情況選擇,選項如下)
? ? ? 2.7.2 濕度的轉換?
濕度的轉換公式如下:
。其中濕度的轉化參數如下選擇:根據采樣的精度不同而不同。
?
?
99%以上的濕度已經接近飽和必須經過處理顯示100%RH13.請注意 濕度傳感器對電壓無依賴性。測量值與相對濕度的轉化如下圖所示:
?
相對濕度根據上面的參數與公式算出來之后,還需要考慮當前環境溫度而進行適當的補償。補償的公式及其參數選擇如下:
?
? ? 2.7.3、露點的計算
露點的定義:露點溫度指空氣在此溫度下能保持最多的水汽,當溫度冷卻到露點,空氣變得飽和,就會出現霧、露或霜。
SHT1x 并不直接進行露點測量,,但露點可以通過溫度和濕度讀數計算得到.。由于溫度和濕度在同一塊集成電路上測量,SHT1x 可測量露點。 一塊集成電路上測量,SHT1x 可測量露點。 下面直接給出結論性的露點計算公式了。
?LogEW=(0.+7.5*T/(237.3+T)+(log10(RH)-2) ? ? ?
露點:Dp=((0.-logEW)*237.3/(logEW-8.) ? ? ?
例如:RH=10% T=25C ?->EW=23.7465->露點=-8.69℃
? RH=90% T=50C ?->EW=92.4753->露點=47.89℃
? ?2.8、STM32上的SHT10驅動程序
? ? ? 2.8.1、SHT10.h文件的編寫
這個文件主要定義些重要的參數,以及更硬件相關的一些定義。
2.8.2、SHT10.c驅動程序的編寫
不廢話了,直接貼代碼:
原文出處:
引 言
隨著社會的不斷發展前進,人們進入了數字化信息時代,對生活質量的要求越來越高。汽車、空調、除濕器、烘干機等都已家喻戶曉,它們都離不開對溫度、濕度等環境因素的要求。
瑞士Sensirion公司推出了SHTxx單片數字溫濕度集成傳感器。采用CMOS過程微加工專利技術(CMOSens technology),確保產品具有極高的可靠性和出色的長期穩定性。該傳感器由1個電容式聚合體測濕元件和1個能隙式測溫元件組成,并與1個14位A/D轉換器以及1個2-wire數字接口在單芯片中無縫結合,使得該產品具有功耗低、反應快、抗干擾能力強等優點。
1 SHTl0的特點
SHTlO的主要特點如下:
◆相對濕度和溫度的測量兼有露點輸出;
◆全部校準,數字輸出;
◆接口簡單(2-wire),響應速度快;
◆超低功耗,自動休眠;
◆出色的長期穩定性;
◆超小體積(表面貼裝);
◆測濕精度±4.5%RH,測溫精度±O.5℃(25℃)。
2引腳說明及接口電路
(1)典型應用電路
SHTl0典型應用電路如圖1所示。
(2)電源引腳(VDD、GND)
SHTl0的供電電壓為2.4~5.5 V。傳感器上電后,要等待1l ms,從“休眠”狀態恢復。在此期間不發送任何指令。電源引腳(VDD和GND)之間可增加1個100 nF的電容器,用于去耦濾波。
(3)串行接口
SHTlO的兩線串行接口(bidirectional 2-wire)在傳感器信號讀取和電源功耗方面都做了優化處理,其總線類似I2C總線但并不兼容I2C總線。
①串行時鐘輸入(SCK)。SCK引腳是MCU與sHT10之間通信的同步時鐘,由于接口包含了全靜態邏輯,因此沒有最小時鐘頻率。
②串行數據(DATA)。DATA引腳是1個三態門,用于MCU與SHT10之間的數據傳輸。DATA的狀態在串行時鐘SCK的下降沿之后發生改變,在SCK的上升沿有效。在數據傳輸期間,當SCK為高電平時,DATA數據線上必須保持穩定狀態。
為避免數據發生沖突,MCU應該驅動DATA使其處于低電平狀態,而外部接1個上拉電阻將信號拉至高電平。
3命令與時序
(1)SHT10命令
SHT1O命令如表1所列。
(2)命令時序
發送一組“傳輸啟動”序列進行數據傳輸初始化,如圖2所示。其時序為:當SCK為高電平時DATA翻轉保持低電平,緊接著SCK產生1個發脈沖,隨后在SCK為高電平時DATA翻轉保持高電平。
緊接著的命令包括3個地址位(僅支持"000’)和5個命令位。SHT10指示正確接收命令的時序為:在第8個SCK時鐘的下降沿之后將DATA拉為低電平(ACK位),在第9個SCK時鐘的下降沿之后釋放DATA(此時為高電平)。
(3)測量時序(RH和T)
“000 ”為相對濕度(RH)測量,“000 000ll”為溫度(θ)測量。發送一組測量命令后控制器要等待測量結束,這個過程大約需要20/80/320 ms,對應其8/12/14位的測量。測量時間隨內部晶振的速度而變化,最多能夠縮短30%。SHT10下拉DATA至低電平而使其進入空閑模式。重新啟動SCK時鐘讀出數據之前,控制器必須等待這個“數據準備好”信號。
接下來傳輸2個字節的測量數據和1個字節的CRC校驗。MCU必須通過拉低DATA來確認每個字節。所有的數據都從MSB開始,至LSB有效。例如對于12位數據,第5個SCK時鐘時的數值作為MSB位;而對于8位數據,第1個字節(高8位)數據無意義。
確認cRc數據位之后,通信結束。如果不使用(2RC-8校驗,控制器可以在測量數據LSB位之后,通過保持ACK位為高電平來結束本次通信。
測量和通信結束后,SHTlO自動進入休眠狀態模式。
(4)復位時序
如果與sHT10的通信發生中斷,可以通過隨后的信號序列來復位串口,如圖3所示。保持DATA為高電平,觸發SCK時鐘9次或更多,接著在執行下次命令之前必須發送一組“傳輸啟動”序列。這些序列僅僅復位串口,狀態寄存器的內容仍然保留。
(5)狀態寄存器讀寫時序
SHT10通過狀態寄存器實現初始狀態設定。
讀狀態寄存器時序如圖4所示。
寫狀態寄存器時序如圖5所示。
狀態寄存器位如表2所列。
4 幾點說明
①CRC-8校驗。整個數據的傳輸過程都由8位校驗保證,確保任何錯誤的數據都能夠被檢測到并刪除[1]。
②為保持自身發熱溫升小于O.1℃,SHTxx的激活時間不超過10%。如12位精度測量,每秒最多測量2次。
③轉換為物理量輸出。相對濕度輸出轉換公式為:
其中,RHlinear為25℃時相對濕度的線性值,sORH為傳感器輸出的相對濕度的數值,C1,C2,C3為系數,如表3所列。
當測量溫度與25℃相差較大時,則需要考慮傳感器的溫度系數:
其中,RHlinear為溫度不等于25℃時相對濕度的實際值,θc為當前溫度,t1、t2是系數,如表4所列。
由于濕度與溫度經由同一塊芯片測量而得,因此SHT10可以同時實現高質量的露點測量。具體算法可參閱參考文獻[2],這里不再詳述。
5 SHT10與ATmega8L的應用實例
這里以SHTl0與Atmel公司低功耗8位RISC指令集的ATmega8L(內部8 MHz振蕩頻率)MCU的接口電路為例,給出實際應用電路及控制程序實例。本例采用ATmega8L微控制器控制SHT10,讀取溫濕度數據,并將結果顯示在LCDl602(采用4位模式)上,如圖6所示。
程序采用C語言模塊化設計,大大方便被移植到其他MCU上使用,提高了工作效率。
編者注:程序實例在IAR-AVR上編譯通過,見本刊網站
下一篇: PLC、DCS、FCS三大控
上一篇: 電氣控制線路圖控制原