LM75A温度センサー用のArduinoコード

LM75A温度センサー用のArduinoコード

このチュートリアルでは、LM75A 温度センサーを Arduino と組み合わせて使用し、摂氏と華氏の両方で温度を測定する方法を学びます。LM75A センサーは I2C プロトコルで通信するため、Arduino ボードへの統合が容易です。このチュートリアルの終わりには、1秒ごとに温度の読み取りを表示する動作するセットアップが完成します。

このチュートリアルを最大限に活用するには、セットアップとコード実装について視覚的なガイダンスを提供する関連ビデオ(20:29の箇所)を見ることをおすすめします。

ハードウェア解説

LM75A温度センサーは、高精度で周囲温度を測定できるデジタルセンサーです。I2C通信プロトコルで動作し、複数のセンサーを同じバスに接続できます。このセンサーは過温度シャットダウン機能を備えており、使用していないときの電力節約に役立ちます。

このセンサーは通常、単体のチップとして、あるいはPCBモジュールとして入手できます。モジュールにはArduinoとの通信に必要なVCC、GND、SDA、SCLといった必須ピンが含まれています。センサーを使用する際は、接続を適切に行い、通信のために正しいI2Cアドレスを選択することが重要です。

データシートの詳細

製造元エヌエックスピー / テキサス・インスツルメンツ
部品番号LM75A
ロジック/IO電圧2.7 V から 5.5 V
供給電圧2.7 V から 5.5 V
出力電流(チャンネルごと)3 mA
ピーク電流(チャンネルあたり)10 mA
PWM周波数に関するガイダンス該当なし
入力ロジックのしきい値0.3 VCC(ハイ)、0.2 VCC(ロー)
電圧降下 / RDS(オン)/ 彩度最大0.5 V
熱限界-55°Cから+125°Cまで
パッケージSOIC-8 / TSSOP
注記/バリエーション異なるI2Cアドレスで利用可能

  • コード内で正しいI2Cアドレスが設定されていることを確認してください。
  • 必要に応じてSDAおよびSCLラインにプルアップ抵抗を使用してください。
  • 安定した電圧(2.7 V〜5.5 V)でセンサーに電源を供給してください。
  • 過熱を監視してください。センサーは最大125 °Cまで動作します。
  • 取り付け時は損傷を避けるため、センサーを丁寧に取り扱ってください。

配線手順

Arduino_wiring_LM75A_bb

LM75A温度センサをArduinoに配線するには、まずセンサのGNDピンをArduinoのGNDピンに接続します。次に、センサのVCCピンをArduinoの5Vピンに接続します。I2C通信のために、センサのSDAピン(通常は緑色で表示されています)をArduinoのA4ピンに、SCLピン(通常は青色で表示されています)をA5ピンに接続します。別のArduinoモデルを使用している場合は、正しいI2Cピンに接続していることを確認してください。例えば、Arduino MegaではSDAがピン20、SCLがピン21に接続されます。

LM75A をモジュールではなく裸のチップとして使用する場合は、対応するピンを正しく接続してください: 1番ピンは A4 (SDA) に、2番ピンは A5 (SCL) に、4番ピンはグラウンド (GND) に、8番ピンは VCC に接続します。他のピンは未接続のままにしてください。この接続によりセンサーが Arduino と正しく通信できるようになります。

コード例とウォークスルー

以下のコードはLM75Aセンサーを初期化し、1秒ごとに温度を読み取ります。このコードにおける重要な識別子はlm75a_sensor、これはLM75Aクラスのインスタンスです。このインスタンスはセンサーから温度を取得するために使用されます。

LM75A lm75a_sensor(false, false, false);

この行はLM75Aクラスのインスタンスを作成し、A0、A1、A2ピンの状態を表すパラメータを渡します。デフォルトの状態は次のように設定できます。falseこれらのピンが使用されない場合。

〜の中でsetup()この関数では、シリアル通信を9600ボーレートで初期化します。これはシリアルモニタに温度の読み取り値を表示するために重要です。

void setup(void) {
  Serial.begin(9600);
  Serial.println("Robojax LM75A Test");
}

このスニペットはシリアルモニタを設定し、温度の測定値が毎秒出力されるたびにそれを表示できるようにします。

その中でloop()関数では、摂氏(°C)で温度を取得し、エラーがないかを確認します。温度が有効な場合は、華氏(°F)の相当値とともにそれを表示します。

float temperature_in_degrees = lm75a_sensor.getTemperatureInDegrees();
if (temperature_in_degrees == INVALID_LM75A_TEMPERATURE) {
  Serial.println("Error while getting temperature");
} else {
  Serial.print("Temperature: ");
  Serial.print(temperature_in_degrees);
  Serial.print(" degrees (");
  Serial.print(LM75A::degreesToFahrenheit(temperature_in_degrees));
  Serial.println(" Fahrenheit)");
}

このコード断片は、温度の読み取りをどのように処理し、摂氏と華氏の両方でシリアルモニタに表示するかを示しています。無効な読み取りに対するエラー処理も含まれています。

完全なコードは、記事の下にある読み込みセクションを確認してください。

デモンストレーション/期待できること

配線を完了しコードをArduinoにアップロードすると、シリアルモニタに温度の読み取り値が1秒ごとに表示されるはずです。センサーの応答性は、センサーに触れたりヒートガンを使ったりしてテストでき、読み取り値がそれに応じて変化するのが確認できるはずです。センサーを接続する際は極性の逆転に注意してください。逆接続するとモジュールが破損する恐れがあります。

画像

LM75a-1
LM75a-1
LM75a-3
LM75a-3
LM75a-12
LM75a-12
Arduino_wiring_LM75A_bb
Arduino_wiring_LM75A_bb
127-Arduino code for an LM75A temperature sensor
言語: C++
コピーしました!

リソースと参考文献

まだリソースはありません。

ファイル📁

フリッツィングファイル