amnjackのNewWeblog

電子工作中心に雑多なカテゴリー構成ですが,興味のあるジャンルがありましたらご覧ください。

お勉強の続き Arduino

2011年06月26日 | electro_craft
CQ出版の「Arduinoでちょっと未来を作る」に温度センサーLM35DZを使用したLCD表示の温度計の記事があったので,試してみた。
LM35DZは,1℃が10.0mVで比較的簡単に換算できるデバイスのようだ。
配線は単純そのもの。

動作電圧はデータシートでは,4~20Vとなっていますが,3.3Vでも動きます
あとで師匠たちに教えていただきたいので,動作成功したスケッチも掲げておく。本のままではエラーがたくさん出たのだ。


*********************************
#include<LiquidCrystal.h>

/*LM35DZ 温度計 20110626
アナログデータ温度センサーの値を読み取る。
読み取った値から電圧を求め,温度に換算してLCDモジュールに書き出す。
*/

LiquidCrystal LCD(10,9,8,7,6,5,4);
int ANIN=1; //温度センサ入力用のアナログポート用のアドレス
int indata=0; //
float temp=0;
int wr_data=48;
char wr_da2='A';

void setup() //初期化処理
{
pinMode(11,OUTPUT);
LCD.begin(2,16);
}

void loop() //メイン処理部分
{
indata = analogRead(ANIN); //温度センサの出力を読み取る
temp=5.000*indata/1024*100; // 基準電圧5Vを実数表示(float)の5.000と表示し
//浮動小数点演算を行う。基準電圧×センサ入力(Indata)/1024でVの
//単位で表示される。1℃/0.01Vを100倍して℃表示にする
digitalWrite(11,HIGH); //
LCD.clear(); //またはLCD162.home()を使用。以前の文字が残る時はclear
LCD.print(" indata="); //表示
LCD.print( indata); //
LCD.setCursor(0,1); //
LCD.print(" temp="); //表示
LCD.print( temp); //
LCD.print(" w="); //次のWriteの例の見出し 表示
LCD.write(wr_data); //dataを1バイト分書き出す
LCD.write(' '); //キャラクタースペースを出力
LCD.write(wr_da2); //1文字データを出力
delay(500); //0.5secのウェイト
wr_data++; //++はインクリメントを示し,変数wr_dataを+1する
wr_da2=wr_da2+1; //上記の++はこの式と同じインクリメントを示す
digitalWrite(11,LOW);
delay(500);
}
***********************************

長くてすみません。
Arduinoへの配線は黄色いところ。まずどこが動作しなかったかというと,LCDを認識させるのに,textでは <LCD162.・・・・・・>となっていたのだが,コンパイルするとみなエラー。そこで,昨日の<hello world>同様に,<LCD>だけとした。ヴァージョンアップの影響か?でも,このtext意外とミスプリが多い気がする。
それから数字が5.0000と5.000と二つ出てきたが,これは小数点以下のことだからどっちでもよかった。
あとは,まだ訳が分かっていないが,大文字と小文字の表記の原則について,これから勉強。

RWを昨日は,GNDとしたが,今日はpin9。
スペリングの間違いも結構あったし,つい「;」をつけるのを忘れる。

それから,ここが未解決なんだけれど,
LCD.print(" w="); //
LCD.write(wr_data); //
LCD.write(' '); //
LCD.write(wr_da2); //
の「" w="」は固定文字表示と分かったが,不要な「W=● ●」と出てしまう。ここの書き方がいまいち分からない。書かなくていいのなら書かなくてもいいか?・・・と思い,削除したら。もちろん,消える。ということは,どんな意味がこのスケッチにあるのか?

こんなところかな。
まあ,一応,スケッチをまねして書いて動作試験は成功でした。

arduinoの結線の様子。pinコードは電話線の単線コード

センサー部分。LEDは動作確認用。

pinコードは長めに作っておいて正解でした。

私にはこの<w=・・・>は余分だと思うが,どうして入れているのか分からない。

消してしまえばこの通り,すっきりするが・・・
コメント (1)    この記事についてブログを書く
« LCD動作確認 | トップ | UNOいじりちょっとだけ »
最新の画像もっと見る

1 コメント

コメント日が  古い順  |   新しい順
Unknown (AMN_JACK)
2011-06-27 14:14:34
後半の「いらないのではないか」はやはり学習用のスケッチのようです。消して使えばいいわけですね。
それから。初期化の段階でLCD()とすればすべてLCDで統一。LCD162とすればそれで統一ということで,コンパイルしてみてOKでした。ミスは別のところにあったようで・・・恥ずかしい・・・・orz
返信する

コメントを投稿

electro_craft」カテゴリの最新記事