スラマッマラム N.C.です。
最近のブログの更新速度は半端ないですね。しかし、ロボット関連の記事がありません。しかも、何のサークルなのかよくわからない記事が増えてきてしまいました。新入生のみなさん、うちのサークルは一応、ロボットがメインの活動となってます。(もちろん、それ以外のことをやっても構いませんが。)というわけで、きょうはロボットという単語を出したいと思います。
ロボットで、関節などの角度を読み取るとき、もっとも手軽なのは、可変抵抗(ボリューム)の抵抗値を電圧に変換して、AD変換で読み取ってやる方法です。では、そのボリュームの値はどれくらいにすればよいでしょうか。「AD変換の入力抵抗がいくつだからその抵抗によるズレを無視できればいいら・・・」と考えた人、そうではありませんよ。(私も最近までそう考えていましたが・・・)
AD変換器の内部の、電圧をサンプリングする部分の回路は、図1中の「AVRの中」のようになっています。今、端子の電圧は4.5Vになっていて、これを読み取りたいとします。
AD変換は、内部のコンデンサに充電してから行われます。なぜそのような回りくどいことを行うか簡単に説明します。AD変換には時間がかかります。しかし、その間は、電圧が一定である必要があります。そこで、一瞬だけコンデンサと入力端子の間の回路をつなぎ、コンデンサに充電し、回路を切って、コンデンサが放電しないようにして(これを”Sample & Hold”と呼びます)、その電圧をAD変換します。
AVRのデータシートのAD変換の部分を読むと、AD変換が始まってから1.5クロック(注:AD変換のクロック)がサンプリングとなっています。つまり、1.5クロック間だけ、図1中のスイッチが閉じます。この間にもしも、コンデンサが4Vまでしか充電されなかったとすると、AD変換で得られる電圧は4Vということになってしまいます。4.5Vを読み取るためには、1.5クロックでコンデンサが十分な電圧まで充電されなければなりません。
「ボリュームの値を読む」第2話では、「十分な電圧とは何ボルトなのか」、「その電圧まで時間内に充電される条件とは何か」を説明していきたいと思います。
[…] 今日は、前回の続きです。 ・十分な電圧 n-bitのAD変換を行うならVref/2^nの分解能を得ることができます。読み取りたい電圧をVreadとおくと、 Vread-Vref/2^(n+1) […]