ランダムに指定された配列からRGB LEDのPWM値を選択するプログラムを作成しようとしています。それは最初の色、青でうまく動作します。それから私は2番目の色、緑色に巣を掛け、青色は表示しないようにし、緑色の表示のみを消す。ブルーカラーのループのためのあなたが緑の色のために、あなたの "forループ" を夢中Arduino RGB LEDランダムPWMレベル
まず:
void loop() {
// put your main code here, to run repeatedly:
int x[9] = {0, 32, 64, 96, 128, 160, 192, 224, 256}; //setup Array X for brightness options
int blueVariable = 0; //Blue LED
int greenVariable = 0; //Green LED
for (int blueLed = 0; blueLed > -1;) { //for loop to choose PWM option
analogWrite(11, x[blueVariable]); //Initilize the PWM function on pin 11 to brightness of blueVariable
// if (blueLed == 255) blueLed = 0; //
blueVariable = random(0,8); //Random function to decide on blueVariable value
delay(500);
for (int greenLed = 0; greenLed > -1;) {
analogWrite(10, x[greenVariable]);
// if (g == 255) g = 0; // switch direction at peak
greenVariable = random(0,255);
delay(500);
}
}
}
適切にあなたのコードをフォーマットすると、すべての人に大きな助けになります(自分を含みます)。 –
'greenVariable = random(0,255)'の理由は、9つの輝度値だけです。さらに、あなたのループは無限で、終了条件はありません。 – Michael
また、私は** PWM **を見ています。これは、おそらく 'analogWrite'関数がコンテキストのないものであるかどうかわかりません。オペランドとは何ですか?あなたのLEDはどのようにMCUに接続されていますか?あなたはどのMCUを持っていますか?どのようなPWMを使用していますか(SW、タイマ/カウンタ、PWMAモジュール)? Arduinoはそれが単なるフレームワークなので、あなたは何をしているのか理解できません。このコードはどこに置かれますか(メインスレッド、ISR、...)ですか? – Spektre