【Arduino】基礎のアナログ読み取り解説

Arduino

はじめに

本記事ではArduinoのアナログ読み取りを行っていきます。基礎中の基礎なので大部分の人は知っているかと思いますが、再確認という意味でやっていきますね。

ちょっと説明 ~アナログ読み取り~

今回はArduino_unoを例に挙げます。

仕様

・基準電圧:5V

・アナログ読み取り分解能:10ビット(0~1023)

・チャンネル数:A0~A5

Arduino_unoでは5Vの基準電圧を10ビットの分解能で読み取り可能です(つまり5/1023で4.89mV単位まで読み取りが可能)。逆を言うと4.89mV以下の電圧の変化は検出することができません。

例えばArduino_Zero_Proであれば12ビットの分解能を持っているために0~4095まで基準電圧を刻んで読み取ることができます。しかしこのZero_Proの場合は基準電圧が3.3Vであるために3.3/4095で0.8mVの変化まで読み取り可能です。

でも、なんで基準電圧に5Vと3.3Vがあるの??

くろべこ
くろべこ

もともとは5VのTTL/CMOS標準ロジックが主流だったけど低電圧系への移行の際に3.3Vが生き残ったみたいだよ。

その3.3Vに移行した理由の一つに既存の5V標準のTTL/CMOSとの接続を考慮した為とも言われていますね。

脱線してしまいましたが、マイコンのアナログ読み取りを行うときは基準電圧と分解能に注意しましょう。

準備

材料

  1. Arduino_uno
  2. LED
  3. 100Ω抵抗
  4. 500Ω可変抵抗

以上

今回は、抵抗と可変抵抗の分圧電圧をアナログ読み取りしていきます。そして、アナログ読み取りした値をPWMに変化させてLEDの明るさを変えていきたいと思いますね。

実装

以下回路図になります。

Analog読み取り回路図

以下コードになります

今回はマップ関数を使用してアナログ値10ビット(0~1023)をPWMの8ビット(0~255)に変化させています。参考にマップ関数のリンクを載せておきますね。

Arduino_map関数説明

 

実際の動作映像を以下のリンクに乗せておきました。

いかがでしたか?おそらく大半の人がそんなの知ってるよ。と思うかもしれませんが基本のおさらいということで本日の記事は終わります。

でわでわ~

コメント

タイトルとURLをコピーしました