配線図はこれでした。
配線図のポイントは、2点。一つ目は、各桁のカソード側が共通になっていること。2つ目は、アノード側は、8番ピンと9番ピンに接続されていることです。
8番ピンはHigh、9番ピンをLowにすると、何が起きるか、予想してみます。
上の配線図で、8番ピンはオレンジ色、9番ピンは赤色です。配線を目で追うと、それぞれ、左の桁と右の桁に接続されいます。
つまり、8番ピン(左の桁へ接続)High、9番ピン(右の桁へ接続)Low にすれば、左側の桁のみ表示されます。
HighとLowを入れ替えれば、もちろん、表示する桁も入れ替わります。
スケッチで表現すると、
void setup(){
//1~7番ピン デジタル出力へセット
for (int i=1; i<=7; i++){
pinMode(i,OUTPUT);
}
pinMode(8,OUTPUT);
pinMode(9,OUTPUT);
}
//LEDレイアウトを定義
boolean Num_Array[10][7]={
{0,0,0,0,0,0,1},{1,0,0,1,1,1,1},{0,0,1,0,0,1,0},{0,0,0,0,1,1,0},
{1,0,0,1,1,0,0},{0,1,0,0,1,0,0},{1,1,0,0,0,0,0},{0,0,0,1,1,1,1},
{0,0,0,0,0,0,0},{0,0,0,1,1,0,0}
};
//LED表示関数を定義
void NumPrint(int Number){
for (int w=0; w<=6; w++){
digitalWrite(w+1,Num_Array[Number][w]);
}
}
void loop(){
digitalWrite(8,HIGH);
digitalWrite(9,LOW);
NumPrint(2);
delay(500);
digitalWrite(8,LOW);
digitalWrite(9,HIGH);
NumPrint(3);
delay(500);
}
void loopの中で、8番ピンと9番ピンを交互にHighとLowに切り替えているのがわかると思います。
8番ピンをHigh、9番ピンをLow |
8番ピンをLow、9番ピンをHigh |
それぞれの表示の切り替えの間を、500m秒(0.5秒)にしているので、切り替わっていることがわかりますが、もし、この表示切替時間を短時間で行うとどうなると思いますか。
人の目には、
このように見えます。
この方法をダイナミック点灯と言うそうです。
では、試しに、Void Loopの中のdelay命令の値を変更してみます。
void loop(){
digitalWrite(8,HIGH);
digitalWrite(9,LOW);
NumPrint(2);
delay(10);
digitalWrite(8,LOW);
digitalWrite(9,HIGH);
NumPrint(3);
delay(10);
}
きちんと、【23】と表示されます。
でも、これだと、全力で【23】を表示しているので、使いにくいですね。
やっぱり関数化して、Loopの中からは、その関数へ表示する数値を渡したあとは、別な処理を行いたいです。
次回は、関数化に挑戦です。
・電子工作の基本100
・図解でわかるはじめての電子回路
・Android×Arduinoでつくるクラウド連携デバイス―Android ADKで電子工作
0 件のコメント:
コメントを投稿