0

我用 Arduino 编程了几天,但遇到了一个烦人的问题。我的电路包含三个连接到引脚 2、3、4 的 LED 和一个连接到引脚 8 的按钮。我想要做的是通过按下按钮来交替点亮 LED。我正在使用一个变量来计算哪个 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;
  }

}

我知道它没有输入最后一个 if (按钮输入值的那个),因为我放置了一个 Serial.println() 来查看变量 led 的值和一个常量字符串,但它没有显示。

先感谢您!

4

1 回答 1

0

Smilledge 在评论中是正确的,在循环的每次迭代中,led 变量都被重置为 1。我不知道你可以在两个函数(设置和循环)之外有变量声明,所以我只是将变量设为全局。

于 2012-10-20T07:36:02.930 回答