記事

ArduinoにLCDキャラクタ・ディスプレイ・モジュールを接続する(6)A-Dコンバータの基準電圧

■超小型LCDキャラクタ・ディスプレイ・モジュールをArduinoで使う(3)A-Dコンバータの基準電圧を変更して分解能を上げる


 Arduinoのアナログ入力のA-D変換を行う際の「基準電圧」は、デフォルトの電源電圧以外に、マイコン内部にある1.1Vの基準電圧、またはArduino外部端子のVref端子に接続された電源電圧以下の基準電圧素子からの電圧を用いることができます。

基準電圧の設定
 基準電圧の設定は、次に示すようにanalogReference()命令で行います。パラメータはDEFAULT、INTERNAL、EXTERNAL のいずれかを設定します。


analogReference()
     アナログ入力の基準電圧を設定する。設定値により次のようになる。
     DEFAULTで電源電圧
     INTERNALで1.1Vの内部の基準電圧
     EXTERNALで0から電源電圧の範囲内の外部基準電圧となる

基準電圧を1.1Vにすると
 基準電圧をINTERNALの1.1Vにすると、アナログ入力で入力できる電圧の範囲は0Vから1.1Vまでとなります。アナログ入力の最小単位は次のとおりです。

     1.1V / 1024=1100mV / 1024= 1.07421mV

 基準電圧が電源電圧の場合は、次のようになります。

     5.0V / 1024=5000mV /1024=4.882mV


 基準電圧をINTERNALにして1.1Vにすると、Arduinoのアナログ入力の約4.88mVの最小単位が約1.074mVになり、より細かい電圧の変化を調べることができます。

基準電圧を1.1VにしてLM35DZの温度センサを利用する
 室温などの温度測定にLM35DZを利用する場合は、2℃から高くても熱湯の100℃の範囲で利用するとしたら、20mVから1000mVの出力です。この範囲は、基準電圧1.1Vでカバーできます。
 温度測定の分解能が、4.88mVの0.488℃から1.07mVの0.107℃と、細かな温度変化がArduinoのアナログ入力で検知できるようになります。

実際のプログラムの修正
 プログラムの修正は、setup()関数に、

   analogReference(INTERNAL);


の命令を1行追加しました。
 基準電圧が電源電圧の5Vから1.1Vに変わったので、

aindv=aind * 5000.0/1024;


を、

aindv=aind * 1100.0/1024;


に変更しました。プログラムの変更はこの2か所で、変更したプログラムの全体は次のようになります。

a02.png

 プログラム名をardlcd05020.insに変更しArduino Unoにアップロードして室温を測定した結果です。温度の変化は0.1℃くらいの刻みで変化しています。

a01a.png

 V=183.6と表示されるのは、その右側にもう一ケタ表示されるはずのものが見えないためです。各行64文字(3FH)の大きさの表示文字を書き込むためのメモリを持っています。そのうち16文字分が表示されています。1文字ごとにスクロールして順番に表示していくこともでき、そのためのArduinoの各種の関数もLiquidCrystal Libraryに用意されています。
 tmp=18.37と表示されているのは、小数点以下2桁の表示で3桁目を四捨五入して6が7になっているためです。
 次回からは、SPI、I2Cのセンサからのデータ表示を検討します。

(2016/4/17 V1.0)

<神崎康宏>

バックグラウンド

LM35DZ;室温での確度は 0.5℃です。

連載メニュー ArduinoにLCDキャラクタ・ディスプレイ・モジュールを接続する

(1)  ArduinoにLCDディスプレイを接続する準備

(2)  アナログ入力ポートのデータをLCDに表示する

(3)  LiquidCrystalライブラリを使用したテスト・プログラム

(4)  超小型LCDキャラクタ・ディスプレイ・モジュールをArduinoで使う(1)接続

(5)  超小型LCDキャラクタ・ディスプレイ・モジュールをArduinoで使う(2)測定した温度をLCDに表示する

(6)  超小型LCDキャラクタ・ディスプレイ・モジュールをArduinoで使う(3)A-Dコンバータの基準電圧を変更して分解能を上げる

(7)  超小型LCDキャラクタ・ディスプレイ・モジュールをArduinoで使う(4)SPIインターフェースのK型熱電対で温度を測定する(その1)

(8)  I2CインターフェースのLCDキャラクタ・モジュールをArduinoで使う(1)利用できる電源電圧を整理して接続(その1)

(9)  I2CインターフェースのLCDキャラクタ・モジュールをArduinoで使う(2)Wire ライブラリを使用してLCD処理の関数を作る

(10)  I2CインターフェースのLCDキャラクタ・モジュールをArduinoで使う(3)I2Cバス双方向電圧レベル変換モジュール