連載
» 2009年02月26日 00時00分 公開

3軸加速度センサで学ぶアナログの世界S08ではじめるマイコン制御プログラミング(5)(1/3 ページ)

今回のテーマは“アナログ”。3軸加速度センサのアナログ信号をADCでデジタル信号に変換し、その値をLEDに表示させる。

[高田浩,@IT MONOist]

 前回までの連載で、デジタル値を使ったいろいろな処理を紹介してきました。その際、入力装置としてスイッチやタイマーなどを用いました。

 しかしながら、実際の制御マイコンの世界で入力装置として使われているものといえば、アナログのセンサなどが中心です。というわけで、今回はアナログ装置の使い方を中心に解説を進め、皆さんをアナログの世界へ招待したいと思います。

 アナログ装置の取り扱いをマスターすれば、マイコンの世界がさらに広がりますよ。それでは早速はじめましょう!!

デジタルとアナログ

 これまで扱ってきたスイッチやタイマーなどの入力装置は、1/0、ON/OFF、YES/NOの“2進数”の世界でした。しかし、世の中はこれだけですべて解決するほど単純ではありません。

 想像してみてください。「昼」と「夜」だけの時間。「100点」と「0点」だけのテスト。「好き」と「嫌い」だけの恋愛。「大吉」と「凶」だけのおみくじ。両極端な世界……怖いですね。

 実際、これらにはいくつもの段階が必要です。連載第3回「汎用I/Oを使って、LEDを操ってみよう」で紹介したカウンタ・プログラムでは、複数のビットを合わせて値の大きさを表現しましたよね。8ビットであれば、0〜255の256通りの値を表現できるのです。

 そして、連載第1回「マイコン・システムでどんなことができるのか?」で動かしたデモ・プログラムを思い出してみてください。ポテンショメータを動かしてLEDの明るさを変化させたり、DEMOQE128ボード(以下、デモ・ボード)を傾けて3軸加速度センサの測定値をPCに表示させたりしましたね。これらのデータは、「1」と「0」だけでなく、明らかにもっと細かな段階があり、複数のビットを使ってそれらを実現しているものと思われます。

 では、ここでデモ・ボードの回路図を見てみましょう(図1)(図2)。

ポテンショメータ部分の回路図(出力はPTA0/PTC6へ) 図1 ポテンショメータ部分の回路図(出力はPTA0/PTC6へ)
加速度センサ部分の回路図(Xの出力はPTA1、YはPTA6/PTC7、ZはPTA7へ) 図2 加速度センサ部分の回路図(Xの出力はPTA1、YはPTA6/PTC7、ZはPTA7へ)

 ポテンショメータ(図1)や3軸加速度センサ(図2)の出力はどのように扱われていますか? 驚いたことに、これらの出力はそれぞれ1本のピン(3軸加速度センサはX、Y、Zそれぞれ1本ずつ)でマイコンに接続されています。実はこれらのポートはアナログ入力装置として機能しており、入力信号ピンに0〜3Vの間の任意の電圧を加えることでアナログ信号を伝えているのです。

アナログからデジタルへの変換

 アナログ信号は一般的に連続しており、その大きさも時間とともに変化します。マイコンではアナログ値を直接扱えませんので、まずデジタル値に変換します。この処理を行う装置が「アナログ/デジタル・コンバータ(ADC:A/Dコンバータ)」です。聞いたことありますよね?

 ADCは、一定間隔でその時点のアナログ値を取り込み、相当する近似のデジタル値に置き換えます。音楽CDの場合、サンプリング周波数44.1kHz、量子化ビット数16ビット。つまり、4万4100分の1秒ごとにアナログ値を取り込み、6万5536段階で表現されるデジタルの近似値に置き換えます。一般的に、取り込みの周期が短いほど高周波まで対応でき、デジタルで表現できるステップ数が多いほど精度が高いということになります。

 デモ・ボードに搭載されているポテンショメータや傾き検知の使い方をする加速度センサでは、どんなに頑張っても数Hzのアナログ信号しか作れないでしょう。これでしたら、一番低い設定でもオーバースペックです。11t(トン)トラックに乗って、コンビニにガムを買いに行くようなものです。ですから、今回の演習ではADCの設定でこれらの数値を気にする必要はありません。また、操作を簡単にするため、できるだけ初期設定の状態のままで使うことにします。もし、実務などでプログラミングをする際は、リファレンス・マニュアルをよく読み、より適切な設定を選択してください。


       1|2|3 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.