arduinoで7セグメントを使いたい
arduinoで下記のスケッチを使って7セグメントledを動かしているのですが、
///////////////////////////////////////////////////////////////////////////////////////////////////////
//LED表示関数を定義
void NumPrint(int Number){
for (int w=0; w<=7; w++){
digitalWrite(w+1,Num_Array[Number][w]);
}
}
///////////////////////////////////////////////////////////////////////////////////////////////////////
(1)この部分がどのような動作をしているのかわかりません。
(2)また、arduinoMEGAを使用して22~29番ピンを出力にして動かそうとしても上手くいきません。
(1)についての説明と(2)の解決法を知りたいです。
よろしくお願いしますm(._.)m
↓使っているスケッチ(1~8番ピンが出力のもので上手く動作します)
void setup(){
//1~8番ピン デジタル出力へセット
for (int i=1; i<=8; i++){
pinMode(i,OUTPUT);
}
}
//LEDレイアウトを定義
//0,1,2,3,4,5,6,7,8,9,0,. の順。
boolean Num_Array[11][8]={
{0,0,0,1,0,0,0,1},{1,1,0,1,0,1,1,1},{0,0,1,1,0,0,1,0},{1,0,0,1,0,0,1,0},
{1,1,0,1,0,1,0,0},{1,0,0,1,1,0,0,0},{0,0,0,1,1,0,0,0},{1,1,0,1,0,0,0,1},
{0,0,0,1,0,0,0,0},{1,0,0,1,0,0,0,0},{1,1,1,0,1,1,1,1}
};
//LED表示関数を定義
void NumPrint(int Number){
for (int w=0; w<=7; w++){
digitalWrite(w+1,Num_Array[Number][w]);
}
}
void loop(){
for(int t=0;t<=10;t++){
NumPrint(t);
delay(500);
}
}
お礼
やっと理解できました! digits[n] & (1 << i) ? HIGH : LOW digits[n] と 1をiビットシフトさせた値が等しければHIGH、異なればLOWということですね。 ありがとうございました。