Arduino で遊・学・ Go & make (4) ではシリアルモニターの使い方について述べました。今回(5)はアナログピンを入力ピンとして使う方法について述べます。内容は下記の通りです。
プログラムの内容
アナログピン(A7)に0~5Vの電圧を入力し、その電圧を Arduino に読ませ、その値をシリアルモニターに出力します。読んだ電圧が1Vより大きければLEDを点灯させます。
ハードの準備
LED のプラス足を Digital 38 にさし、マイナス足を Arduino の GND に接続します。IDEは、ボードの設定(前回と同じなら、Arduino Mega 2560)とシリアルポートをcom1 に設定します。下図のようにA7とGNDを10Ωの抵抗を介して接続します。測定する電圧はA7とGND間にかけます。
ソフトの準備
1 シリアル」モニターのセットアップ
通信速度は 9600 になっています。IDEで ツールのシリアルモニタをクリックするとシリアルモニタが表示されます。このシリアルモニターの右下に通信速度を設定するところがありますので9600を選んでください。
2 プログラムの入力
下記のプログラムをIDEに入力し、Arduino に書き込んでください。
const int referenceVolts = 5;
const int batteryPin = A7;
void setup() {
Serial.begin(9600);
pinMode(38, OUTPUT);
}
void loop() {
float val = analogRead(batteryPin);
Serial.println(val);
float volts = (val / 1023) * referenceVolts;
Serial.println(volts);
delay(100);
if (volts > 1) {
digitalWrite(38, HIGH);
delay(100);
} else
digitalWrite(38, LOW);
delay(100);
}
書き込みが終わったら、シリアルモニターを駆動してください。Ref. Volt が5Vで、これを0-1023に分解して測定しています。シリアルモニターは、この0-1023間を比例配分した値と実際の電圧を表示します。電圧が1Vを超えるとLEDが点灯するのが分かります。
チェックポイント
1 if文のなかの数値 1を他の値に変更して書き込み、電圧判定基準が変わることをチェックする。
2 if文の中の比較記号を変えて (< など)判定基準が変わることをチェックする。
3 batteryPin の値を変え、接続を変えて動くことをチェックする。
ではまた次回。
※コメント投稿者のブログIDはブログ作成者のみに通知されます