AN4とAN5の2つのA/D変換をするので今回はスキャンモードでA/D変換します。ADCSRの設定値は表3のとおりです。
ADCSR | |||
ビット名 | 簡単な説明 | 設定値 | |
bit7 | ADF | A/D変換が終了したときにセットされるフラグ | 0 |
bit6 | ADIE | A/D変換終了後、割り込みを発生させたい場合は1にする | 0 |
bit5 | ADST | A/D変換開始時に1にセットする | 1 |
bit4 | SCAN | 複数のチャネルを連続してA/D変換したい場合は1にセットする | 1 |
bit3 | CKS | A/D変換時間を早くしたいときは1にセットする | 1 |
bit2 | CH2 | CH2・CH1・CH0でA/D変換を実施するチャネルを選択する | 1 |
bit1 | CH1 | 0 | |
bit0 | CH0 | 1 |
表3
プログラム例をリスト2に示します。
リスト2
ハイパーターミナルには図4のように表示されます。
図4
アルカリ乾電池は1本1.5Vなので両方とも3Vになっているはずです。
モータ用電池 629 × 5 / 1024 = 約3.07V
マイコン用電池 606 × 5 / 1024 = 約2.96V
概ね正しくA/D変換されているようです。