サーミスタNTCおよびPTCとは何ですか? NTC にさらされたことがない人向け, PTC、または NTC および PTC にさらされたばかり, 彼らはNTCとPTCが何であるかを知りません. もちろん, NTC と PTC の概念を理解するのは比較的簡単です。, しかし、情報を検索すると、紛らわしい専門用語がたくさん出てきます。, 一部のハードウェアと同様に, あなたは少し唖然としているかもしれません, 結局, あなたはそれらにさらされたことがなく、あなたの心は疑問符でいっぱいです. プロジェクトを始めたい初心者またはソフトウェア エンジニア向け, できるだけ早く予備的な理解を得ることが最善です, 基本原則を学ぶ, コードを使用して正しいデータを実行します. 結局, 学習は段階的に行われます, 一度にその原則を深く掘り下げることはできません.
1. サーミスタNTCおよびPTCとは何ですか?
NTC と PTC は両方ともサーミスターです, 温度によって抵抗値が変化する特殊な抵抗器です. 一種のセンサーとも言えます.
NTC と PTC は両方ともサーミスタのタイプです, 温度に敏感な抵抗器です, ここで、NTC は “負の温度係数” つまり、温度が上昇すると抵抗が減少します, 一方、PTC は “正の温度係数” つまり、温度が上昇すると抵抗が増加します; 本質的に, NTC サーミスタは温度検知に一般的に使用されます, 一方、PTC サーミスタは、自己リセットする過電流機能により、回路保護によく使用されます。.
違いは、NTC が負の温度係数サーミスタであることです。, PTC は正温度係数サーミスタです.
正温度係数サーミスタ (PTC): 温度が上昇すると抵抗値が増加します;
負温度係数サーミスタ (NTC): 温度が上昇すると抵抗値が減少します;
ii. NTCとPTCの応用
1. NTCの応用例:
温度検出に使用, 一般的に温度測定タイプのNTC
サージ抑制に使用, 一般的にパワータイプのNTCNTCサーミスタ:
温度が上昇すると抵抗が減少します.
温度測定に広く使用されています.
回路内の突入電流リミッタとして使用可能.
2. PTC の用途には次のものがあります。:
保護回路内, 過熱保護など, 過電流保護
始動回路内
温度が上昇すると抵抗が増加します.
回路を過電流状況から保護するための自己リセットヒューズとしてよく使用されます。.
特定の用途では自己調整発熱体として機能可能.
Ⅲ. B値
B値: 物質一定, 動作温度範囲内での温度変化に対するNTCの抵抗値の振幅を示すパラメータ, これは材料の組成と焼結プロセスに関係します。. B 値は通常数値です (3435K, 3950K).
B値が大きいほど, 温度が上昇すると抵抗値はより速く減少します, B値が小さいほど, その逆は真実です.
この記事ではB値は使用しません, しかし、理解のために. 温度係数B値算出方法でも温度を算出できます, ケルビン温度アルゴリズムとも呼ばれます.
4. R25
R25: NTC本体の25℃における抵抗値.
5. 原理分析
NTCを例に挙げます, 一般的な概略図は次のとおりです:
原理分析:
ADC機能を使用して電圧を収集します.
R1とR2は直列回路です. 直列抵抗の分圧式によると, 我々は持っています:
R=R1+R2;
I=U/R=U/より(R1+R2), それから:
U1=IR1=U(R1/(R1+R2))
U2=IR2=U(R2/(R1+R2))
U2=IR2=Uを使用します(R2/(R1+R2)) それで終わりです.
ADCによって収集されたデータは電圧に変換されます, これはU2の電圧です, それで
U(R2/(R1+R2))=ADC/1024*U
ここ 1024 私が使用しているマイクロコントローラーの ADC の 10 ビット分解能です, あれは, 1024
ここで、U=3.3v であることがわかります。, 図では VCC です, R1の値は10kです, R2はNTCです, そのため、その価値は今のところ不明です. Uはオフセット可能.
最終的な式は: R2=ADC*R1/1024-ADC
つまり, R2=ADC*10000/1024-ADC
R2の抵抗値を求めたら, 抵抗表と比較することで温度を取得できます. 抵抗比較表は通常、購入後に販売者によって提供されます。.
次, コードに行きましょう. ここ, NTCテーブルルックアップ方式を使用して温度を変換します. ADC 値を追加するだけでこのコードを使用できます.
const unsigned int temp_tab[]={
119520,113300,107450,101930,96730,91830,87210,82850,78730,74850,//-30 に -21,
71180,67710,64430,61330,58400,55620,53000,50510,48160,45930,//-20 に -11,
43810,41810,39910,38110,36400,34770,33230,31770,30380, 29050,//-10 に -1,
27800,26600,25460,24380,23350,22370,21440,20550,19700,18900,18130,//0-10,
17390,16690,16020,15390,14780,14200,13640,13110,12610,12120,//11-20,
11660,11220,10790,10390,10000,9630,9270,8930,8610,8300, //21-30, 8000,7710,7430,7170,6920,6670,6440,6220,6000,5800,//31-40, 5600,5410,5230,5050,4880,4720,4570,4420,4270,4130,//49-50, 4000,3870,3750,3630,3510,3400,3300,3190,3090,3000,//51-60, 2910,2820,2730,2650,2570,24 90,2420,2350,2280,2210,//61-70, 2150,2090,2030,1970,1910,1860,1800,1750,1700,1660,//71-80, 1610,1570,1520,1480,1440,1400,1370,1330,1290,1260,//81-90 1230,1190,1160,1130,1100,1070,1050,1020,990,//91-99, };
ショートADC; // NTCのADC値を取得する
ショート NTC_R; // NTC抵抗値
#R1 を定義する 10000
void get_temp()
{
短い温度;
短いcnt;
ADC= adc_get_value(ADC_CH_0); // ADC値を取得する
printf(“———–ADC:%d \n\n”,ADC);
NTC_R=ADC*R1/(1024-ADC);
cnt = 0;
温度 = -30;
する{
もし(temp_tab[cnt] < NTC_R){ // テーブルの値が計算された抵抗値より小さい, 温度を測るために出てください
壊す;
}
++温度;
}その間(++cnt < サイズの(temp_tab)/4); // ループテーブルのサイズ, あれは, 回数
printf(“NTC_R:%温度:%d \n\n”,NTC_R,温度);
}
English
Afrikaans
العربية
বাংলা
bosanski jezik
Български
Català
粤语
中文(简体)
中文(漢字)
Hrvatski
Čeština
Nederlands
Eesti keel
Suomi
Français
Deutsch
Ελληνικά
हिन्दी; हिंदी
Magyar
Bahasa Indonesia
Italiano
日本語
한국어
Latviešu valoda
Lietuvių kalba
македонски јазик
Bahasa Melayu
Norsk
پارسی
Polski
Português
Română
Русский
Cрпски језик
Slovenčina
Slovenščina
Español
Svenska
ภาษาไทย
Türkçe
Українська
اردو
Tiếng Việt



