前回、接続したArduinoと7セグメントLEDの回路図を基に、今回はスケッチを考えます。
回路図と7セグメントLEDのピン配置です。
1桁の7セグメントLEDを表示する時に使ったスケッチを流用します。ピン配置に合わせてLEDレイアウトの定義を変更と、8番、9番のピンをデジタル出力HIGHにします。
void setup(){
//1〜7番ピン デジタル出力へセット
for (int i=1; i<=7; i++){
pinMode(i,OUTPUT);
}
pinMode(8,OUTPUT);
pinMode(9,OUTPUT);
digitalWrite(8,HIGH);
digitalWrite(9,HIGH);
}
//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(){
for(int t=0;t<=9;t++){
NumPrint(t);
delay(500);
}
}
このスクリプトを実行すると、1桁目と2桁目に同じ数値を表示することになってしまいます。
失敗というより、想定どおりです。
使用する減らすために信号線を共通にしている以上、あたりまえです。
配線のチェックとLEDレイアウト定義のテストがわりです。
でも、そのままってわけにはいきません。
もちろん、それぞれの桁に、べつべつな数値を表示したいです。
次回は、スケッチを工夫して、それぞれの桁に指定した数値を表示できるように改良します。
上記のスケッチを実行すると、0~9まで、順々に表示します。
これは、これで、きれいに動きます。ちょっと、うれしい気分になります。
0 件のコメント:
コメントを投稿