今回はGroveモジュールのポテンショメータをArduinoで使ってみます。ポテンショメータはいわゆる可変抵抗で、スライダーの位置によって抵抗値が変化します。その変化に応じて変わる電圧値をマイコンで測定するわけですが、電圧値の測定にはアナログ入力であるADコンバーターを使います。ADコンバーターはマイコンを使った電子工作でよく使うものなので、初心者の人には参考になるかと思います。今回は、ADコンバーターで測定した値をLCDに表示してみます。

サンプルプログラム

今回、書き込むプログラムはこちら。ポテンショメータの値を読み取って、その値をLCDに表示するプログラムです。ArduinoのADコンバーターは10ビットなので、計測される値の範囲は0~1023(210-1)になります。

Groveシールドには4つのADコンバーター(A0, A1, A2, A3)がありますが、今回はA2ポートに接続しました。

実際に動かした映像はこちら。

プログラムの簡単な説明

Grove LCDを使用するので「Wireライブラリ」と「rgb_lcdライブラリ」を使用します。詳しくは以前の投稿を参照してください。

Grove LCDのオブジェクト(slcd)を作成したあと、アナログ入力のピン(int adcPin = A2)の定義と、読み取ったアナログ値を保存する変数(int adcIn)の宣言をしています。

初期化関数setup()ではGrove LCDを使うための処理をしています。これも以前の投稿を参考にしてください。

ループ関数loop()では、LCDをクリアした後、1行目に「The value: 」と表示しています。その後、アナログ入力値を読み取ったあと、その値をLCDの2行目に表示しています。最後に500ms待ち時間を設けています。

さいごに

今回、ポテンショメータを使ったADコンバーターの使い方の説明でした。誰かのお役に立てば幸いです。