(テキサス・インスツルメンツ)に吸収されたNS(ナショナルセミコンダクター)が開発販売していた使いやすい温度センサです。現在、TIから供給されています。このセンサは温度の変化に対して10mV/1°C感度で、0°Cの出力が0Vを原点とする線形の出力が得られます。そのため、センサから読み取った電圧値が小数点の移動だけで温度の値になります。●プラス電源だけでは2°Cから150°Cまで電源がプラス電源だけの場合は、2°Cから150°Cまでの範囲が測定範囲です。2°Cのとき20mVの出力150°Cの時は1500mVの出力となります。マイナス2Vくらいの電源があると-50°Cまでの氷点下の温度も測定できます。●LM35DZをブレッドボードにセットLM35DZを次に示すようにブレッドボードにセットし、LM35DZのVoutとArduinoのA1端子を接続します。+Vはブレッドボードの5Vに、GNDはブレッドボードのマイナス電源(GND)に接続してLM35DZのセットは完了です。●Arduinoのアナログ入力でセンサの出力を読み取るLM35DZの出力は、仕様上は-500mVから1500mVの範囲の電圧です。今回はマイナス電源を用意していないので20mVから1500mVの電圧となります。この出力電圧を、Arduinoのアナログ入力ポートA1で受け取ります。センサとアナログ入力ポートA1との接続は、次に示すように黄色のジャンパ線で行いました。●入力値をLCDモジュールに表示するArduinoのアナログ入力ポートは入力電圧を、基準電圧の1/1024の電圧でディジタル化します。LCDキャラクタ・モジュールには次の値を変数名の見出しと共に表示します。tmp●テスト・プログラムテスト・プログラムは次のようになります。最初にライブラリLiquidCrystalを利用するためのヘッダ・ファイルの読み込み、LiquidCrystal型の変数(オブジェクト)lcdの定義とピンの割り当てを行います。その後、変数の定義を行い実際の関数を記述するための準備を行います。setup()setup()関数では、今回はlcd.begin(16,2)の表示範囲を設定する処理だけです。アナログ入力処理は初期化の処理は必要ありません。LCDモジュールとの処理のためのディジタル・ポートの初期化は、LiquidCrystalライブラリの中で行っています。loop()メインの処理は、最初にアナログ入力ポートA1からセンサの出力をaindに読み取ります。aindは整数ですが5000.0は実数なので、計算結果は小数点以下の値も格納できる実数のfloat型の演算を行います。◆温度の算出mV単位のセンサの出力電圧を1/10にすれば、摂氏の温度の値になります。◆LCDモジュールへの出力LCDモジュールへの出力は、lcd.home()関数で表示をクリアして次の表示位置を上段の左端にセットします。次はlcd.print()関数で見出しと変数を表示し、lcd.setCursor()で次の表示位置を指定して三つの変数を表示します。その後500msの時間を待ちします。以上を繰り返し次のように表示します。次回、センサのアナログ入力時に必要となる基準電圧について、ほかの方法も検討します。V1.0)<神崎康宏>バックグラウンド基準電圧の1/1024;ArduinoUNOは10ビットの分解能をもつA-Dコンバータが搭載されています。2^10=1024です。基準電圧は、GNDの0Vと電源電圧の5Vを指定しています。int型;読み取ったデータは整数です。float型;小数点を含む数値は実数を使います。ヘッダ・ファイル;プログラムにライブラリなどを利用するときに記述するのがヘッダ・ファイルです。この中身もテキストなので、自分で読むことができます。Unoのデフォルトは電源電圧が指定されます。5Vといっても、少しの誤差があります。マイコンATMega328の内部には1.1Vの基準電圧があります。正確を期する場合は、AREFピンに変動のとても少ない安定した電圧を加えて基準電圧として利用します。ライセンスで提供されています。