このドキュメントは http://edu.net.c.dendai.ac.jp/ 上で公開されています。
ここで、外部入力として、アナログ入力を受け付けることを考えます。
Arduino では、初期設定で、アナログポート A0 から A5 までが設定されて
いるため、
なお、作成したトレーニングキットでは、 A0 から A3 まではディジタル出 力ポートとして使う前提で設計してあるので、 本講義ではA4とA5をアナログ入力ポートとして使うこととします。
アナログ入力ポートとはA/Dコンバータが内蔵されていて、電圧値を読み込 みます。 A/Dコンバータは電圧値を瞬時に数値化できるのではなく、 分解能に応じて電圧値が得られる時間が長くなります。
半固定抵抗により、可変電圧源を作り、 それを A4 ポートで検出し、得られた10bit の値を0からFまでの値に変換 して LED で表示しなさい。
const byte out7seg[]={6,7,8,9,10,11,12,13,0xff};
const byte pattern[]={
0b11011110, //0
0b10010000, //1
0b11001101, //2
0b11011001, //3
0b10010011, //4
0b01011011, //5
0b01011111, //6
0b11010000, //7
0b11011111, //8
0b11011011, //9
0b11010111, //A
0b00011111, //b
0b01001110, //C
0b10011101, //d
0b01001111, //E
0b01000111 //F
};
void setup() {
for(byte i=0;out7seg[i]!=0xff;i++){
pinMode(out7seg[i], OUTPUT);
}
}
void write7seg(byte x){
for(byte i=0; i<8;i++){
digitalWrite(out7seg[i],pattern[x]&1<<i);
}
}
void loop() {
int val;
val=analogRead(A4);
write7seg(val>>6); //10bit -> 4bit
}