Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

ADC(アナログ-デジタル変換器)

アナログ-デジタル変換器(ADC)は、アナログ信号(音、光、温度のような連続信号)をデジタル信号(離散的な値で、通常は 1 と 0 で表される)に変換するために使用されるデバイスです。この変換は、マイクロコントローラー(例: nrF52833、Raspberry Pi Pico)のようなデジタルシステムが現実世界とやり取りするために必要です。たとえば、温度や音を測定するセンサーはアナログ信号を生成するため、デジタルデバイスで処理するにはデジタル形式に変換する必要があります。

ADC

ADC の分解能

ADC の分解能とは、ADC がアナログ信号をどれだけ正確に測定できるかを指します。分解能はビット数で表され、分解能が高いほど測定はより正確になります。

  • 8 ビット ADC は、0 から 255 までのデジタル値を生成します。
  • 10 ビット ADC は、0 から 1023 までのデジタル値を生成します。
  • 12 ビット ADC は、0 から 4095 までのデジタル値を生成します。

ADC の分解能は、次の式で表せます。 \[ \text{Resolution} = \frac{\text{Vref}}{2^{\text{bits}} - 1} \]

Microbit v2 (nRF52833)

nRF52833 は、12 ビット 8 チャネルのアナログ-デジタル変換器(ADC)を備えています。したがって、0 から 4095 までの値を返します(4096 通りの値)

\[ \text{Resolution} = \frac{3.3V}{2^{12} - 1} = \frac{3.3V}{4095} \approx 0.000805 \text{V} \approx 0.8 \text{mV} \]

分圧回路における ADC 値と LDR の抵抗

LDR と固定抵抗で構成された分圧回路では、出力電圧 \( V_{\text{out}} \) は次のようになります。

\[ V_{\text{out}} = V_{\text{in}} \times \frac{R_{\text{LDR}}}{R_{\text{LDR}} + R_{\text{fixed}}} \]

これは前の章で説明したものと同じ式で、\({R_2}\) を \({R_{\text{LDR}}}\) に、\({R_1}\) を \({R_{\text{fixed}}}\) に置き換えただけです

  • 明るい光(LDR の抵抗が低い): \( V_{\text{out}} \) は低下し、その結果 ADC 値も低くなります。
  • 薄暗い光(LDR の抵抗が高い): \( V_{\text{out}} \) は上昇し、その結果 ADC 値も高くなります。

ADC 値の計算例

明るい光:

LDR の抵抗値が明るい光の下で \(1k\Omega\) だとします(固定抵抗は \(10k\Omega\) です)。

\[ V_{\text{out}} = 3.3V \times \frac{1k\Omega}{1k\Omega + 10k\Omega} \approx 0.3V \]

ADC 値は次のように計算されます。 \[ \text{ADC value} = \left( \frac{V_{\text{out}}}{V_{\text{ref}}} \right) \times (2^{12} - 1) \approx \left( \frac{0.3}{3.3} \right) \times 4095 \approx 372 \]

暗闇:

LDR の抵抗値が非常に弱い光の下で \(140k\Omega \) だとします。

\[ V_{\text{out}} = 3.3V \times \frac{140k\Omega}{140k\Omega + 10k\Omega} \approx 3.08V \]

ADC 値は次のように計算されます。 \[ \text{ADC value} = \left( \frac{V_{\text{out}}}{V_{\text{ref}}} \right) \times (2^{12} - 1) \approx \left( \frac{3.08}{3.3} \right) \times 4095 = 3822 \]

ADC 値を電圧に戻す

ここで、ADC 値を入力電圧に戻したい場合は、ADC 値に分解能(0.8mV)を掛けます。

たとえば、ADC 値が 3822 の場合を考えてみましょう。

\[ \text{Voltage} = 3822 \times 0.8mV = 3057.6mV \approx 3.06V \]

シングルエンドモードと差動モード

シングルエンドモード

シングルエンドモードでは、ADC は 1 つの信号ピンの電圧をグラウンド基準で測定します。これは、ある点が床からどれくらい高いかを測るようなものだと考えられます。この方法はシンプルで使いやすく、必要な入力ピンも 1 本だけです。ただし、特に長い配線を使う場合には電気的ノイズの影響を受けやすく、負の電圧は測定できません。

このモードは、LDR を使って光のレベルを読み取る場合、赤外線または超音波センサーで距離を測定する場合、アナログセンサーモジュールを使って空気やガスの品質を監視する場合などで一般的に使用されます。先ほど説明した計算は、いずれもシングルエンド ADC 測定に基づいています。

差動モード

差動モードでは、ADC は 2 つの入力ピン間の差を測定し、グラウンドを完全に無視します。これは、2 人がどこに立っているかに関係なく、その身長差を比べるようなものです。

このモードは、両方の入力に共通して現れるノイズを打ち消すのに役立ち、グラウンドより上にも下にも振れる信号を含む、非常に小さな電圧変化を検出できます。追加のピンが必要で、セットアップもやや複雑になりますが、熱電対を使った温度測定や、ひずみゲージを使った圧力や力の検出など、高精度が求められる用途で有用です。

参考