0

私はArduinoでプログラミングを始めて数日ですが、厄介な問題に遭遇しました。私の回路には、ピン 2、3、4 に接続された 3 つの LED と、ピン 8 に接続されたプッシュ ボタンが含まれています。変数を使用して、特定の時点でどの LED が点灯し、値が 4 に達するとリセットされるかをカウントしています。ハードウェア部分は、個別にテストしたため、正常に動作します (LED の自動交替とボタンのサンプル プログラムArduino IDE)、私のコードには何かがあるはずです。正確には何ですか?

void setup(){
  pinMode(2, OUTPUT);
  pinMode(3, OUTPUT);
  pinMode(4, OUTPUT);
  pinMode(8, INPUT);

}

void loop(){
  int buton= digitalRead(8);
  int led = 1;

  if(led == 1){
    digitalWrite(2, HIGH);
    digitalWrite(3, LOW);
    digitalWrite(4, LOW);
  }
  if(led == 2){
    digitalWrite(2, LOW);
    digitalWrite(3, HIGH);
    digitalWrite(4, LOW);
  }
  if(led == 3){
    digitalWrite(2, LOW);
    digitalWrite(3, LOW);
    digitalWrite(4, HIGH);
  }  
  if(buton == HIGH){
    led++;
    if(led == 4) led = 1;
  }

}

変数 led の値と定数文字列の両方を表示するために Serial.println() を配置したため、最後の if (ボタン入力値の 1 つ) を入力しないという事実を知っています。 tショー。

前もって感謝します!

4

1 に答える 1

0

Smilledge はコメントに正しく、ループの反復ごとに led 変数が 1 にリセットされました。2 つの関数 (setup と loop) の外側で変数を宣言できることを知らなかったので、変数をグローバルにしました。

于 2012-10-20T07:36:02.930 に答える