基準電圧(analgReference)について

Arduino に関するご質問などはこちらへ。

基準電圧(analgReference)について

投稿記事by yoshimizu » 2014年5月29日(木) 12:58

yoshimizuと申します。

arduinoに温度計(LM35DM)をアナログ入力に入れて温度表示を行った結果、それらしい値が表示されるようになりました。

その実験を行っているときに、疑問がわいたのですが、温度計からアナログ入力端子に直接配線を行っている場合に基準電圧がどのようになっているのか
が分からなくなりました。

たぶん内部電圧(1.1V)で変換されているとは思うのですが、温度計の電源に3.3Vを使っています。そこからデータを取出しているので、やっぱり3.3Vで計算させる必要があるのかなとも考えます。

直接電圧を測ればいいのですが、アナログ端子に別回路で電流を流しこんでくるような場合は、そこで使われている電圧を使う認識で有っているのでしょうか?
いまいち理解に苦しみます。色々な機器で使う場合混乱してきますので、お教え願いたくお願いいたします。
yoshimizu
 
記事: 12
登録日時: 2014年5月22日(木) 11:25

Re: 基準電圧(analgReference)について

投稿記事by yamaguch » 2014年6月05日(木) 10:00

こんにちは、

Arduino の機種は何ですか?
ポピュラーな Uno であれば、アナログ入力の基準電圧は 5V で、5Vを入力したときに、analogRead は 1023 を返します。

山口
yamaguch
 
記事: 482
登録日時: 2010年7月06日(火) 17:37

Re: 基準電圧(analgReference)について

投稿記事by yoshimizu » 2014年6月05日(木) 15:50

返答有難うございます。

UNOですので、基準電圧は5Vになるのですね。色々計算してみて5Vが一番値的に近かったのでそうかなと
思っていたのですが、それで理解できました。

逆に他の電圧になる場合が想像つかないのですが、analogReferenceで基準電圧を変更する場合はどんな時があるのですか?

アナログ端子に線を差し込んだ場合は全て5V基準で1024段階にかわるものと考えていたらいいのでしょうか?

実験途中に気になったので、また教えてください。
yoshimizu
 
記事: 12
登録日時: 2014年5月22日(木) 11:25

Re: 基準電圧(analgReference)について

投稿記事by yamaguch » 2014年6月05日(木) 17:08

analogRead() では、0 から 5V の入力に対し 0 から 1023 の整数値が返ります。
精度は大体 5mV です。

基準電圧を 1.0V にすると、0.0 から 1.0V の入力に対して 0 から 1023 の整数値が返ります。
従って、この場合の精度は 大体 1.0mV(1/1023 V) になります。
(精度は上がりましたが、もちろん 1.0V を越える電圧は測れません)

Arduino にはピン 13 の近くに AREF というピンがあります。
ここに、例えば 1.0V の電源をつなぐと基準電圧を 1.0V にすることができます。
そして、
コード: 全て選択
analogReference(EXTERNAL);
int value = analogRead(A0);
のようにすると、A0 の電圧が 1.0V の時に value は 1023 になります。

Uno の場合は内部に正確な 1.1V を持っているので、これを基準電圧にすることもできます。
この場合は
コード: 全て選択
analogReference(INTERNAL);
int value = analogRead(A0);
のようにします。

元に戻すときは
コード: 全て選択
analogReference(DEFAULT);
です。

いろいろ実験してみてください。

山口
yamaguch
 
記事: 482
登録日時: 2010年7月06日(火) 17:37

Re: 基準電圧(analgReference)について

投稿記事by yoshimizu » 2014年6月05日(木) 20:48

大変分かりやすい回答有難うございます。
ということは、自分である程度の精度が決められることですね。

そういう使い方もあるって便利ですね。

マイコンについて色々興味出てきました。
これからも勉強、実験に頑張っていきます。
yoshimizu
 
記事: 12
登録日時: 2014年5月22日(木) 11:25


Return to Arduino 質問箱

cron