99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

熱敏電阻的介紹

454398 ? 來源:網(wǎng)絡(luò)整理 ? 作者:網(wǎng)絡(luò)整理 ? 2019-12-03 17:19 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

概述

熱敏電阻是 熱敏電阻 -一種隨溫度變化其電阻的電阻。從技術(shù)上講,所有電阻器都是熱敏電阻-它們的電阻會(huì)隨溫度而略有變化-但變化通常很小,很難測量。制作熱敏電阻時(shí),電阻會(huì)隨溫度急劇變化,因此每度變化的電阻可以是100歐姆或更多!

熱敏電阻有兩種,NTC(負(fù)溫度系數(shù))和PTC(正溫度系數(shù))。通常,您會(huì)看到用于溫度測量的NTC傳感器。 PTC通常用作自恢復(fù)保險(xiǎn)絲-溫度升高會(huì)增加電阻,這意味著當(dāng)有更多電流通過時(shí),它們會(huì)發(fā)熱并“扼流”該電流,非常便于保護(hù)電路!

熱敏電阻與其他類型的溫度傳感器相比,例如模擬輸出芯片(LM35/TMP36)或數(shù)字溫度傳感器芯片(DS18B20)或熱電偶具有一些優(yōu)勢。

首先,它們比所有產(chǎn)品都便宜得多。以上!裸露的5%熱敏電阻的體積僅為10美分。

它們也很容易防水,因?yàn)樗皇且粋€(gè)電阻器。

它們可以在任何電壓下工作(數(shù)字傳感器需要3或3V 5V邏輯)。

與熱電偶相比,它們不需要放大器即可讀取微小的電壓-您可以使用任何微控制器來讀取熱敏電阻。

它們也可以是價(jià)格令人難以置信的準(zhǔn)確。例如,商店中的10K 1%熱敏電阻非常適合以±0.25°C的精度進(jìn)行測量! (假設(shè)您有足夠準(zhǔn)確的模擬轉(zhuǎn)換器

它們很難斷裂或損壞-它們更簡單,更可靠

另一方面,它們需要需要更多的工作來解釋讀數(shù),并且它們?cè)谙駸犭娕歼@樣的高溫下也不起作用。沒有板載數(shù)模轉(zhuǎn)換器,使用數(shù)字溫度傳感器可能會(huì)更好。

它們的簡單性使其非常適合基本溫度反饋控制。例如,假設(shè)您想讓風(fēng)扇在溫度升高時(shí)打開。您可以使用微控制器,數(shù)字傳感器來控制繼電器?;蛘撸部梢允褂脽崦綦娮铻?a target="_blank">晶體管的基極供電,因?yàn)闇囟壬?,電阻降低,向晶體管提供更多電流,直到其導(dǎo)通。 (這是一個(gè)粗略的想法,您需要更多的組件才能使其工作)

即使您確實(shí)使用了微控制器或復(fù)雜的系統(tǒng),其價(jià)格也無法擊敗他們!

p》

您可以在Adafruit商店購買10K 1%防水熱敏電阻

一些統(tǒng)計(jì)數(shù)據(jù)以下是我們商店中熱敏電阻的技術(shù)細(xì)節(jié)

25°電阻C: 10K±1%

B25/50: 3950±1%

熱時(shí)間常數(shù)? 15秒

熱敏電阻溫度范圍 -55°C至125°C

電線溫度范圍 -55°C至105°C

28 AWG PVC電線

直徑: 3.5mm/0.13in

長度:18in/45cm

電阻/溫度表

請(qǐng)注意,即使熱敏電阻可以升高到125°C,電纜本身也會(huì)在105°C時(shí)達(dá)到最高溫度,因此該熱敏電阻不適用于測量非常熱的液體

測試熱敏電阻

由于熱敏電阻只是電阻,因此易于測試。只需使用萬用表測量電阻:

假設(shè)您所坐的房間溫度為10Kohm,您應(yīng)該閱讀一下。當(dāng)然,取決于室溫,電阻可以更高或更低。另外,您的手可能最終會(huì)碰觸到觸點(diǎn),因此您的身體抵抗力也會(huì)降低該值。但是您仍然應(yīng)該得到大約10 Kohm

,例如,夏天中旬在一個(gè)沒有空調(diào)的房間里溫暖,所以我們讀到8Kohm(30°C-86°F!)

使用熱敏電阻

熱敏電阻 這些熱敏電阻非常堅(jiān)固,您可以剝?nèi)VC絕緣層并將電線粘到面包板上或直接焊接到它們上。當(dāng)然,您可以切割或延長電線。由于電阻相當(dāng)高(10Kohm),因此導(dǎo)線電阻不會(huì)產(chǎn)生很大差異。

div》模擬電壓讀取方法

要測量溫度,我們需要測量電阻。但是,微控制器沒有內(nèi)置電阻表。相反,它只有一個(gè)電壓讀取器,稱為模擬數(shù)字轉(zhuǎn)換器。因此,我們要做的就是將電阻轉(zhuǎn)換為電壓,然后通過添加另一個(gè)電阻并將其串聯(lián)來實(shí)現(xiàn)?,F(xiàn)在,您只需按照簡單的分壓器方程來測量中間的電壓,隨著電阻的變化,電壓也會(huì)發(fā)生變化。我們只需要固定一個(gè)電阻即可

說固定電阻為 10K ,可變電阻稱為 R -電壓輸出( Vo )是:

Vo = R/(R + 10K)* Vcc

其中 Vcc 是電源電壓(3.3V或5V)

現(xiàn)在我們想將其連接到微控制器。請(qǐng)記住,當(dāng)您在Arduino ADC中測量電壓( Vi )時(shí),會(huì)得到一個(gè)數(shù)字。

ADC值= Vi * 1023/Varef

因此,現(xiàn)在我們將兩者( Vo = Vi )合并,得到:

ADC值= R/(R + 10K)* Vcc * 1023/Varef

很好的是,如果您注意到,如果Vcc(邏輯電壓)與ARef模擬參考電壓相同,值會(huì)抵消!

ADC值= R/(R + 10K)* 1023

在什么電壓下運(yùn)行都沒有關(guān)系。方便!

最后,我們真正想做的就是獲得 R (未知阻力)。因此,我們做了一些數(shù)學(xué)運(yùn)算以將 R 移動(dòng)到一側(cè):

R = 10K/(1023/ADC-1)

很多人通過電子郵件告訴我上述方程式是錯(cuò)誤的,正確的計(jì)算方法是 R = 10K * ADC/(1023-ADC)。他們的等效性留給讀者練習(xí)! ;)

太好了,讓我們嘗試一下。如圖所示連接熱敏電阻:

將10K電阻的一端連接到5V,將10K 1%電阻的另一端連接到熱敏電阻的一個(gè)引腳,并將熱敏電阻的另一引腳接地。然后將模擬0引腳連接到兩者的“中心”。

現(xiàn)在運(yùn)行以下草圖:

下載:Project Zip 或 thermistor1.ino | 在Github上查看

復(fù)制代碼

// 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);

}

您應(yīng)該獲得與用萬用表測量的熱敏電阻電阻相對(duì)應(yīng)的響應(yīng)

如果未獲得正確的讀數(shù),請(qǐng)檢查10K電阻器是否位于VCC與A0之間,并且熱敏電阻位于A0與地面之間。檢查您是否具有10K熱敏電阻,并且您正在使用“標(biāo)準(zhǔn)” NTC熱敏電阻。在像經(jīng)典Arduino或Metro 328這樣的“ 5V”微控制器上,將5V用作VCC引腳。在Feather或Arduino Zero等3.3V微控制器上,將3.3V用作VCC引腳。

如果在加熱熱敏電阻時(shí)溫度讀數(shù)下降,請(qǐng)檢查是否沒有兩個(gè)電阻交換并檢查您使用的是NTC而不是PTC熱敏電阻。

更好的讀數(shù)

在進(jìn)行模擬讀數(shù)時(shí),尤其是使用像arduino這樣的“嘈雜”板時(shí),我們建議兩種技巧來改善結(jié)果。一種是使用3.3V電壓引腳作為模擬參考,另一種是連續(xù)讀取一堆讀數(shù)并取平均值。

第一個(gè)技巧是依靠5V電源直接來自計(jì)算機(jī)的USB在Arduino上做很多事情,并且?guī)缀蹩偸潜?.3V線路(經(jīng)過次級(jí)濾波器/調(diào)節(jié)器級(jí)?。└叩枚?。它易于使用,只需將3.3V連接到AREF和用它作為VCC電壓。因?yàn)槲覀兊挠?jì)算不包括VCC電壓,所以您不必更改方程式。您必須設(shè)置模擬參考,但這只是一行代碼

多次讀取讀數(shù)以求平均結(jié)果也有助于獲得更好的結(jié)果,因?yàn)槟赡軙?huì)有噪音或波動(dòng),建議大約5

如圖所示進(jìn)行重新布線,仍然將10K電阻連接到較高的電壓,并將熱敏電阻接地。

此草圖進(jìn)行了這兩項(xiàng)改進(jìn)并將它們集成到演示中,您將獲得更好,更精確的結(jié)果讀數(shù)。

請(qǐng)注意,此代碼指定了外部參考電壓。為了正常工作,您必須如上圖所示與AREF引腳建立額外的連接。

下載:Project Zip 或 thermistor2.ino | 在Github上查看

復(fù)制代碼

// 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);

}

轉(zhuǎn)換為溫度

最后,當(dāng)然,我們希望獲得溫度讀數(shù),而不僅僅是電阻!如果只需要做一個(gè)快速比較電路(如果溫度低于X,如果溫度高于Y,則這樣做),您可以簡單地使用溫度/電阻表,該表將熱敏電阻的電阻與溫度相關(guān)聯(lián)。

但是,您可能需要實(shí)際的溫度值。為此,我們將使用Steinhart-Hart方程,該方程使我們可以很好地近似轉(zhuǎn)換值。它不如熱敏電阻表精確(它是一個(gè)近似值),但是在使用該熱敏電阻的溫度范圍內(nèi)還是不錯(cuò)的。

但是,這個(gè)方程相當(dāng)復(fù)雜,需要知道很多我們沒有的變量我們將使用簡化的B參數(shù)方程。

對(duì)此,我們只需要知道到(室溫,即25°C = 298.15 K) B (在這種情況下為3950,是熱敏電阻的系數(shù))和 Ro (在室溫下的電阻,在這種情況下為10Kohm)。我們插入 R (測量的電阻)并取出 T (開氏溫度),該溫度很容易轉(zhuǎn)換為°C

為您計(jì)算°C

下載:Project Zip 或 thermistor3。 ino | 在Github上查看

復(fù)制代碼

// 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”的準(zhǔn)確值,應(yīng)該幾乎是10K,但是如果您能獲得更好的讀數(shù)以減少錯(cuò)誤。

讀數(shù)的準(zhǔn)確性如何?

您可能會(huì)注意到上面的溫度讀數(shù)為28.16° C-這意味著我們具有0.01°C的精度嗎?熱敏電阻有誤差,模擬讀取電路有誤差。

我們可以通過首先考慮熱敏電阻電阻誤差來近似預(yù)期誤差。熱敏電阻的準(zhǔn)確度為1%,這意味著在25°C時(shí)它可以讀取10,100至9900歐姆。在25°C左右,相差450歐姆代表1°C,因此1%的誤差表示大約+ -0.25°C(您可以通過在0°C的冰浴中確定熱敏電阻的電阻并將其移除來進(jìn)行校準(zhǔn)任何偏移量)。您還可以使用0.1%的熱敏電阻彈跳,這將可能的電阻誤差降低到+ -0.03°C

然后存在ADC誤差,因?yàn)殡娮璧拿恳晃欢煎e(cuò)了(大約25°C)時(shí)可能會(huì)產(chǎn)生約50歐姆的電阻。這還不錯(cuò),并且誤差比熱敏電阻誤差本身+-(0.1°C)小,但是無法“遠(yuǎn)離”校準(zhǔn)它-高精度ADC(12-16位而不是10位)可以通常,我們認(rèn)為熱敏電阻的精度要高于熱電偶或大多數(shù)低成本的數(shù)字傳感器,但在1的Arduino上,精度不會(huì)高于+ -0.1°C %熱敏電阻,建議不要高于+ -0.5°C。

自加熱

如果在5V和地面之間連接了10K熱敏電阻+ 10K電阻,則在5V/(10K + 10K)= 0.25mA的電流下流過一直。雖然電流不是很大,但由于10K熱敏電阻將耗散約0.25mA * 2.5V = 0.625 mW的熱量,因此會(huì)加熱您的熱敏電阻。

為避免這種發(fā)熱,您可以嘗試連接電阻分壓器的“頂部”連接至GPIO引腳,并在您要讀取時(shí)將其設(shè)置為高電平(從而創(chuàng)建分壓器),然后在低功耗模式下將其設(shè)置為低電平(0V不會(huì)流到地電流)

CircuitPython

很容易將熱敏電阻與CircuitPython和電路板的內(nèi)置模數(shù)轉(zhuǎn)換器一起使用。就像上一頁的Arduino示例一樣,您可以將熱敏電阻連接到板的模擬輸入并讀取電阻。隨著溫度的變化,電阻也會(huì)發(fā)生變化,您可以使用Python代碼將其轉(zhuǎn)換為精確的溫度值!

在開始之前,這將有助于您熟悉CircuitPython中的模擬輸入。

下一步,完全按照上一頁所示,將熱敏電阻連接到板上。您需要從最高3.3V的模擬輸入端連接一個(gè)固定電阻器(通常為10千歐姆)。然后將一個(gè)引腳從熱敏電阻連接到相同的模擬輸入,另一引腳連接到電路板的接地。在此示例中,我們將在Feather M0基礎(chǔ)上使用模擬輸入A1。

Fritzing Source

下一步連接到開發(fā)板的串行REPL,因此您位于CircuitPython的》》》 提示符下。

您可以通過運(yùn)行以下命令來導(dǎo)入必要的 board 和 analogio 模塊:

下載:文件

復(fù)制代碼

import board

import analogio import board

import analogio

現(xiàn)在使用連接到熱敏電阻的引腳創(chuàng)建模擬輸入:

下載:文件

復(fù)制代碼

thermistor = analogio.AnalogIn(board.A1) thermistor = analogio.AnalogIn(board.A1)

此時(shí),您可以從熱敏電阻讀取原始ADC值:

下載:文件

復(fù)制代碼

thermistor.value thermistor.value

原始價(jià)值不是很有趣對(duì)我們來說,我們真的想將其轉(zhuǎn)換為電阻和溫度值。不過要注意的一點(diǎn)是,該原始值始終在0到65535之間,而在Arduino中,原始值始終在0到1023之間。隨著熱敏電阻的電阻變化(基于溫度變化),該原始值也會(huì)變化

使用與上一頁相同的公式,您可以計(jì)算熱敏電阻的電阻:

下載:文件

復(fù)制代碼

R = 10000 / (65535/thermistor.value - 1)

print(‘Thermistor resistance: {} ohms’.format(R)) R = 10000 / (65535/thermistor.value - 1)

print(‘Thermistor resistance: {} ohms’.format(R))

請(qǐng)記住,如果您使用的是其他尺寸的電阻器,則可能需要更改上面的公式,里面有10000個(gè)值!

轉(zhuǎn)換為溫度

將熱敏電阻的電阻轉(zhuǎn)換為溫度就像您在Arduino的上一頁中看到的那樣。您可以使用一個(gè)特殊的方程式以及有關(guān)熱敏電阻的一些已知參數(shù),以Python代碼執(zhí)行此轉(zhuǎn)換。

首先請(qǐng)確保您知道熱敏電阻的這些值(如果可用,請(qǐng)查看其數(shù)據(jù)表):

Ro -標(biāo)稱溫度值下的電阻。通常為10,000歐姆。

To -處于上面標(biāo)稱電阻值的溫度(攝氏度)。通常為25.0攝氏度。

Beta -熱敏電阻的beta系數(shù)值。通常,此值在3000-4000范圍內(nèi),例如3950。

我們現(xiàn)在可以求解方程中提到的簡化B系數(shù)Steinhart-Hart方程。上一頁。您可以定義以下函數(shù)來執(zhí)行此數(shù)學(xué)運(yùn)算:

下載:文件

復(fù)制代碼

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

現(xiàn)在調(diào)用該函數(shù)并將其傳遞給您的熱敏電阻電阻傳遞給您。您也可以傳入顯式的Ro,To和beta參數(shù),或使用默認(rèn)值(10k,25.0C,3950):

下載:文件

復(fù)制代碼

R = 10000 / (65535/thermistor.value - 1)

steinhart_temperature_C(R) R = 10000 / (65535/thermistor.value - 1)

steinhart_temperature_C(R)

或者如果您要傳遞顯式的Ro,To,beta參數(shù):

下載:文件

復(fù)制代碼

steinhart_temperature_C(R, Ro=10000.0, To=25.0, beta=3950) steinhart_temperature_C(R, Ro=10000.0, To=25.0, beta=3950)

現(xiàn)在您將來自熱敏電阻的溫度作為攝氏溫度值!

Thermistor Module

如果您只想讀取一個(gè)熱敏電阻的值,實(shí)際上可以使用一個(gè)方便的CircuitPython模塊為您自動(dòng)執(zhí)行所有上述計(jì)算。要將熱敏電阻模塊傳感器與Adafruit CircuitPython板一起使用,您需要在板上安裝Adafruit_CircuitPython_Thermistor模塊。

下一步,您需要安裝必要的庫才能使用硬件-仔細(xì)按照以下步驟從Adafruit的CircuitPython庫包中查找和安裝這些庫。例如,Circuit Playground Express指南上有一個(gè)很棒的頁面,說明如何為快速和非表達(dá)板安裝庫包。

記住非表達(dá)板,例如Trinket M0,Gemma M0和Feather/Metro M0 basic,您需要從捆綁包中手動(dòng)安裝必要的庫:

adafruit_thermistor.mpy

在繼續(xù)制作之前確保您開發(fā)板的lib文件夾或根文件系統(tǒng)已復(fù)制 adafruit_thermistor.mpy 模塊。

div》用法

演示熱敏電阻模塊的用法,您可以連接到板的串行REPL并運(yùn)行Python代碼以讀取溫度和濕度。

首先連接到板的串行REPL,您就是

提示。

下一步,導(dǎo)入面板和 adafruit_thermistor 模塊,這些是初始化和訪問傳感器的必要模塊:

下載:文件

復(fù)制代碼

import board

import adafruit_thermistor import board

import adafruit_thermistor

現(xiàn)在從模塊中創(chuàng)建 Thermistor 類的實(shí)例。就像自己進(jìn)行數(shù)學(xué)運(yùn)算一樣,您需要了解熱敏電阻的Ro,To和Beta參數(shù)。例如,使用與之前相同的熱敏電阻設(shè)置:

下載:文件

復(fù)制代碼

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)

讓我們分解發(fā)送給熱敏電阻初始化程序的所有參數(shù):

模擬輸入-第一個(gè)參數(shù)是連接到熱敏電阻(在這種情況下為板針A1)的模擬輸入的名稱。

串聯(lián)電阻-第二個(gè)參數(shù)是連接到熱敏電阻的串聯(lián)電阻的值。如果您遵循本指南,則需要10,000歐姆的值。

標(biāo)稱電阻(Ro)-第三個(gè)參數(shù)是標(biāo)稱溫度下熱敏電阻的電阻值。對(duì)于本指南中的熱敏電阻,請(qǐng)使用相同的10,000歐姆值。

標(biāo)稱溫度(To)-第四個(gè)參數(shù)是在以下溫度下熱敏電阻的溫度值(以攝氏度為單位)。標(biāo)稱電阻值。對(duì)于本指南中的熱敏電阻,請(qǐng)使用相同的25.0度值。

β系數(shù)-第五個(gè)參數(shù)是您的熱敏電阻的beta系數(shù),在這種情況下為3950。

High_side布爾值-第六個(gè)參數(shù)是可選的,它指示熱敏電阻是連接在電阻分壓器的高端還是低端。在本指南中,我們實(shí)際上已將熱敏電阻的下部接線,或者從ADC輸入引至地。但是,對(duì)于其他電路板和用途,您可以從高端反向連接熱敏電阻,或者從高達(dá)3.3V或5V的ADC輸入連接。 high_side參數(shù)的默認(rèn)值為true,但對(duì)于本指南中的接線,我們需要通過將high_side設(shè)置為false來告知我們正在使用低端接線。

創(chuàng)建熱敏電阻實(shí)例后,您可以讀取溫度屬性以獲取攝氏溫度值:

下載:文件

復(fù)制代碼

thermistor.temperature thermistor.temperature

這就是使用熱敏電阻模塊讀取熱敏電阻的溫度所需要的一切!在內(nèi)部,該模塊將為您完成所有必要的Steinhart-Hart方程數(shù)學(xué)。您可以獲取溫度結(jié)果,并在自己的程序中使用它來添加溫度感應(yīng)!
責(zé)任編輯:wv

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 熱敏電阻
    +關(guān)注

    關(guān)注

    14

    文章

    1196

    瀏覽量

    102879
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    細(xì)談NTC熱敏電阻型號(hào)及參數(shù)如何選型

    NTC熱敏電阻是一種高性能電阻器件,其電阻值會(huì)隨溫度變化而顯著變化。這種特性使得NTC熱敏電阻在溫度測量、溫度補(bǔ)償和溫度控制等領(lǐng)域得到了廣泛應(yīng)用。本文將詳細(xì)
    的頭像 發(fā)表于 03-21 13:07 ?1143次閱讀
    細(xì)談NTC<b class='flag-5'>熱敏電阻</b>型號(hào)及參數(shù)如何選型

    NTC熱敏電阻在溫度測量中的應(yīng)用 NTC熱敏電阻的封裝類型

    NTC熱敏電阻在溫度測量中的應(yīng)用 NTC熱敏電阻是一種負(fù)溫度系數(shù)的熱敏電阻,其阻值隨溫度的升高而下降。這種特性使得NTC熱敏電阻在溫度測量中具有廣泛的應(yīng)用。以下是NTC
    的頭像 發(fā)表于 12-17 18:01 ?1723次閱讀

    NTC熱敏電阻選型指南 如何測試NTC熱敏電阻性能

    是一份NTC熱敏電阻選型指南和性能測試方法的介紹: NTC熱敏電阻選型指南 確定應(yīng)用需求 : 確定NTC熱敏電阻將用于何種應(yīng)用,如溫度測量、過熱保護(hù)等。 了解所需的溫度范圍和精度要求。
    的頭像 發(fā)表于 12-17 17:34 ?3427次閱讀

    NTC熱敏電阻和PTC熱敏電阻的區(qū)別是什么

    NTC(負(fù)溫度系數(shù))熱敏電阻和PTC(正溫度系數(shù))熱敏電阻是兩種不同類型的溫度敏感元件,它們?cè)陔娮雍碗姎庀到y(tǒng)中用于溫度檢測和控制。以下是它們之間的一些主要區(qū)別: 溫度系數(shù) : NTC熱敏電阻 :隨著
    的頭像 發(fā)表于 12-17 17:28 ?1687次閱讀

    熱敏電阻導(dǎo)通時(shí)的溫度變化

    熱敏電阻是一種特殊的電阻,對(duì)溫度感知靈敏,其電阻值會(huì)隨著溫度的變化而變化。因熱敏電阻具有體積小,靈敏度高,響應(yīng)速度快,溫度范圍廣等優(yōu)點(diǎn),在現(xiàn)代工業(yè)和消費(fèi)電子中,
    的頭像 發(fā)表于 12-06 17:06 ?905次閱讀
    <b class='flag-5'>熱敏電阻</b>導(dǎo)通時(shí)的溫度變化

    熱敏電阻的特性分析 熱敏電阻的常見型號(hào)及參數(shù)

    熱敏電阻的特性分析 溫度敏感性 :熱敏電阻電阻值隨溫度變化而變化,這種變化可以是正溫度系數(shù)(PTC)或負(fù)溫度系數(shù)(NTC)。 響應(yīng)速度 :熱敏電阻能夠快速響應(yīng)溫度變化,這對(duì)于需要快速
    的頭像 發(fā)表于 12-06 10:00 ?3325次閱讀

    NTC熱敏電阻的溫度補(bǔ)償功能

    NTC熱敏電阻的溫度補(bǔ)償功能是其重要的應(yīng)用特性之一。以下是對(duì)NTC熱敏電阻溫度補(bǔ)償功能的介紹: 一、NTC熱敏電阻的基本特性 NTC熱敏電阻
    的頭像 發(fā)表于 11-26 17:42 ?2853次閱讀

    NTC熱敏電阻的封裝形式介紹

    NTC熱敏電阻的封裝形式多種多樣,每種封裝形式都有其獨(dú)特的特點(diǎn)和適用場合。以下是對(duì)幾種常見的NTC熱敏電阻封裝形式的介紹: 一、環(huán)氧樹脂封裝 環(huán)氧樹脂封裝是一種常見的NTC熱敏電阻封裝
    的頭像 發(fā)表于 11-26 16:59 ?2164次閱讀

    NTC熱敏電阻特性與應(yīng)用 NTC熱敏電阻與PTC的區(qū)別

    NTC熱敏電阻特性與應(yīng)用 1. NTC熱敏電阻的定義和特性 NTC熱敏電阻是一種負(fù)溫度系數(shù)的熱敏電阻,其電阻值隨溫度的升高而降低。這種特性使
    的頭像 發(fā)表于 11-26 16:14 ?3208次閱讀

    PTC熱敏電阻和NTC熱敏電阻的不同之處

    熱敏電阻器對(duì)溫度靈敏,根據(jù)溫度系數(shù)不同分PTC熱敏電阻和NTC熱敏電阻。PTC熱敏電阻用于加熱元件,能控制溫度;NTC熱敏電阻用于限制浪涌電
    的頭像 發(fā)表于 10-10 17:07 ?1617次閱讀
    PTC<b class='flag-5'>熱敏電阻</b>和NTC<b class='flag-5'>熱敏電阻</b>的不同之處

    PTC熱敏電阻和NTC熱敏電阻的不同之處

    關(guān)鍵詞:熱敏電阻;電阻;PTC;NTC;溫度; 摘要:熱敏電阻器對(duì)溫度靈敏,根據(jù)溫度系數(shù)不同分PTC熱敏電阻和NTC熱敏電阻。PTC
    的頭像 發(fā)表于 10-09 16:59 ?1587次閱讀
    PTC<b class='flag-5'>熱敏電阻</b>和NTC<b class='flag-5'>熱敏電阻</b>的不同之處

    熱敏電阻可以并聯(lián)使用嗎

    熱敏電阻當(dāng)然可以并聯(lián)使用,但是并聯(lián)使用的效果和應(yīng)用場景會(huì)與單獨(dú)使用或串聯(lián)使用有所不同。 熱敏電阻是一種傳感器電阻,其電阻值隨著溫度的變化而變化。這種特性使得
    的頭像 發(fā)表于 09-06 15:42 ?2697次閱讀

    PTC熱敏電阻和NTC熱敏電阻怎么選?

    PTC熱敏電阻電阻值隨溫升增加,用于過流、過溫保護(hù);NTC熱敏電阻電阻值隨溫升減小,適用于溫度測量和控制。選擇熱敏電阻需考慮應(yīng)用場景以保證電
    的頭像 發(fā)表于 09-04 11:10 ?1165次閱讀
    PTC<b class='flag-5'>熱敏電阻</b>和NTC<b class='flag-5'>熱敏電阻</b>怎么選?

    PTC熱敏電阻和NTC熱敏電阻怎么選?

    PTC熱敏電阻電阻值隨溫升增加,用于過流、過溫保護(hù);NTC熱敏電阻電阻值隨溫升減小,適用于溫度測量和控制。選擇熱敏電阻需考慮應(yīng)用場景以保證電
    的頭像 發(fā)表于 09-04 10:45 ?984次閱讀

    什么是熱敏電阻?怎么判斷熱敏電阻的好壞?

    熱敏電阻是一種傳感器電阻,其電阻值隨著溫度的變化而改變。這種電阻的變化特性使得熱敏電阻在溫度測量、溫度控制、過熱保護(hù)等領(lǐng)域發(fā)揮重要作用。根據(jù)
    的頭像 發(fā)表于 08-07 16:07 ?3472次閱讀