概述
熱敏電阻是 熱敏電阻 -一種隨溫度變化其電阻的電阻。從技術上講,所有電阻器都是熱敏電阻-它們的電阻會隨溫度而略有變化-但變化通常很小,很難測量。制作熱敏電阻時,電阻會隨溫度急劇變化,因此每度變化的電阻可以是100歐姆或更多!
熱敏電阻有兩種,NTC(負溫度系數)和PTC(正溫度系數)。通常,您會看到用于溫度測量的NTC傳感器。 PTC通常用作自恢復保險絲-溫度升高會增加電阻,這意味著當有更多電流通過時,它們會發熱并“扼流”該電流,非常便于保護電路!
熱敏電阻與其他類型的溫度傳感器相比,例如模擬輸出芯片(LM35/TMP36)或數字溫度傳感器芯片(DS18B20)或熱電偶具有一些優勢。
首先,它們比所有產品都便宜得多。以上!裸露的5%熱敏電阻的體積僅為10美分。
它們也很容易防水,因為它只是一個電阻器。
它們可以在任何電壓下工作(數字傳感器需要3或3V 5V邏輯)。
與熱電偶相比,它們不需要放大器即可讀取微小的電壓-您可以使用任何微控制器來讀取熱敏電阻。
它們也可以是價格令人難以置信的準確。例如,商店中的10K 1%熱敏電阻非常適合以±0.25°C的精度進行測量! (假設您有足夠準確的模擬轉換器)
它們很難斷裂或損壞-它們更簡單,更可靠
另一方面,它們需要需要更多的工作來解釋讀數,并且它們在像熱電偶這樣的高溫下也不起作用。沒有板載數模轉換器,使用數字溫度傳感器可能會更好。
它們的簡單性使其非常適合基本溫度反饋控制。例如,假設您想讓風扇在溫度升高時打開。您可以使用微控制器,數字傳感器來控制繼電器。或者,您也可以使用熱敏電阻為晶體管的基極供電,因為溫度升高,電阻降低,向晶體管提供更多電流,直到其導通。 (這是一個粗略的想法,您需要更多的組件才能使其工作)
即使您確實使用了微控制器或復雜的系統,其價格也無法擊敗他們!
p》
您可以在Adafruit商店購買10K 1%防水熱敏電阻
一些統計數據以下是我們商店中熱敏電阻的技術細節
25°電阻C: 10K±1%
B25/50: 3950±1%
熱時間常數? 15秒
熱敏電阻溫度范圍 -55°C至125°C
電線溫度范圍 -55°C至105°C
28 AWG PVC電線
直徑: 3.5mm/0.13in
長度:18in/45cm
電阻/溫度表
請注意,即使熱敏電阻可以升高到125°C,電纜本身也會在105°C時達到最高溫度,因此該熱敏電阻不適用于測量非常熱的液體
測試熱敏電阻
由于熱敏電阻只是電阻,因此易于測試。只需使用萬用表測量電阻:
假設您所坐的房間溫度為10Kohm,您應該閱讀一下。當然,取決于室溫,電阻可以更高或更低。另外,您的手可能最終會碰觸到觸點,因此您的身體抵抗力也會降低該值。但是您仍然應該得到大約10 Kohm
,例如,夏天中旬在一個沒有空調的房間里溫暖,所以我們讀到8Kohm(30°C-86°F!)
使用熱敏電阻
熱敏電阻 這些熱敏電阻非常堅固,您可以剝去PVC絕緣層并將電線粘到面包板上或直接焊接到它們上。當然,您可以切割或延長電線。由于電阻相當高(10Kohm),因此導線電阻不會產生很大差異。
div》模擬電壓讀取方法
要測量溫度,我們需要測量電阻。但是,微控制器沒有內置電阻表。相反,它只有一個電壓讀取器,稱為模擬數字轉換器。因此,我們要做的就是將電阻轉換為電壓,然后通過添加另一個電阻并將其串聯來實現。現在,您只需按照簡單的分壓器方程來測量中間的電壓,隨著電阻的變化,電壓也會發生變化。我們只需要固定一個電阻即可
說固定電阻為 10K ,可變電阻稱為 R -電壓輸出( Vo )是:
Vo = R/(R + 10K)* Vcc
其中 Vcc 是電源電壓(3.3V或5V)
現在我們想將其連接到微控制器。請記住,當您在Arduino ADC中測量電壓( Vi )時,會得到一個數字。
ADC值= Vi * 1023/Varef
因此,現在我們將兩者( Vo = Vi )合并,得到:
ADC值= R/(R + 10K)* Vcc * 1023/Varef
很好的是,如果您注意到,如果Vcc(邏輯電壓)與ARef模擬參考電壓相同,值會抵消!
ADC值= R/(R + 10K)* 1023
在什么電壓下運行都沒有關系。方便!
最后,我們真正想做的就是獲得 R (未知阻力)。因此,我們做了一些數學運算以將 R 移動到一側:
R = 10K/(1023/ADC-1)
很多人通過電子郵件告訴我上述方程式是錯誤的,正確的計算方法是 R = 10K * ADC/(1023-ADC)。他們的等效性留給讀者練習! ;)
太好了,讓我們嘗試一下。如圖所示連接熱敏電阻:
將10K電阻的一端連接到5V,將10K 1%電阻的另一端連接到熱敏電阻的一個引腳,并將熱敏電阻的另一引腳接地。然后將模擬0引腳連接到兩者的“中心”。
現在運行以下草圖:
下載:Project Zip 或 thermistor1.ino | 在Github上查看
復制代碼
// thermistor-1.ino Simple test program for a thermistor for Adafruit Learning System
// https://learn.adafruit.com/thermistor/using-a-thermistor by Limor Fried, Adafruit Industries
// MIT License - please keep attribution and consider buying parts from Adafruit
// the value of the ‘other’ resistor
#define SERIESRESISTOR 10000
// What pin to connect the sensor to
#define THERMISTORPIN A0
void setup(void) {
Serial.begin(9600);
}
void loop(void) {
float reading;
reading = analogRead(THERMISTORPIN);
Serial.print(“Analog reading ”);
Serial.println(reading);
// convert the value to resistance
reading = (1023 / reading) - 1; // (1023/ADC - 1)
reading = SERIESRESISTOR / reading; // 10K / (1023/ADC - 1)
Serial.print(“Thermistor resistance ”);
Serial.println(reading);
delay(1000);
}
// thermistor-1.ino Simple test program for a thermistor for Adafruit Learning System
// https://learn.adafruit.com/thermistor/using-a-thermistor by Limor Fried, Adafruit Industries
// MIT License - please keep attribution and consider buying parts from Adafruit
// the value of the ‘other’ resistor
#define SERIESRESISTOR 10000
// What pin to connect the sensor to
#define THERMISTORPIN A0
void setup(void) {
Serial.begin(9600);
}
void loop(void) {
float reading;
reading = analogRead(THERMISTORPIN);
Serial.print(“Analog reading ”);
Serial.println(reading);
// convert the value to resistance
reading = (1023 / reading) - 1; // (1023/ADC - 1)
reading = SERIESRESISTOR / reading; // 10K / (1023/ADC - 1)
Serial.print(“Thermistor resistance ”);
Serial.println(reading);
delay(1000);
}
您應該獲得與用萬用表測量的熱敏電阻電阻相對應的響應
如果未獲得正確的讀數,請檢查10K電阻器是否位于VCC與A0之間,并且熱敏電阻位于A0與地面之間。檢查您是否具有10K熱敏電阻,并且您正在使用“標準” NTC熱敏電阻。在像經典Arduino或Metro 328這樣的“ 5V”微控制器上,將5V用作VCC引腳。在Feather或Arduino Zero等3.3V微控制器上,將3.3V用作VCC引腳。
如果在加熱熱敏電阻時溫度讀數下降,請檢查是否沒有兩個電阻交換并檢查您使用的是NTC而不是PTC熱敏電阻。
更好的讀數
在進行模擬讀數時,尤其是使用像arduino這樣的“嘈雜”板時,我們建議兩種技巧來改善結果。一種是使用3.3V電壓引腳作為模擬參考,另一種是連續讀取一堆讀數并取平均值。
第一個技巧是依靠5V電源直接來自計算機的USB在Arduino上做很多事情,并且幾乎總是比3.3V線路(經過次級濾波器/調節器級!)高得多。它易于使用,只需將3.3V連接到AREF和用它作為VCC電壓。因為我們的計算不包括VCC電壓,所以您不必更改方程式。您必須設置模擬參考,但這只是一行代碼
多次讀取讀數以求平均結果也有助于獲得更好的結果,因為您可能會有噪音或波動,建議大約5
如圖所示進行重新布線,仍然將10K電阻連接到較高的電壓,并將熱敏電阻接地。
此草圖進行了這兩項改進并將它們集成到演示中,您將獲得更好,更精確的結果讀數。
請注意,此代碼指定了外部參考電壓。為了正常工作,您必須如上圖所示與AREF引腳建立額外的連接。
下載:Project Zip 或 thermistor2.ino | 在Github上查看
復制代碼
// thermistor-2.ino Intermediate test program for a thermistor. Adafruit Learning System Tutorial
// https://learn.adafruit.com/thermistor/using-a-thermistor by Limor Fried, Adafruit Industries
// MIT License - please keep attribution and please consider buying parts from Adafruit
// which analog pin to connect
#define THERMISTORPIN A0
// how many samples to take and average, more takes longer
// but is more ‘smooth’
#define NUMSAMPLES 5
// the value of the ‘other’ resistor
#define SERIESRESISTOR 10000
int samples[NUMSAMPLES];
void setup(void) {
Serial.begin(9600);
// connect AREF to 3.3V and use that as VCC, less noisy!
analogReference(EXTERNAL);
}
void loop(void) {
uint8_t i;
float average;
// take N samples in a row, with a slight delay
for (i=0; i《 NUMSAMPLES; i++) {
samples[i] = analogRead(THERMISTORPIN);
delay(10);
}
// average all the samples out
average = 0;
for (i=0; i《 NUMSAMPLES; i++) {
average += samples[i];
}
average /= NUMSAMPLES;
Serial.print(“Average analog reading ”);
Serial.println(average);
// convert the value to resistance
average = 1023 / average - 1;
average = SERIESRESISTOR / average;
Serial.print(“Thermistor resistance ”);
Serial.println(average);
delay(1000);
}
// thermistor-2.ino Intermediate test program for a thermistor. Adafruit Learning System Tutorial
// https://learn.adafruit.com/thermistor/using-a-thermistor by Limor Fried, Adafruit Industries
// MIT License - please keep attribution and please consider buying parts from Adafruit
// which analog pin to connect
#define THERMISTORPIN A0
// how many samples to take and average, more takes longer
// but is more ‘smooth’
#define NUMSAMPLES 5
// the value of the ‘other’ resistor
#define SERIESRESISTOR 10000
int samples[NUMSAMPLES];
void setup(void) {
Serial.begin(9600);
// connect AREF to 3.3V and use that as VCC, less noisy!
analogReference(EXTERNAL);
}
void loop(void) {
uint8_t i;
float average;
// take N samples in a row, with a slight delay
for (i=0; i《 NUMSAMPLES; i++) {
samples[i] = analogRead(THERMISTORPIN);
delay(10);
}
// average all the samples out
average = 0;
for (i=0; i《 NUMSAMPLES; i++) {
average += samples[i];
}
average /= NUMSAMPLES;
Serial.print(“Average analog reading ”);
Serial.println(average);
// convert the value to resistance
average = 1023 / average - 1;
average = SERIESRESISTOR / average;
Serial.print(“Thermistor resistance ”);
Serial.println(average);
delay(1000);
}
轉換為溫度
最后,當然,我們希望獲得溫度讀數,而不僅僅是電阻!如果只需要做一個快速比較電路(如果溫度低于X,如果溫度高于Y,則這樣做),您可以簡單地使用溫度/電阻表,該表將熱敏電阻的電阻與溫度相關聯。
但是,您可能需要實際的溫度值。為此,我們將使用Steinhart-Hart方程,該方程使我們可以很好地近似轉換值。它不如熱敏電阻表精確(它是一個近似值),但是在使用該熱敏電阻的溫度范圍內還是不錯的。
但是,這個方程相當復雜,需要知道很多我們沒有的變量我們將使用簡化的B參數方程。
對此,我們只需要知道到(室溫,即25°C = 298.15 K) B (在這種情況下為3950,是熱敏電阻的系數)和 Ro (在室溫下的電阻,在這種情況下為10Kohm)。我們插入 R (測量的電阻)并取出 T (開氏溫度),該溫度很容易轉換為°C
為您計算°C
下載:Project Zip 或 thermistor3。 ino | 在Github上查看
復制代碼
// Thermistor Example #3 from the Adafruit Learning System guide on Thermistors
// https://learn.adafruit.com/thermistor/overview by Limor Fried, Adafruit Industries
// MIT License - please keep attribution and consider buying parts from Adafruit
// which analog pin to connect
#define THERMISTORPIN A0
// resistance at 25 degrees C
#define THERMISTORNOMINAL 10000
// temp. for nominal resistance (almost always 25 C)
#define TEMPERATURENOMINAL 25
// how many samples to take and average, more takes longer
// but is more ‘smooth’
#define NUMSAMPLES 5
// The beta coefficient of the thermistor (usually 3000-4000)
#define BCOEFFICIENT 3950
// the value of the ‘other’ resistor
#define SERIESRESISTOR 10000
int samples[NUMSAMPLES];
void setup(void) {
Serial.begin(9600);
analogReference(EXTERNAL);
}
void loop(void) {
uint8_t i;
float average;
// take N samples in a row, with a slight delay
for (i=0; i《 NUMSAMPLES; i++) {
samples[i] = analogRead(THERMISTORPIN);
delay(10);
}
// average all the samples out
average = 0;
for (i=0; i《 NUMSAMPLES; i++) {
average += samples[i];
}
average /= NUMSAMPLES;
Serial.print(“Average analog reading ”);
Serial.println(average);
// convert the value to resistance
average = 1023 / average - 1;
average = SERIESRESISTOR / average;
Serial.print(“Thermistor resistance ”);
Serial.println(average);
float steinhart;
steinhart = average / THERMISTORNOMINAL; // (R/Ro)
steinhart = log(steinhart); // ln(R/Ro)
steinhart /= BCOEFFICIENT; // 1/B * ln(R/Ro)
steinhart += 1.0 / (TEMPERATURENOMINAL + 273.15); // + (1/To)
steinhart = 1.0 / steinhart; // Invert
steinhart -= 273.15; // convert to C
Serial.print(“Temperature ”);
Serial.print(steinhart);
Serial.println(“ *C”);
delay(1000);
}
// Thermistor Example #3 from the Adafruit Learning System guide on Thermistors
// https://learn.adafruit.com/thermistor/overview by Limor Fried, Adafruit Industries
// MIT License - please keep attribution and consider buying parts from Adafruit
// which analog pin to connect
#define THERMISTORPIN A0
// resistance at 25 degrees C
#define THERMISTORNOMINAL 10000
// temp. for nominal resistance (almost always 25 C)
#define TEMPERATURENOMINAL 25
// how many samples to take and average, more takes longer
// but is more ‘smooth’
#define NUMSAMPLES 5
// The beta coefficient of the thermistor (usually 3000-4000)
#define BCOEFFICIENT 3950
// the value of the ‘other’ resistor
#define SERIESRESISTOR 10000
int samples[NUMSAMPLES];
void setup(void) {
Serial.begin(9600);
analogReference(EXTERNAL);
}
void loop(void) {
uint8_t i;
float average;
// take N samples in a row, with a slight delay
for (i=0; i《 NUMSAMPLES; i++) {
samples[i] = analogRead(THERMISTORPIN);
delay(10);
}
// average all the samples out
average = 0;
for (i=0; i《 NUMSAMPLES; i++) {
average += samples[i];
}
average /= NUMSAMPLES;
Serial.print(“Average analog reading ”);
Serial.println(average);
// convert the value to resistance
average = 1023 / average - 1;
average = SERIESRESISTOR / average;
Serial.print(“Thermistor resistance ”);
Serial.println(average);
float steinhart;
steinhart = average / THERMISTORNOMINAL; // (R/Ro)
steinhart = log(steinhart); // ln(R/Ro)
steinhart /= BCOEFFICIENT; // 1/B * ln(R/Ro)
steinhart += 1.0 / (TEMPERATURENOMINAL + 273.15); // + (1/To)
steinhart = 1.0 / steinhart; // Invert
steinhart -= 273.15; // convert to C
Serial.print(“Temperature ”);
Serial.print(steinhart);
Serial.println(“ *C”);
delay(1000);
}
,我們建議您讀取“系列10K”的準確值,應該幾乎是10K,但是如果您能獲得更好的讀數以減少錯誤。
讀數的準確性如何?
您可能會注意到上面的溫度讀數為28.16° C-這意味著我們具有0.01°C的精度嗎?熱敏電阻有誤差,模擬讀取電路有誤差。
我們可以通過首先考慮熱敏電阻電阻誤差來近似預期誤差。熱敏電阻的準確度為1%,這意味著在25°C時它可以讀取10,100至9900歐姆。在25°C左右,相差450歐姆代表1°C,因此1%的誤差表示大約+ -0.25°C(您可以通過在0°C的冰浴中確定熱敏電阻的電阻并將其移除來進行校準任何偏移量)。您還可以使用0.1%的熱敏電阻彈跳,這將可能的電阻誤差降低到+ -0.03°C
然后存在ADC誤差,因為電阻的每一位都錯了(大約25°C)時可能會產生約50歐姆的電阻。這還不錯,并且誤差比熱敏電阻誤差本身+-(0.1°C)小,但是無法“遠離”校準它-高精度ADC(12-16位而不是10位)可以通常,我們認為熱敏電阻的精度要高于熱電偶或大多數低成本的數字傳感器,但在1的Arduino上,精度不會高于+ -0.1°C %熱敏電阻,建議不要高于+ -0.5°C。
自加熱
如果在5V和地面之間連接了10K熱敏電阻+ 10K電阻,則在5V/(10K + 10K)= 0.25mA的電流下流過一直。雖然電流不是很大,但由于10K熱敏電阻將耗散約0.25mA * 2.5V = 0.625 mW的熱量,因此會加熱您的熱敏電阻。
為避免這種發熱,您可以嘗試連接電阻分壓器的“頂部”連接至GPIO引腳,并在您要讀取時將其設置為高電平(從而創建分壓器),然后在低功耗模式下將其設置為低電平(0V不會流到地電流)
CircuitPython
很容易將熱敏電阻與CircuitPython和電路板的內置模數轉換器一起使用。就像上一頁的Arduino示例一樣,您可以將熱敏電阻連接到板的模擬輸入并讀取電阻。隨著溫度的變化,電阻也會發生變化,您可以使用Python代碼將其轉換為精確的溫度值!
在開始之前,這將有助于您熟悉CircuitPython中的模擬輸入。
下一步,完全按照上一頁所示,將熱敏電阻連接到板上。您需要從最高3.3V的模擬輸入端連接一個固定電阻器(通常為10千歐姆)。然后將一個引腳從熱敏電阻連接到相同的模擬輸入,另一引腳連接到電路板的接地。在此示例中,我們將在Feather M0基礎上使用模擬輸入A1。
Fritzing Source
下一步連接到開發板的串行REPL,因此您位于CircuitPython的》》》 提示符下。
您可以通過運行以下命令來導入必要的 board 和 analogio 模塊:
下載:文件
復制代碼
import board
import analogio import board
import analogio
現在使用連接到熱敏電阻的引腳創建模擬輸入:
下載:文件
復制代碼
thermistor = analogio.AnalogIn(board.A1) thermistor = analogio.AnalogIn(board.A1)
此時,您可以從熱敏電阻讀取原始ADC值:
下載:文件
復制代碼
thermistor.value thermistor.value
原始價值不是很有趣對我們來說,我們真的想將其轉換為電阻和溫度值。不過要注意的一點是,該原始值始終在0到65535之間,而在Arduino中,原始值始終在0到1023之間。隨著熱敏電阻的電阻變化(基于溫度變化),該原始值也會變化
使用與上一頁相同的公式,您可以計算熱敏電阻的電阻:
下載:文件
復制代碼
R = 10000 / (65535/thermistor.value - 1)
print(‘Thermistor resistance: {} ohms’.format(R)) R = 10000 / (65535/thermistor.value - 1)
print(‘Thermistor resistance: {} ohms’.format(R))
請記住,如果您使用的是其他尺寸的電阻器,則可能需要更改上面的公式,里面有10000個值!
轉換為溫度
將熱敏電阻的電阻轉換為溫度就像您在Arduino的上一頁中看到的那樣。您可以使用一個特殊的方程式以及有關熱敏電阻的一些已知參數,以Python代碼執行此轉換。
首先請確保您知道熱敏電阻的這些值(如果可用,請查看其數據表):
Ro -標稱溫度值下的電阻。通常為10,000歐姆。
To -處于上面標稱電阻值的溫度(攝氏度)。通常為25.0攝氏度。
Beta -熱敏電阻的beta系數值。通常,此值在3000-4000范圍內,例如3950。
我們現在可以求解方程中提到的簡化B系數Steinhart-Hart方程。上一頁。您可以定義以下函數來執行此數學運算:
下載:文件
復制代碼
def steinhart_temperature_C(r, Ro=10000.0, To=25.0, beta=3950.0):
import math
steinhart = math.log(r / Ro) / beta # log(R/Ro) / beta
steinhart += 1.0 / (To + 273.15) # log(R/Ro) / beta + 1/To
steinhart = (1.0 / steinhart) - 273.15 # Invert, convert to C
return steinhart def steinhart_temperature_C(r, Ro=10000.0, To=25.0, beta=3950.0):
import math
steinhart = math.log(r / Ro) / beta # log(R/Ro) / beta
steinhart += 1.0 / (To + 273.15) # log(R/Ro) / beta + 1/To
steinhart = (1.0 / steinhart) - 273.15 # Invert, convert to C
return steinhart
現在調用該函數并將其傳遞給您的熱敏電阻電阻傳遞給您。您也可以傳入顯式的Ro,To和beta參數,或使用默認值(10k,25.0C,3950):
下載:文件
復制代碼
R = 10000 / (65535/thermistor.value - 1)
steinhart_temperature_C(R) R = 10000 / (65535/thermistor.value - 1)
steinhart_temperature_C(R)
或者如果您要傳遞顯式的Ro,To,beta參數:
下載:文件
復制代碼
steinhart_temperature_C(R, Ro=10000.0, To=25.0, beta=3950) steinhart_temperature_C(R, Ro=10000.0, To=25.0, beta=3950)
現在您將來自熱敏電阻的溫度作為攝氏溫度值!
Thermistor Module
如果您只想讀取一個熱敏電阻的值,實際上可以使用一個方便的CircuitPython模塊為您自動執行所有上述計算。要將熱敏電阻模塊傳感器與Adafruit CircuitPython板一起使用,您需要在板上安裝Adafruit_CircuitPython_Thermistor模塊。
下一步,您需要安裝必要的庫才能使用硬件-仔細按照以下步驟從Adafruit的CircuitPython庫包中查找和安裝這些庫。例如,Circuit Playground Express指南上有一個很棒的頁面,說明如何為快速和非表達板安裝庫包。
記住非表達板,例如Trinket M0,Gemma M0和Feather/Metro M0 basic,您需要從捆綁包中手動安裝必要的庫:
adafruit_thermistor.mpy
在繼續制作之前確保您開發板的lib文件夾或根文件系統已復制 adafruit_thermistor.mpy 模塊。
div》用法
演示熱敏電阻模塊的用法,您可以連接到板的串行REPL并運行Python代碼以讀取溫度和濕度。
首先連接到板的串行REPL,您就是
提示。
下一步,導入面板和 adafruit_thermistor 模塊,這些是初始化和訪問傳感器的必要模塊:
下載:文件
復制代碼
import board
import adafruit_thermistor import board
import adafruit_thermistor
現在從模塊中創建 Thermistor 類的實例。就像自己進行數學運算一樣,您需要了解熱敏電阻的Ro,To和Beta參數。例如,使用與之前相同的熱敏電阻設置:
下載:文件
復制代碼
thermistor = adafruit_thermistor.Thermistor(board.A1, 10000.0, 10000.0, 25.0, 3950.0, high_side=False) thermistor = adafruit_thermistor.Thermistor(board.A1, 10000.0, 10000.0, 25.0, 3950.0, high_side=False)
讓我們分解發送給熱敏電阻初始化程序的所有參數:
模擬輸入-第一個參數是連接到熱敏電阻(在這種情況下為板針A1)的模擬輸入的名稱。
串聯電阻-第二個參數是連接到熱敏電阻的串聯電阻的值。如果您遵循本指南,則需要10,000歐姆的值。
標稱電阻(Ro)-第三個參數是標稱溫度下熱敏電阻的電阻值。對于本指南中的熱敏電阻,請使用相同的10,000歐姆值。
標稱溫度(To)-第四個參數是在以下溫度下熱敏電阻的溫度值(以攝氏度為單位)。標稱電阻值。對于本指南中的熱敏電阻,請使用相同的25.0度值。
β系數-第五個參數是您的熱敏電阻的beta系數,在這種情況下為3950。
High_side布爾值-第六個參數是可選的,它指示熱敏電阻是連接在電阻分壓器的高端還是低端。在本指南中,我們實際上已將熱敏電阻的下部接線,或者從ADC輸入引至地。但是,對于其他電路板和用途,您可以從高端反向連接熱敏電阻,或者從高達3.3V或5V的ADC輸入連接。 high_side參數的默認值為true,但對于本指南中的接線,我們需要通過將high_side設置為false來告知我們正在使用低端接線。
創建熱敏電阻實例后,您可以讀取溫度屬性以獲取攝氏溫度值:
下載:文件
復制代碼
thermistor.temperature thermistor.temperature
這就是使用熱敏電阻模塊讀取熱敏電阻的溫度所需要的一切!在內部,該模塊將為您完成所有必要的Steinhart-Hart方程數學。您可以獲取溫度結果,并在自己的程序中使用它來添加溫度感應!
責任編輯:wv
-
熱敏電阻
+關注
關注
14文章
1163瀏覽量
101502
發布評論請先 登錄
相關推薦
評論