前回の記事のまとめで「可変抵抗をつなぐなら、例えば1kΩ辺りの物を使うのが良いのかもしれない。」と書いたのをやってみることにした。それに加えてもう少し追加で。
回路
こないだのものに1kΩ×2を付け加えた。抵抗の実測は下の図のとおり、0.995kΩと0.998kΩ(ただし、 DMMには誤差がある)。
こないだの基板に抵抗等を追加できるスペースがあったので、そこに実装(前の配線の都合で一方の抵抗は傾いてしまったけど)。
測定
前回は(ほぼ)同じ抵抗値で二分割して、その値を測定した。
R1固定
今回は+5V側の抵抗(上の図でR1)を固定(0.995[kΩ])して、GND側の抵抗(R2)の値を変化させて測定する。コードは前回と同じ。
まず、比較として、Arduino UNO R3(互換機)で測定。
続いて、Arduino UNO R4 Minimaでの測定。こちらはADコンバータの分解能を10ビットと14ビットの両方(途中で切換え)。
本来の値(計算値)とともに表にまとめる(0.995[kΩ]で固定)。
まず、分解能10ビット。
R2 [kΩ] | 計算値 | UNO R3 | UNO R4 |
---|---|---|---|
0.998 | 512 | 511 | 513 |
4.67 | 843 | 843 | 843 |
9.97 | 930 | 930 | 930 |
99.5 | 1012 | 1013 | 1013 |
分解能14ビット。UNO R4の値はふらつくので代表的な値を表に載せる。
R2 [kΩ] | 計算値 | UNO R4 |
---|---|---|
0.998 | 8203 | 8212 |
4.67 | 13505 | 13508 |
9.97 | 14896 | 14891 |
99.5 | 16220 | 16216 |
R2固定
今度はR2(GND側、0.998[kΩ])を固定してR1を変えてみる。R2が1[kΩ]の場合は省略(上で測定済みなので)。また、こちらは図はR4のみ(R3は省略)。
分解能10ビット。
R1 [kΩ] | 計算値 | UNO R3 | UNO R4 |
---|---|---|---|
4.68 | 179 | 178 | 180 |
9.94 | 93 | 91 | 94 |
99.7 | 10 | 7 | 10 |
分解能14ビット。
R1 [kΩ] | 計算値 | UNO R4 |
---|---|---|
4.68 | 2879 | 2883 |
9.94 | 1494 | 1509 |
99.7 | 162 | 173 |
まとめ
+5V側の抵抗(R1)の値を小さくすれば、アナログ入力の内部抵抗の影響を小さくできる。内部抵抗の影響でGND側(R2)の合成抵抗が多少下がってもほとんどはこちら側に電圧がかかるのだから当然。分解能10ビットなら計算値と同じ値が得られた。しかしながら、分解能14ビットでは細かい値を見られる分、誤差が見えてしまう。
GND側の抵抗(R2)の値を小さくした場合も同様。ただし、UNO R3では誤差が生じてしまうようだ(なんでだろう?)。
UNO R4では、やはり測定値のふらつきが生じる。特に分解能14ビットの場合。結局のところ、前回と同じ結論で、誤差を軽減するためにはアナログ入力につなぐもののインピーダンスを下げることがポイント。それなら分解能14ビットでも誤差は少なくできる。とはいえ、ふらつきの問題もあり、結局、分解能10ビットで使うのが無難(せっかく14ビットの分解能があるのに活かすのは難しい)。
コメント