超初心者が、超初心者へ送る Arduino Uno サーミスタ(温度センサー) のレッスン!!(∩´∀`)∩ワーイ

サーミスタ(温度センサー)


概要


サーミスタ(温度センサー)を使って、シリアルモニタに
距離を表示します。

材料
Arduino Uno          x 1
ブレッドボード          x 1
サーミスタ (温度センサー)   x 1
抵抗 10 Ω   (バランス抵抗用)  x 1 
デュポンワイヤー                 x 数本

広告
  

製品説明
サーミスタは、温度に敏感で抵抗が温度とともに変化する非線形抵抗器です。 
通常、多結晶半導体でできています。一連の特別な電気的特性があります。
これらの中で最も重要なのは、その抵抗が温度によって大きく変化することです。
サーミスタは、温度感度が高く、熱慣性が小さく、寿命が長く、
サイズが小さく、構造がシンプルで、さまざまな形状と構造があります。 
それらは産業および農業生産、科学技術で広く使用されています。
温度測定、温度制御、温度補償、液体レベルの測定、圧力測定、
火災警報、気象観測、スイッチ回路保護、過負荷保護、電圧スパイク抑制、
自動ゲイン調整、レーザーおよびマイクロ波電力測定、 その他。




技術的パラメータ


アナログ信号           :出力
温度範囲     :-30℃ー+125℃
温度測定精度   :0.5°C
抵抗値      :10 Ω 
B値        :3950(±1%)
精度       :5%
動作電圧     :DC 5V



配線図



サンプルコード


/*
*   サーミスタセンサーモジュール(アナログ温度計)
*
*/


float B = 3950;                  // B定数の設定
float T0 = 298.15;             // 摂氏25度のケルビン温度
float R0 = 10000;              // 摂氏25度のサーミスタ抵抗
float R1 = 10000;              // 分圧測定のための抵抗
int TmpValue = analogRead(A0);  // アナログ0ピンから読み込み


// ———————— 最初に一度だけ実行されるコード 開始 ————————
void setup()
{
    Serial.begin(9600);                                // シリアル通信のデータ転送レートをbpsで指定。
    Serial.println("Temp sensor module");   // Temp sensor module と出力(print)して改行
}
// ———————— 最初に一度だけ実行されるコード 終了 ————————


// ———————— 繰り返し実行されるコード 開始 ————————
void loop()
{


    /* 計算 */
    int TmpValue = analogRead(A5);                           // アナログ入力0でデータ読み取り
    float vout = (float)TmpValue / 1023.0f * 5.0f;          // 分圧した出力電圧の計算
    float rth = (5.0f / vout - 1) * R1;                               // サーミスタ抵抗計算
    float tempK = 1 / (1 / B * log(rth / R0) + (1 / T0));   // 温度計算(ケルビン)
    float tempC = tempK - 273.15;                               // 摂氏に変換
    float tempF = (tempC * 9.0) / 5.0 + 32.0;               // 華氏に変換


    Serial.print("Law Value:  "); // Law Value:  と出力(print)
    Serial.println(TmpValue);       //センサーからのRawデータを出力(print)して改行
    delay(500);                            // 0.5秒待機


    Serial.print("Kelvin:  "); // Kelvin:  と出力(print)
    Serial.print(tempK);        // 計算結果のケルビンを出力(print)
    Serial.println(" K");         //  K と出力(print)して改行
    delay(500);                    // 0.5秒待機


    Serial.print("Temp:  "); // Temp:  と出力(print)
    Serial.print(tempC);       // 計算結果の摂氏を出力(print)
    Serial.println(" *C");       //  *C と出力(print)して改行
    delay(5000);                  // 5秒待機
}
// ———————— 繰り返し実行されるコード 終了 ————————

0 件のコメント :