秋月ファンクラブ掲示板

No.4499へ返信

記事投稿フォーム
補助
送信

chy_farm(2018/11/20 Tue 12:13) [ 編集 ] [ 返信 ]

Arduino Uno r3、A-D変換のリニアリティー

JPG 800x600 187.8kb

500ΩのポテンシオメータにArduino ボードの5V端子、GND端子から5Vを印加して、
ポテンシオメータの中間点をアナログ入力ポート「A0」に接続して、
ポテンシオメータの値を変化させながら、テスターで電圧変化を記録しました。

A0から入力されるアナログデータが良いリニアリティーでデジタル変換されているかをみました。

開始前に準備測定すると、

(テスタ表示): (COM4ポート表示)
   0. 00V    0. 00V
   4.84V    4.85V

でしたので、割り算して
Serial.println(a*(4.85/1023));
のコーディングのところでパラメータに入れています。

C++のコードは次の通りです。
/////////////////////////////////
void setup() {
Serial.begin(9600);
}

void loop() {
int a;
a=analogRead(0);
Serial.println(a*(4.85/1023));
delay(1000);
}
///////////////////////////////////

(結果)
(テスタ表示): (COM4ポート表示)
   4.84V    4.85V
   3.98V    4.00V
   3.50V    3.50V
   3.03V    3.00V
   2.52V    2.50V
   2.00V    2.00V
   1.50V    1.50V
   1.01V    1.00V
   0.50V    0.50V

/////////////////////////////////////

と、まあ、こんなものなのでしょうか。