ArduinoでAD変換!分解能10bitで電圧測定してみた

ラズベリーパイ(raspberry pi)

Arduino Unoのアナログ入力を使用してAD変換してみました。

分解能は10bitですが趣味の電圧測定には十分使用できるレベルです。

Arduinoとの接続方法からプログラムまで分かりやすく紹介します。

 

スポンサーリンク

ArduinoでAD変換!分解能10bitで電圧測定してみた

Arduinoのアナログ入力に可変抵抗を接続してAD変換してみました。

 

分解能10bitですが、電圧測定できていることをテスター含めて確認しました。

「テスターでの測定」と「AD変換」の値が大体同じになっています。

 

Arduinoとの配線からプログラムの動かし方まで紹介していきます。

簡単なプログラムでAD変換値と電圧値の取得が可能です。

 

下記の動画だとテスターとAD変換の動きが分かりやすいので是非ご覧ください。

電圧値をしっかり読み取れていることが分かります。

Arduinoのアナログ入力の分解能10bitで電圧測定

 

Arduinoにはアナログ入力がある

Arduinoの特徴の一つとしてアナログ入力があり、Arduino UnoはA0~A5まで6chあります。

アナログ入力からAD変換して電圧値が読み取ることが可能です。

 

ラズベリーパイだとアナログ入力が無いため、AD変換は外付けのデバイスが必要です。

 

下記記事ではラズパイにUSBのAD変換ボードを接続する例を紹介しています。(リンク先はこちら)

ラズベリーパイでデータロガー!電圧測定してグラフにしてみた
ラズベリーパイでデータロガーを格安で自作してみました。 USBで簡単に接続でき、10チャンネル分のアナログ電圧入力を測定可能です。 Pythonでデータ取得してリアルタイムでプロットするまでを一から紹介します。

 

ArduinoのAD変換の分解能は10bit

Arduinoには多くの種類がありますが、一番メジャーなArduino Unoの分解能は「10bit」です。

筆者はArduino Uno互換品を2種類所持していますが、もちろん両方とも10bitです。

Arduino Dueなど分解能が12bitの製品もありますが、今回は省略します。

 

「電圧5V」で「10bit((2^10)分解能」のため、5V/1024≒5mV刻みのAD変換となります。

 

Arduinoで電圧調整しながらAD変換する

AD変換のテストをするために可変抵抗(10kΩ)を使って電圧調整を行います。

配線は市販の電子工作セットのブレッドボードとジャンパー線を使用しています。

 

実際の回路図イメージとしては下記形です。

「Arduinoからの5V」→「10kΩ可変抵抗」→「10kΩ抵抗」→「GND」で接続しています。

※「抵抗10kΩ」は特に深い意図はないです。無しでも大丈夫です。

 

今回の回路では可変抵抗を調整することで電圧値を2.5V~5Vに調整できます。

  • 可変抵抗が10kΩのとき…電圧2.5V(AD変換値_511)
  • 可変抵抗が0Ωのとき…電圧5V(AD変換値_1023)

 

テスターで電圧測定もしてみる

今回は単純にAD変換するだけでなく、テスターで電圧測定しながら実施してみます。

ブレッドボードにジャンパー線という工作レベルで何処まで精度が出るのか確認します。

 

今回使用しているテスターはHIOKI製のテスターです。

下記記事でも紹介していますが、非常にコンパクトで使いやすいです。(リンク先はこちら)

HIOKI(日置電機) 3244-60 デジタルマルチメーターの使い方
今回は筆者が持っているおすすめテスターの記事です。HIOKI(日置電機) 3244-60 デジタルマルチメーターの「特徴」を紹介します。また実際に交流電圧・直流電圧・抵抗・導通を測定して「使い方」の確認していきます HIOKI(日...

 

ArduinoにAD変換のプログラムを書いてみる

PCからUSB接続でArduinoにプログラムを書き込んで行きます。

 

Arduino IDEをインストールする

開発環境である「Arduino IDE」をPCにインストールします。

(ダウンロードのリンク先はこちらです。)

インストールしたら「ツール」からボードの項目で「Arduino Uno」を選択します。

 

AD変換のプログラムをArduinoに書き込む

今回使用したArduinoのプログラムは下記です。

アナログ入力の「0」ピンを読み取り、1秒間隔で表示する簡単なプログラムです。

 

プログラムを書き終えたら「スケッチ」から「マイコンボードに書き込む」を選択します。

コンパイルされて、ArduinoにUSB経由で書き込まれます。

 

シリアルモニタ経由でAD変換値を確認する

「ツール」→「シリアルモニタ」を選択することで、ArduinoのAD変換値が表示できます。

 

今回はシリアルポートの設定を「9600」bpsにプログラムしています。

シリアルモニタの右下の設定も「9600」bpsに設定します。

「AD変換値」と「計算された電圧値」が表示されるはずです。

 

ArduinoのAD変換値とテスターの電圧値を比較する

電圧調整して「ArduinoのAD変換値」と「テスターの測定値」を比較していきます。

冒頭でも紹介しましたが、動画だと可変抵抗を調整して電圧値が変わるのが良く分かります。

是非一緒にご覧ください。

Arduinoのアナログ入力の分解能10bitで電圧測定

 

比較したテスト結果

まずは可変抵抗が約10kΩでテスターが2.55Vを表示しているときです。

ArduinoのAD変換値は515、電圧値は2.51Vとなりました。

 

電圧調整後の可変抵抗が約0kΩでテスターが5.05Vを表示しているときです。

ArduinoのAD変換値は1023、電圧値は5Vとなりました。

 

数十mVの差はありますが「Arduinoの値」と「テスターの値」が大体同じになりました。

工作・趣味レベルのAD変換ならば筆者としては十分に満足です。

 

微妙にずれているのは下記項目が影響していそうです。

また精度必要な際には測定・計算含めて詰めていきたいとは思います。

  • Arduinoの電圧が(PCからのUSB電圧)が5Vではなく、「5.05V」と若干高い
  • テスターの測定箇所が悪い(Arduinoのアナログ入力直近で測定していない)

 

まとめ

今回はArduinoのAD変換に関して紹介させていただきました。

記事をまとめますと下記になります。

Arduino UnoのAD変換の分解能は10bit
ArduinoのAD変換はプログラム含めて簡単に実施できる
趣味・工作レベルの電圧測定に十分使える

 

Arduino Unoがあれば簡単にアナログ入力・AD変換が可能です。

ハードウェアの勉強や趣味・工作にも十分に使えます。

次回の記事ではラズパイとArduinoを連携させてアナログ入力をプロットしています。

 

Pythonのプログラム含めて紹介しています。是非一緒にご覧ください。(リンク先はこちら)

ラズベリーパイとArduinoを連携!アナログ入力を応用してみた
ラズベリーパイ単体ではアナログ入力がなく、AD変換が出来ません。 しかしArduinoと連携することでアナログ入力を使用可能となります。 ラズパイとArduinoをUSB接続で簡単に連携する方法を紹介します。

コメント