重い腰を上げて8周遅れのArduino2(Analog入力)
前回環境を構築したArduinoUNOのアナログ入力、シリアルモニタ・プロッタを使ってみる。
アナログ入力をUSB経由でPC画面出力
サンプルプログラムを起動
アナログ入力をUSB経由でPCに入力して画面に出力するサンプルプログラムを実行する。 まず、ArduinoIDEを起動して
ファイル➡スケッチ例➡01.Basic➡AnalogReadSerial をクリック(下画面)
AnalogReadSerialを起動したら下の様な画面が起動する。
上部のコメントアウトには下のような内容が書かれてる。(だいぶ意訳)
Pin0のアナログ入力を読んで結果を出力するシリアルモニター。
グラフィカルに表示した場合はシリアルプロッターを使って(ツール>シリアルプロッタ)。
ポテンショメータの真ん中のピンをA0に接続して、外側のピンを+5VとGNDにそれぞれ接続して。
説明は下のURL
ポテンショメータの配線
コメントアウトにはポテンショメータの接続方法まで書かれているが、私が持っていた多回転ポテンショメータは抵抗値が100Ωで直接接続したくなかったので下の回路図のように配線した。こうすることでポテンショメータに流れる電流を下げることができ、線形性も向上する。因みに回路設計でポテンショメータ、半固定抵抗も下の回路図のほうが望ましい。それは、ポテンショメータの抵抗被膜が擦れて導通が不安定になったときVCC側に張り付くからだ。そのためポテンショメータの配置をGND側かVCC側か決めるときはシステムとして安全な方を考えて配置したほうが良い。
実際に配線した様子が下の写真だ。
実行とシリアルモニタの起動
配線作業が終了したら、スケッチを実行してシリアルモニタを起動する。 シリアルモニタはArduinoからUSB経由で送られてきた文字データを出力するソフトでセンサ入力やデバッグ中に役に立ちそう。
ツール➡シリアルモニタ をクリック(下画面)
今回はプログラム上の”Serial.println(sensorValue)”という箇所で送信処理をしている。sensorValueは”sensorValue = analogRead(A0)”でA0のアナログデータが代入されているので結果としてシリアルモニタにはA0のアナログ入力が出力される。 ArduinoUNOには10bitADCが搭載されているので、このアナログ入力は0~1024の値範囲をとる。
シリアルモニタを使ってみた動画
シリアルプロッタを使ってみる
次にコメントアウトで紹介されていたシリアルプロッタを使用してみる。シリアルモニタと同様に起動する。
ツール➡シリアルプロッタ をクリック(下画面)
起動するとアナログ入力の値がリアルタイムでグラフ化される。表示は縦軸にアナログ入力の値、横軸は時間で右から左に波形が流れていく。
シリアルプロッタの動画
今回はArduinoUNOのアナログ入力の方法とシリアル出力、シリアルモニタ・プロッタの機能を確認できた。これらは開発初期段階のデバッグやデバイスとの通信確認に使えそうだ。