AREFアナログリファレンス|Arduino Shop and Tutorials

  • ADCコンバーターの分解能を確認。
  • Arduinoの内部比較参照
  • 外部AREF参照

素材が必要です。

MEGA Starter Kit

MEGA Starter Kit

スペイン メキシコ
UNO Starter Kit
MEGA Starter Kit MEGA Starter Kit

The analog to digital conversion

前回、ArduinoにはA0~A5ピンの6つのアナログ/デジタルコンバータ(ADC)があるとすでにお伝えしましたが、今回はA0~A5ピンの6つのADCを紹介します。 で、Arduinoの基準電圧である最大5Vまでの電圧値の変換が可能であると述べました。

また、コンバータの重要な特性の1つは、そのビット数であり、そのデジタルへの変換を数値化できる精巧さを定義していると言いました。 Arduinoの場合、アナログゲートで扱うビットは10ビットなので、その分解能は210=1,024通り。

この分解能が高ければ高いほど、変換対象の実数値を近似する能力が高いことになります。

  • アナログ信号のデジタルへの変換は常に近似であり、万一アナログ値が変換器の指示通りであっても、常に不確かさがあることを理解することが重要である。
  • 10ビット分解能のArduinoコンバータでは、1回の測定ステップが5V/1024=0.0048828125Vと5mV弱となり、これ以下の差の電圧値は識別できないことになります。

あまり詳しく説明しなくても、ADCコンバータが行うことは、入力で定量化したい信号を、比較する基準電圧と連続的に比較することだと言っていいでしょう。 そこで、TMP36 温度センサーのセッションでは、アナログピンの 1 つの入力電圧に、5V 入力の最大値と 1024 変換器で測定した最大値の比率を掛けた値を計算しました。

Arduino で通常扱う信号は 5V 前後なので、5V との比較は妥当なことで、業界には最大値が 5V になるセンサーも一通りありますから、このようにしました。

実際には、5Vに対して3.3Vが最大入力電圧であるということは、1,024 * 3.3 /5 = 675より大きい測定値が得られることはなく、依然として5mV入力ステップがあることになります。

しかし、コンバータが電圧比較器である場合、比較する電圧値を3.3Vに変更できれば、ステップは3.3V/1024=0.00322265625、3.2mVになります。 つまり、お金をかけずにコンバータの分解能を向上させたのです。

したがって、理想的な状況では、アナログからデジタルへの変換を行う際の比較電圧は、入力信号の最大可能値であるべきなのです。 なぜなら、そのときこそ、そのコンバーターで最高の解像度が得られるからです。

Arduino の開発者はこの問題を認識しており、だからこそ、これまで使用していなかった外部ピンを含め、外部基準電圧を接続し、A0 から A5 ゲートで読み取った信号と比較できるようにしたのです。

このピンは AREF (Analog Reference) とラベル付けされ、デジタル ピン 13:

Using external analog reference

ゲート A0-A6 のサンプルを比較するアナログ基準の問題は非常に重要で、Arduino には基準を変更するために有効にできるいくつかの内部電圧が用意されています。

Arduino UNOで1.1Vの内部リファレンスを有効にするには、

analogReference(INTERNAL);

MEGAを使用している場合は、次の命令のみを使用できます:

analogReference(INTERNAL1V1);
analogReference(INTERNAL2V56);

それぞれ1.1Vと2.56Vリファレンスが有効になっています。

DEFAULTキーを使用すると、ほぼすべてのArduinoモデルで標準の5V基準に戻ります。

analogReference(DEFAULT);
  • DEFAULT基準の注意は、DUEではそれがその基準電圧であることから3.3Vという意味だからです。 これを確認してから楽しく使いましょう。

AREF端子に基準電圧を接続する場合、Arduinoにそのことを伝える必要があります。 そして、それを指示

analogReference(EXTERNAL);

Use your head when modifying analogue reference, because you’re not careful, you’re eating Arduino for dinnerで行います。 一見何の変哲もないような動作でも、比較的簡単に失敗することがあります。

  • いかなる場合においても、AREF端子に0V以下(または変化する信号、負の過渡電流が発生する信号)を使用しないでください。
  • 外部基準電圧を接続する場合、analogReference(EXTERNAL) 命令を実行する前に analogRead() を呼び出さないでください。AREF で内部比較信号を外部電圧にショートさせ、場合によっては、せっかく買った Arduino を買い替える機会を失ってしまうからです。
  • AREFに1V以下、5V以上を接続しないこと、12を設定すれば値が出るわけではありません。
  • テスト回路

    セッションで見たI2Cディスプレイとポテンショメーターを用いてテスト回路を組んでみることにします。 しかし今回は、ポテンショメーターの両端にGNDと3.3Vを接続して、A1で読み取る中央のピンが3.3Vを超えないようにし、最大値のセンサーのシミュレーションを行います。

    このプログラムは、単にA1アナログピンを読み、その値をセッションで見たような2行16文字のI2Cディスプレイに送信します。

    購読者限定のコンテンツです。 コンテンツにアクセスしましょう!

    ここで、ポテンショメータの読み方をミニビデオで紹介します

    ここで、Arduinoの内部3.3V電圧をAREF端子に接続すると、このような回路になります。

    それでは、プログラムを見てみましょう

    ここで、差分をビデオで紹介します。

    Session summary

    今回のarduinoコースでは、以下のことを学びました。:

    • アナログ-デジタル変換の問題にこだわり、基本は基準値に対する比較であることがわかりました。
    • 通常の5V以外に、内部または外部の電圧値を使用できることを確認しました。
    • その外部基準を起動するための正確な手順と使用時の注意事項が分かりました。