按钮变量变化不起作用

时间:2012-10-19 19:39:39

标签: variables button arduino

我在使用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的值和一个常量字符串它没有表现出来。

提前谢谢!

1 个答案:

答案 0 :(得分:0)

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