ArduinoでA/D変換する方法【電子工作の入門講座】

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

今回は「ArduinoでA/D変換する方法」について紹介します。

電子工作の初心者
電子工作の初心者

A/D変換って何?

という方はこちらの記事にA/D変換について書いているので、先に読んだ方が良いと思います。

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

Arduinoはデジタル入力だと0Vか電源電圧しか取り込めませんが、A/D変換を使えば、0Vから電源電圧までの電圧を取り込めます。

電子工作の入門者
電子工作の入門者

えっ?何が違うの?

と思った方もいると思います。

温度センサは温度に応じた電圧(もしくは電流)を出力します。
電圧は2.7Vかもしれないし、3.4Vかもしれません。

そのセンサの電圧をデジタル入力で取り込むと、ArduinoはLかHのどちらかでしか認識できません。

温度センサ以外に、光センサや傾きセンサなども状態に応じた電圧を出力するのでA/D変換は必須です。

この記事では次の内容について紹介します。

この記事の内容
  1. A/D変換の特徴
  2. Arduinoの接続方法
  3. Arduinoのプログラミング

動画でも解説しています。

A/D変換はアナログ値をデジタル値に変換する方法です。

変換には次の式を使います。

例えば、センサーの電圧2.4Vを基準電圧が5Vで分解能が10ビットのマイコンでA/D変換するときは、下のような計算をします。

計算をするとA/D変換したデータは「491」となります。

Arduinoの接続方法

今回は可変抵抗で0Vから5Vまで電圧を調整できる回路をArduinoに接続します。センサーを繋ぐ場合と変わらないので安心してください。

A/D変換を行う時の接続するポートは6つあって、A0からA5です。

Arduinoのプログラミング

プログラミングで大事な部分を説明します。

  • analogRead(引数1)

詳しく解説します。

analogRead(引数1)

使い方は

変数 = analogRead(0)

今回はA0に可変抵抗を繋いだので、引数1に0を入力しています。
A/D変換したデータは10bit分のスペースが必要なので、int型で宣言した変数をしようしてください。

また、データは0から1023まで変化します。
Arduinoの中でデータを電圧に変換するときは

ArduinoのA/D変換の分解能は10ビットなので、データを1024で割ります。
float型で宣言した変数に計算結果を入れないとデータが0になってしまいます。

data = (analogRead(0) * 5) / 1024;

で計算するのがおすすめです。

ArduinoでA/D変換する方法|まとめ

この記事では「ArduinoでA/D変換する方法」について紹介しました。

この記事のポイント
  1. A/D変換はセンサの電圧をマイコンに取り込む時に使う
  2. ArduinoのA0からA5ポートに接続すればOK
  3. analogRead(ポート番号)でOK、データを入れる変数は注意が必要

Arduino関連の人気記事

>>【Arduino入門キット】電子工作の勉強におすすめ【こんなに安くていいの?】

>>Arduinoでできることを紹介【逆にできないことは何?】

>>Arduinoをゼロから勉強する方法【参考書は不要】

当ブログで人気のArduino入門キット

第1位:Arduino UNO スターターキット
Arduino UNOのスタータキットです。電子工作でよく使う部品が一式揃っており、バラバラで購入するより格段に安いです。
第2位:ELEGOO Arduino用のUNO R3 最終版スタータキット
こちらも電子工作によく使う部品が第一位のスタータキットよりたくさん入っています。とてもお買い得です。
第3位:ELEGOO Arduino MEGA 2560 R3
UNOの上位互換版MEGAのスターターキットです。これだけ入っていれば十分に電子工作の基本をマスターできることでしょう。
エンジニアが教えるArduino入門講座のまとめ【解説動画付き】