見てくれてありがとう!
バックグラウンド
私は、RGBアドレス指定可能なLEDのストリップを配置した各アームにクワッドコプターを構築しています。私はArduinoを使用してライトを駆動していますが、ArduinoのコードはC ++で、よく知らない言語です。
これは、このコードで発生した以前の問題に関して投稿した最初のStackOverflowの質問です。それは私が何をしようとしているのかについてのより多くの背景をあなたに与えます(あなたが興味を持っているなら)。
問題
最初の質問への回答のおかげで、配列「gpsHoldArr」を正しく記述できましたが、その値にアクセスできません。
以下のコードでtoggleLights(gpsHoldArr[x][y])
は、のサブ配列を呼び出して渡しgpsHoldArr
ます。サブアレイは、特定のLEDストリップ([x]
)をポイントし、次に特定のステップ([y]
)をポイントした結果である必要があります。
toggleLights
次に、渡された配列を反復処理し、オンになっている各LEDの値(1〜6の数値)とそのLEDの赤、緑、青の値をコンソールに送信する必要があります。
残念ながら、以下のコードを実行すると、次のエラーが発生します。
cannot convert int(*)[3] to int* for argument 1 to 'void toggleLights(int*)'
どんな助けでも大歓迎です。
現在のコードは次のとおりです。
//4 arms, 6 steps, 6 leds
int gpsHoldArr[4][6][6][3] = {
{
{{255,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}},
{{255,0,0}, {255,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}},
{{255,0,0}, {255,0,0}, {255,0,0}, {0,0,0}, {0,0,0}, {0,0,0}},
{{255,0,0}, {255,0,0}, {255,0,0}, {255,0,0}, {0,0,0}, {0,0,0}},
{{255,0,0}, {255,0,0}, {255,0,0}, {255,0,0}, {255,0,0}, {0,0,0}},
{{255,0,0}, {255,0,0}, {255,0,0}, {255,0,0}, {255,0,0}, {255,0,0}}
},
{
{{255,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}},
{{255,0,0}, {255,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}},
{{255,0,0}, {255,0,0}, {255,0,0}, {0,0,0}, {0,0,0}, {0,0,0}},
{{255,0,0}, {255,0,0}, {255,0,0}, {255,0,0}, {0,0,0}, {0,0,0}},
{{255,0,0}, {255,0,0}, {255,0,0}, {255,0,0}, {255,0,0}, {0,0,0}},
{{255,0,0}, {255,0,0}, {255,0,0}, {255,0,0}, {255,0,0}, {255,0,0}}
},
{
{{255,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}},
{{255,0,0}, {255,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}},
{{255,0,0}, {255,0,0}, {255,0,0}, {0,0,0}, {0,0,0}, {0,0,0}},
{{255,0,0}, {255,0,0}, {255,0,0}, {255,0,0}, {0,0,0}, {0,0,0}},
{{255,0,0}, {255,0,0}, {255,0,0}, {255,0,0}, {255,0,0}, {0,0,0}},
{{255,0,0}, {255,0,0}, {255,0,0}, {255,0,0}, {255,0,0}, {255,0,0}}
},
{
{{255,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}},
{{255,0,0}, {255,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}},
{{255,0,0}, {255,0,0}, {255,0,0}, {0,0,0}, {0,0,0}, {0,0,0}},
{{255,0,0}, {255,0,0}, {255,0,0}, {255,0,0}, {0,0,0}, {0,0,0}},
{{255,0,0}, {255,0,0}, {255,0,0}, {255,0,0}, {255,0,0}, {0,0,0}},
{{255,0,0}, {255,0,0}, {255,0,0}, {255,0,0}, {255,0,0}, {255,0,0}}
}
};
toggleLights(gpsHoldArr[0][0]); //Toggles lights on strip #1, step #1
toggleLights(gpsHoldArr[1][0]); //Toggles lights on strip #2, step #1
toggleLights(gpsHoldArr[2][0]); //Toggles lights on strip #3, step #1
toggleLights(gpsHoldArr[3][0]); //Toggles lights on strip #4, step #1
void toggleLights(int lights[]){
for(int i = 0; i <= 6; ++i)
{
set_color_led(i, lights[i], lights[i], lights[i]);
}
}
void set_color_led(int led, int r, int g, int b){
Serial.println(led); //Which LED (or "pixel") is it?
Serial.println(r); //What is the red value?
Serial.println(g); //What is the green value?
Serial.println(b); //What is the blue value?
}