Warning: Trying to access array offset on value of type bool in /home/cycos/cammy.co.jp/public_html/technical/wp-content/themes/cocoon-master/lib/utils.php on line 2604

Warning: Trying to access array offset on value of type bool in /home/cycos/cammy.co.jp/public_html/technical/wp-content/themes/cocoon-master/lib/utils.php on line 2604

Warning: Trying to access array offset on value of type bool in /home/cycos/cammy.co.jp/public_html/technical/wp-content/themes/cocoon-master/lib/utils.php on line 2632

analogRead


指定されたアナログピンからデータ値を読み取ります。

Arduinoボードには、マルチチャネルの10ビットアナログ-デジタルコンバーターが搭載されていますので、0から動作電圧(5Vまたは3.3V)までの入力電圧を、0から1023の整数値に変換して読み取ることができます。

5Vとした場合、0~ 1023(分解能=1024)ですので、1段階あたり0.0049V(4.9 mV)として計算をし現在の電圧を取得することができます。

Arduinoのボードごとの使用可能なピン、動作電圧、および最大解像度は下記の表のとおりです。

ボード 動作電圧 入力ピン 分解能

Uno

5 V

A0 ~ A5

10 ビット

Mini, Nano

5 V

A0 ~ A7

10 ビット

Mega, Mega2560, MegaADK

5 V

A0 ~ A14

10 ビット

Micro

5 V

A0 ~ A11*

10 ビット

Leonardo

5 V

A0 ~ A11*

10 ビット

Zero

3.3 V

A0 ~ A5

12 ビット**

Due

3.3 V

A0 ~ A11

12 ビット**

MKR Family boards

3.3 V

A0 ~ A6

12 ビット**

※A0からA5は、ボードのコネクタにラベルが付けられており、A6からA11はそれぞれピン4、6、8、9、10、および12で使用できます。
※analogReadは互換性のため、分解能はすべて10ビットです。
12ビットに変更するには、analogReadResolution()を使用する必要があります。

書き方 アナログ値=analogRead(ピン番号)
戻り値 読み込んだアナログ値(0~1023)
引数 ピン番号

プログラム例

analogPinの電圧を読み取りシリアルモニターに表示します。

int analogPin = A1; 

void setup() {
  Serial.begin(9600);           
}

void loop() {
  int val = analogRead(analogPin);  
  Serial.println(val);          
}

実験

弊社の二足歩行プログラミングロボットクムクムロボットでは、電池電圧をこの関数を使って読み取ることができます。

<<クムクムロボットロボットの電池電圧を読み取る方法>>

※クムクムロボットではサーボモータへの電源とCPUへの電源を電池から供給しています。
※サーボモータはおおよそ2.9V未満になるとちゃんと動作しないため、この関数で電池残量を図り、2.9V程度になったらモータへの電源供給を止めるか、detach()関数でモータの接続を切り離します。

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