我在使用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的值和一个常量字符串它没有表现出来。
提前谢谢!
答案 0 :(得分:0)
Smilledge在评论中是正确的,在循环的每次迭代中,led变量都被重置为1。我不知道你可以在两个函数(设置和循环)之外有变量声明,所以我只是将变量设为全局。