Arduino プログラミングのエラーについて
現在、Arduino、4桁7セグメントLED(カソードコモン)、タクトスイッチ3つで、3人クイズ対決で利用する得点加算機を作成しています。
プログラムで、下記のようなエラーが出てしまいます。
invalid types 'int[int]' for array subscript
このエラーに対して、何か解決策があればご教授お願い致します。
下記にプログラムを載せます。
const int first_BUTTON = 0; //プレイヤー1の得点ボタン
const int second_BUTTON = 1; //プレイヤー2の得点ボタン
const int third_BUTTON = 4; //プレイヤー3の得点ボタン
const int anode_a = 12; //アノードに接続するArduinoのピン
const int anode_b = 8;
const int anode_c = 5;
const int anode_d = 3;
const int anode_e = 2;
const int anode_f = 11;
const int anode_g = 6;
const int cathode_first = 7; // カソードに接続するArduinoのピン
const int cathode_second = 9;
const int cathode_third = 10;
int val_1= 0;
int val_2= 0;
int val_3= 0;
int old_val_1 = 0;
int old_val_2 = 0;
int old_val_3 = 0;
// LEDの状態(0ならオフ、1ならオン)
int state_first=0;
int state_second=0;
int state_third=0;
int w;
int N;
// setup() は、最初に一度だけ実行される
void setup () {
// ピンを出力モードに設定する
pinMode(first_BUTTON, INPUT);
pinMode(second_BUTTON, INPUT);
pinMode(third_BUTTON, INPUT);
pinMode(anode_a, OUTPUT);
pinMode(anode_b, OUTPUT);
pinMode(anode_c, OUTPUT);
pinMode(anode_d, OUTPUT);
pinMode(anode_e, OUTPUT);
pinMode(anode_f, OUTPUT);
pinMode(anode_g, OUTPUT);
pinMode(cathode_first, OUTPUT);
pinMode(cathode_second, OUTPUT);
pinMode(cathode_third, OUTPUT);
}
//LEDレイアウトを定義
boolean Num_Array[11][7]={
{1,1,1,1,1,1,0},//0
{0,1,1,0,0,0,0},//1
{1,1,0,1,1,0,1},//2
{1,1,1,1,0,0,1},//3
{0,1,1,0,0,1,1},//4
{1,0,1,1,0,1,1},//5
{1,0,1,1,1,1,1},//6
{1,1,1,0,0,1,0},//7
{1,1,1,1,1,1,1},//8
{1,1,1,1,0,1,1},//9
{0,0,0,0,0,0,0} //space
};
//LED表示関数を定義
void NumPrint (int Number){
for (int w=0; w<=6; w++){
digitalWrite(w+1,Num_Array[Number][w]);
}
}
boolean Led_Array[3][3]={
{1,0,0,}, //LED1
{0,1,0}, //LED2
{0,0,1} //LED3
};
void Led_Active(int Number){
for(w=0;w<=2;w++){
digitalWrite(w+11,Led_Array[Number][w]);
}
}
// loop() は、setup ()実行後、無限に実行される
void loop(){
for(int i=0;i<=2;i++){
NumPrint(N[i])
}
Led_Active(i);
delay(5);
}
val_1 = digitalRead(first_BUTTON);
NumPrint(state_first);
//変化があるかどうかチェック
if((val_1 == HIGH) && (old_val_1 == LOW)) {
state_first = (state_first+1) % 10;
NumPrint(state_first);
delay(300);
}
delay(100);
old_val_1 = val_1;
val_2 = digitalRead(second_BUTTON);
NumPrint(state_second);
//変化があるかどうかチェック
if((val_2 == HIGH) && (old_val_2 == LOW)) {
state_second = (state_second+1) % 10;
NumPrint(state_second);
delay(300);
}
delay(100);
old_val_2 = val_2;
val_3 = digitalRead(third_BUTTON);
NumPrint(state_third);
//変化があるかどうかチェック
if((val_3 == HIGH) && (old_val_3 == LOW)) {
state_third = (state_third+1) % 10;
NumPrint(state_third);
delay(300);
}
delay(100);
old_val_3 = val_3;
}
お礼
参考になりました! ありがとうございます。 週末あたりに再挑戦してみます。