2012年9月6日木曜日

2桁の7セグメント発光ダイオードに挑戦(スケッチ編その1)

前回、接続した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 件のコメント:

コメントを投稿