電子工作初心者がIoT挑戦!温度センサーLM35DZ
3回目はAruduinoに温度センサー繋いで計測します。
何故温度?それは工作する回路が簡単だから。
ちなみにAruduinoボードの購入は、お得感があるセンサーセットにしました。
下記です。
http://www.amazon.co.jp/dp/B00UKXHKXC
この商品の注意書きに「説明書は付属しませんので、「Arduinoをはじめよう」もご購入されることをお勧めします。」とあります。
本は困ったら購入するとして、まずはブロガーの皆様の記事を参考に始めます。
このセット商品に、温度センサーが1個あり。
センサーはLM35DZ。
Amazonで調べると162円のセンサーでした。安い。
では、このセンサーの使い方がわからないのでグーグル先生に確認。
yadoranさんの記事が詳しかったので参考にさせて頂きました。
ありがたや。
Arduinoの5V出力とアナログ入力にセンサーを直結します。
シンプル。
プログラムは、まず何の信号(数値が)何が戻ってくるか確認。
// ***********************************
// 温度センサーテスト LM35DZ
// ***********************************
// 宣言
float fin = 0; // アナログ入力値(0〜203)
// 初期化
void setup() {
Serial.begin(9600); // シリアル通信速度
}
// メイン処理
void loop() {
// アナログ0から値取得(0〜203)
fin = analogRead(0);
// 改行しながら出力
Serial.println( fin );
// 1秒待機
delay(1000);
}
結果、何か数字が戻ってくるけど温度じゃないよ。
これを温度変換。
// *********************************** // 温度センサーテスト LM35DZ // *********************************** // 宣言 float fin = 0; // アナログ入力値(0〜203) float ftemp = 0; // 摂氏値( ℃ ) // 初期化 void setup() { Serial.begin(9600); // シリアル通信速度 } // メイン処理 void loop() { // アナログ0から値取得(0〜203) fin = analogRead(0); // 入力値を摂氏に換算 ftemp = ((5 * fin) / 1024) * 100; // 改行しながら出力 Serial.println( ftemp ); // 1秒待機 delay(1000); }
結果、0.00って何?不安定ですね。
室温が25度で実行したから、合っている数値もあります。
なんだ、この不安定、センサーが安いから?
こんな時はブロガーの先輩たちの記事を探しましょう。
SIESTAさんのページに詳しく理由が書いてありました。
AVR(Arduino)にLM35をつなげた場合に正しくA/D変換出来ないトラブル
このサイト、萌えイラストと電子工作記事、不思議な感じです。
いや、これぞ秋葉原、そんなサイトです。
勉強になります、ありがとうございます。
説明1の抵抗を付けるを試してみた。
抵抗はセンサーセットに同梱の物。
回路を変更したら0.00は無くなりました。
接触悪かったのか?
下記、抵抗を付ける前の結果。
下記、抵抗ありの結果。
大して変わらない、違う理由みたい。
手順2にコンデンサーを付けるとあり。
コンデンサーを調達して回路を作成、実験したが改善せず。
何かが変です・・・
センサー変えてみよう。
この話は暫く凍結。(Amazonでセンサー注文します)
簡単な温度計測と思ったら大間違いでした。
奥深いですね。
以上
[追記]
同じ温度センサーを162円で購入(安)。
但し送料が150円、支出合計は312円です。
そして交換結果は正常な温度を表示。
満足。