A/D変換の計算方法を解説【電子工作を始めた方向け】

電子工作_A/D変換

どうも、なかしー(@nakac_work)です。
自動車や家電製品のマイコンにプログラミングをする仕事をしています。

電子工作でセンサの電圧をマイコンに取り込む為に欠かせないのがA/D変換です。

A/D変換とは
アナログ信号をデジタル信号に変換するシステム

A/D変換を理解すれば、可変抵抗に合わせてサーボモーターの角度を変えたり、部屋の明るさに応じて、LEDの明るさを調整することだってできます。

センサの出力はアナログ信号の場合が多いので、A/D変換をしっかりと理解しましょう。

この記事で大事なのはアナログ値(電圧)をデジタル値に変換する計算です。

なかしー
なかしー

電子工作でマイコンを扱うならA/D変換の理解は必須ですよ!

この記事ではA/D変換について次の3つの内容を詳しく解説します。

本記事の内容
  1. A/D変換の計算方法
  2. A/D変換の分解能とは
  3. A/D変換の専用ICや回路

A/D変換の計算方法

センサーなどの電圧をデジタル値に変換する公式はこちらです。

A/D変換の公式

例えば、
センサの電圧:2.4V 分解能:10ビット 基準電圧:5Vの場合

A/D変換したデータは 491.52になります。
しかし、マイコンでは小数点以下は切り捨てになるので、実際は491として取り込まれます。

A/D変換したデータからセンサの電圧を計算したいときは、この式を使えばOKです。

注意することが1つあります。

それは、分解能が10ビットの時に、A/D変換したデータの最大値は1024ではなく、1023になることです。

理由は、0を含めて1024をカウントすると1023になるからです。
(2 ^ 分解能)から1を引いた数が最大値になると覚えましょう。

マイコンにA/D変換が必要な理由

可変抵抗器やセンサーの電圧をマイコンに取り込むときにA/D変換を使います。

A/D変換が必要な理由は、マイコンはHighとLowの2進数しか認識できないからです。5Vで動作しているマイコンなら5Vか0Vのどちからで処理されます。

仮に1Vの電圧をマイコンに取り込むと、Lowとして認識するかもしれません。
そこで、5Vでも0Vでもない電圧をマイコンが認識できるように2進数へ変換してくれるのがA/D変換なんです。

A/D変換の分解能とは

センサーの電圧などのアナログ信号を認識できる最小単位を数値化したものです。電子工作の初心者におすすめなArduinoやPICなどのマイコンの分解能は10ビットです。

この分解が高いほど、アナログ信号を読み取る精度も高くなります。

1ビットあたりどれくらいの電圧値で読み取れるのか知りたいなら

基準電圧をA/D変換したデータのMAX値で割れば計算できます。

A/D変換の専用ICや回路

ArduinoやPICマイコンには標準でA/D変換の機能を内蔵しているので困ることはないと思います。

しかし、Raspberry Pi(ラズベリーパイ)には、なぜかA/D変換機能が付いていません。そんなときはA/D変換の専用ICを使えばOKです。

おすすめの型番「MCP3008」あたりです。

センサーなどを最大8個繋いでA/D変換できます。
A/D変換したデータはシリアル通信でマイコンに送信します。

マイコンとICでシリアル通信を行うので、A/D変換を内蔵しているマイコンに比べて処理速度は遅いので、高速でA/D変換したい場合はRaspberry Piを選ぶのは止めておいた方が良いでしょう。

A/D変換のまとめ

この記事では「A/D変換」について解説しました。

A/D変換で入力電圧をデータに変換する公式は

A/D変換の公式

A/D変換の公式は必ず覚えましょう!

もしも、マイコンにA/D変換機能がない場合は専用ICを使えば解決しますが、A/D変換を内蔵しているマイコンと比べて処理速度は遅くなります。

電子工作の人気記事

>>ラズベリーパイで実現できることを紹介【マイコンの域を超えた】

>>電子工作の始め方【回路設計からプログラミングまで可能にする方法】

>>電子工作で作れるものを紹介【始めようと思っている人は必見】