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;
}
お礼
回答頂き、ありがとうございます。一応この件に関して解決しました。 なぜか /Users/myName/Documents/Arduino/hardware/espressif/esp32/ このパス以下のフォルダの一部が削除されているということがわかりました。 ただ、iCloud側のサーバではバックアップされていたので、それを再ダウンロードしてみたところ、正常にビルド完了できました。 よく耳にするiCloudの休眠状態のファイルとしてみなした場合は一旦自動削除するみたいな機能が働いてしまったのかもしれないです。 助かります。