用arduino和熱敏電阻做電子體溫計
阿新 • • 發佈:2019-02-15
因此又買了專門測體溫的熱敏電阻,某寶上有,型號是MEB-503E-3950 具體引數的解釋可以參考這篇文章: http://blog.sina.com.cn/s/blog_6182b82201012ii1.html 熱敏電阻計算公式 Rt = R *EXP(B*(1/T1-1/T2)) 對上式解釋如下: (具體可以參考百度,很多的)
1. Rt 是熱敏電阻在T1溫度下的阻值;
2. R是熱敏電阻在T2常溫下的標稱阻值;
3. B值是熱敏電阻的重要引數;
4. EXP是e的n次方;
5. 這裡T1和T2指的是K度即開爾文溫度,K度=273.15(絕對溫度)+攝氏度;
例如我手頭有一個 MF58502F327型號的熱敏電阻
MF58—— 型號玻璃封裝
502 —— 常溫25度的標稱阻值為5K
F —— 允許偏差為±1%
327 —— B值為3270K的NTC熱敏電阻
而我買的型號是MEB-503E-3950,因此它的
常溫下阻值R1=50*10^3=50k歐;
常溫T12=273.15+25=298.15;
引數B=3950;
這時候代入T1溫度就可以求出相應溫度下熱敏電阻的阻值,注意溫度單位的轉換,攝氏度與開爾文。
至於熱敏電阻的用法,其實就是串聯一個阻值和它差不多(最好)的電阻,從而通過分壓比確定熱敏電阻的阻值,從而確定測量溫度(詳情可百度,很多的),下面只給出電路和程式碼: 我是用的arduino UNO程式碼如下:
/* * 熱敏電阻的型號是MEB-503E-3950 * 常溫25攝氏度(298.15K)下阻值為50k歐 */ #include<math.h> const float voltagePower=3.3; const float Rs=21.5;//取樣電阻為21.5千歐 const int B=3950; const double T1=273.15+25;//常溫 const double R1=50;//常溫對應的阻值,注意單位是千歐 void setup() { Serial.begin(9600); } void loop() { //獲得A1處的電壓值 double digitalValue=analogRead(1); double voltageValue=(digitalValue/1023)*5; Serial.print("Current voltage value="); Serial.println(voltageValue); //通過分壓比獲得熱敏電阻的阻值 double Rt=((voltagePower-voltageValue)*Rs)/voltageValue; Serial.print("Current registor value="); Serial.println(Rt); //換算得到溫度值 Serial.print("Current temperature value="); Serial.println(((T1*B)/(B+T1*log(Rt/R1)))-273.15);// Serial.println(); //每3秒輸出,更改此處修改頻率 delay(3000); }
可看到輸出如下