6.2.1
赤外線センサ(QRB1134)
本実習では,Vstone社から発売されている赤外線センサを利用し,アナログ入力の学習を行う.こ の赤外線センサは,フェアチャイルドセミコンダクター製
QRB1134
に,コネクタを接続したセンサ である.図
6.1
に示すように,QRB1134は赤外線LED
と,赤外線に反応するフォトトランジスタから構成 されている.また,図6.1
に示すようにマイコンボードおよびマイコンに接続されているので,マイ コンボードの電源をいれるだけで,赤外線LED
は発光を開始する.ただし,赤外線であるので発光 しているかどうかは確認できない.携帯電話のカメラなどで撮影すると赤外線の発光を確認すること ができる5
.赤外線
LED
で発光し,反射体で反射した光を,フォトトランジスタで測定する仕組みになってい る.フォトトランジスタは,光の強さが強いほどに応じて多くの電流が流れる.一般に,このような光を利用したセンサを利用する場合は,外乱の影響を避けるため変復調が利用 される.例えば,センサではないが家電製品のリモコンでは,赤外線を
38[KHz]
で変復調して利用し ている.しかし,本実習で利用するマイコンボード(WRC-003)
との接続では変復調が利用されてい ないので,注意が必要である.反射体と赤外線センサとの距離に応じて,フォトトランジスタが受ける光の強さが変わることを利 用して,簡易的な距離センサとして利用することが可能である.ただし,反射体の反射率や形状,向 きによっても,フォトトランジスタが受ける光の強さが変化するので,注意が必要である.
反射体と赤外線センサとの距離が同じであっても,反射体の反射率が異なれば,フォトトランジス
QRB1134
E S Emitter(Blur)
Collector(White) Anode(Orange) Cathode(Green)
Reflective Surface 4~7 CN
GND Vcc
H8/36064
PB0/AN0(CN4) PB1/AN1(CN5) PB2/AN2(CN6) PB3/AN3(CN7)33k 100
図. 6.1: 赤外線センサとその接続
5多くのディジタルカメラでは赤外線領域にも感度があり,強い赤外線に反応することが多い.
57
ADC 0 0 0 0 LSB 最下位ビット 最上位ビット MSB 0
0 0 1
0 0 1 0
0 0 1 1
0 1 0 0
GND
Vin Time
Time Vin
図. 6.2: A/D変換器の概要
タが受ける光の強さも異なる.この性質を利用して,白地に書かれた黒い線を検出することなどもで きる.
なお,詳細は,QRB1134データシート
(QRB1134.pdf)
を参照.6.2.2 A/D
変換器A/D
変換器は,アナログ量をディジタル量に変換する電気回路である.ADコンバータ,ADCとも 呼ばれる.逐次比較形,デルタシグマ形など,いくつもの方法が知られている.いずれにしても,入 力のアナログ信号をディジタル化する方法である.図
6.2
にA/D
変換器の概要を示す.図6.2
に示すように,入力電圧Vin
ががA/D
変換器によって,4
ビットのディジタル量に変換されていることが確認される.当然のことではあるが,A/D変換を行 うためには,ある程度の時間が必要であり,その間は入力の電圧を一定に保つ必要がある.このよう にある時間間隔電圧を一定に保つ機能は,サンプル・ホールド機能と呼ばれる.6.2.3 H8/36064
周辺機能A/D
変換器の特徴H8/36064
に搭載されているA/D
変換器の特徴を以下にまとめる.• 10
ビット分解能.• 8
チャンネル入力(PB0/AN0
からPB7/AN7
までの8
チャンネル).•
変換時間,約5[μ sec] 6
.• 1
チャンネルのみをA/D
変換する単一モードと,複数チャンネルを連続A/D
変換するスキャン モードが,利用可能.•
サンプル・ホールド機能付き.•
ソフトウエアによるA/D
変換のみならず,外部トリガ信号によりA/D
変換を開始することも 可能.• A/D
変換終了時に割り込みを発生させることが可能.6ハードウェアマニュアルの
3.5[μ sec]
から動作周波数で換算.58
6.2.4 A/D
変換の動作と設定単一モードとスキャンモードの基本的な使い方を説明する.ここで,述べる使い方以外にも,工夫 次第で様々な使い方が可能である.
6.2.4.1
データレジスタについて表
6.11
に示すように,A/D変換結果を格納するレジスタは,二つのチャネルで共有するようになっ ている.そのため,データを読み出すときなどには注意が必要である.また,4つデータレジスタ
(ADDRA, ADDRB, ADDRC,
およびADDRD)
は,16ビットデータ(unsigned int)
として定義されている.しかしながら,H8/36064に搭載されているA/D
変換器は10
ビットである.そのため,表6.12
に示すように,データレジスタの下位4
ビットは必ず0
が読み出さ れる.このため,データを読み出した後に,4ビットシフト(C
言語では,“>>4”)
するなどすれば良 い.また,A/D変換器の下位のビットはノイズの影響などにより,それほど信頼性の高いものではな い.そのため,10ビットA/D
変換器ではあるものの,上位8
ビットのみを利用することも多い.6.2.4.2
単一モード単一モードでは,一つのチャネルを必要なときに一度だけ,A/D変換する場合に便利である.基本 的な利用方法と,関連するレジスタの設定を以下に示す.
1.
単一モードに設定する.ADCSR
レジスタのSCAN
を0
に設定する.2. A/D
変換を行うチャネル(ポート)
を選択する.ADCSR
レジスタのCH
にチャネルを設定する.3. A/D
変換を開始する.ADCSR
レジスタのADST
を1
に設定する.4. A/D
変換が終了するまで待つ.ADCSR
レジスタのADST
が1
の間,ループして待つ.5. A/D
変換の結果を読み出す.ADDRA, ADDRB, ADDRC
またはADDRD
の内から,A/D変 換を行ったチャネルに対応したデータレジスタからデータを読み出す.6.
上位ビットを取り出す.必要に応じて,上位ビットのみを取り出す.Table 6.11: A/D
変換のチャネルとデータレジスタの関係Table 6.12: A/D
変換のデータレジスタとビットの並びデータレジスタ
B
15B
14B
13B
12B
11B
10B
9B
8B
7B
6B
5B
4B
3B
2B
1B
0A/D
変換結果b
9b
8b
7b
6b
5b
4b
3b
2b
1b
00 0 0 0 0 0
59
なお,
A/D
変換のレジスタの詳細な設定は,「H8 36064グループハードウェアマニュアル」(rjj09b0049 h836064.pdf)
を参照.6.2.4.3
スキャンモードスキャンモードは,指定したチャネルを逐次的に常に
A/D
変換を行う.常にA/D
変換を行ってい るので,データレジスタを読み出すだけで,最後に行ったA/D
変換の結果を読み出すことができる.この方法は,簡便な方法であるが,常に
A/D
変換を行っているので,消費電力が大きい.また,デー タレジスタから読み出す値が,常に過去のデータであり,いつA/D
変換が行われたかが明確でないと いう欠点がある.基本的な利用方法と,関連するレジスタの設定を以下に示す.
1.
スキャンモードに設定する.ADCSRレジスタのSCAN
を0
に設定する.2. A/D
変換を行うチャネル(
ポート)
を選択する.ADCSRレジスタのCH
にチャネルを設定する.3. A/D
変換を開始する.ADCSRレジスタのADST
を1
に設定する.4.
データを読み出す.必要なときに,データレジスタからデータを読み出す.スキャンモードでは,A/D
変換が常に行われているので,最後にA/D
変換が行われたときの,値を読み出すことになる.5.
上位ビットを取り出す.必要に応じて,上位ビットのみを取り出す.6. A/D
変換を終了する.A/D変換の必要がないときは,ADCSRレジスタのADST
を0
に設定し,A/D
変換を行わない.なお,