.. note:: こんにちは、SunFounderのRaspberry Pi & Arduino & ESP32愛好家コミュニティへようこそ!Facebook上でRaspberry Pi、Arduino、ESP32についてもっと深く掘り下げ、他の愛好家と交流しましょう。 **参加する理由は?** - **エキスパートサポート**:コミュニティやチームの助けを借りて、販売後の問題や技術的な課題を解決します。 - **学び&共有**:ヒントやチュートリアルを交換してスキルを向上させましょう。 - **独占的なプレビュー**:新製品の発表や先行プレビューに早期アクセスしましょう。 - **特別割引**:最新製品の独占割引をお楽しみください。 - **祭りのプロモーションとギフト**:ギフトや祝日のプロモーションに参加しましょう。 👉 私たちと一緒に探索し、創造する準備はできていますか?[|link_sf_facebook|]をクリックして今すぐ参加しましょう! .. _ar_temp: 2.13 - 温度計 =========================== 温度計は、温度または温度勾配(物体の温度または冷度の程度)を測定する装置です。 温度計には、2つの重要な要素があります:(1)温度に変化が生じる何らかの変化が起こる温度センサー(例:水銀温度計の球根や赤外線温度計の焦電センサー); そして(2)この変化を数値で表示する手段(例:水銀温度計にマークされた可視スケールや赤外線モデルのデジタル表示)。 温度計は、テクノロジーと産業でプロセスを監視するため、気象学、医学、科学研究で広く使用されています。 サーミスターは、温度に強く依存する抵抗を持つ温度センサーの一種で、2つのタイプがあります: 負の温度係数(NTC)と正の温度係数(PTC)とも呼ばれ、NTCとPTCです。 PTCサーミスターの抵抗は温度とともに増加し、NTCの状態はそれに反対です。 この実験では、 **NTCサーミスター** を使用して温度計を作成します。 * :ref:`cpn_thermistor` **必要なコンポーネント** このプロジェクトには、以下のコンポーネントが必要です。 全体のキットを購入するのが便利です。リンクはこちら: .. list-table:: :widths: 20 20 20 :header-rows: 1 * - 名前 - このキットに含まれるアイテム - 購入リンク * - ケプラーキット - 450+ - |link_kepler_kit| 以下のリンクから個別に購入することもできます。 .. list-table:: :widths: 5 20 5 20 :header-rows: 1 * - SN - コンポーネント紹介 - 数量 - 購入リンク * - 1 - :ref:`cpn_pico_w` - 1 - |link_picow_buy| * - 2 - マイクロUSBケーブル - 1 - * - 3 - :ref:`cpn_breadboard` - 1 - |link_breadboard_buy| * - 4 - :ref:`cpn_wire` - 数本 - |link_wires_buy| * - 5 - :ref:`cpn_resistor` - 1(10KΩ) - |link_resistor_buy| * - 6 - :ref:`cpn_thermistor` - 1 - |link_thermistor_buy| **回路図** |sch_temp| この回路では、10KΩ抵抗とサーミスタが直列に接続されており、それらを流れる電流は同じです。10KΩ抵抗は保護として機能し、GP28はサーミスタの電圧変換後の値を読み取ります。 温度が上昇すると、NTCサーミスタの抵抗値が減少し、それに伴い電圧も低下するため、GP28の値も減少します。温度が十分に高くなると、サーミスタの抵抗はほぼ0に近づき、GP28の値もほぼ0に近づきます。この時、10KΩ抵抗が保護の役割を果たし、3.3VとGNDが直接接続されて短絡するのを防ぎます。 温度が下がると、GP28の値は増加します。温度が十分に低くなると、サーミスタの抵抗は無限大に近づき、その電圧は3.3Vに近くなります(10KΩ抵抗は無視できる)。この時、GP28の値は最大値である1023に近づきます。 計算式は以下の通りです。 .. code-block:: デジタル値 = (アナログ電圧 / 3.3V) * 1023 **配線** |wiring_temp| .. note:: * サーミスタは黒く、103と表示されています。 * 10KΩ抵抗の色リングは赤、黒、黒、赤、茶色です。 **コード** .. note:: * ファイル ``2.13_thermometer.ino`` を ``kepler-kit-main/arduino/2.13_thermometer`` パスから開くことができます。 * または、このコードを **Arduino IDE** にコピーしてください。 * ボード(Raspberry Pi Pico)と正確なポートを選択した後、 **アップロード** ボタンをクリックすることを忘れないでください。 .. raw:: html プログラムが実行されると、シリアルモニターに摂氏と華氏の温度が表示されます。 **動作原理** 各サーミスタには基準となる抵抗があります。 この場合、それは10kΩで、25度摂氏で測定されます。 温度が上がると、サーミスタの抵抗が減少します。 その後、A/Dアダプターによって電圧データがデジタル量に変換されます。 プログラミングにより、摂氏または華氏での温度が出力されます。 .. code-block:: arduino long a = analogRead(analogPin); この行は、サーミスタの値を読むために使用されます。 .. code-block:: arduino float tempC = beta / (log((1025.0 * 10 / a - 10) / 10) + beta / 298.0) - 273.0; float tempF = 1.8 * tempC + 32.0; これらの計算は、サーミスタの値を摂氏度と華氏度に変換します。 .. note:: ここでは、抵抗と温度の関係は以下の通りです: **RT = RN expB(1/TK – 1/TN)** * RTは、温度がTKのときのNTCサーミスタの抵抗です。 * RNは、評価温度TNでのNTCサーミスタの抵抗です。この場合、RNの数値は10kです。 * TKはケルビン温度で、単位はKです。この場合、TKの数値は273.15 + 摂氏度です。 * TNは評価ケルビン温度で、単位もKです。この場合、TNの数値は273.15+25です。 * そしてB(ベータ)は、NTCサーミスタの材料定数であり、熱感度指数とも呼ばれ、数値は3950です。 * expは指数関数の略であり、基数eは自然数で、おおよそ2.7と等しいです。 この関係式は、経験式です。温度と抵抗が有効範囲内の場合にのみ正確です。 このコードは、ケルビン温度を得るために、式TK=1/(ln(RT/RN)/B+1/TN)にRtを代入します。