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;
}
}
我知道一個事實,即它不進入最後如果(一個爲按鈕輸入值),因爲我已經放在一個Serial.println()看到兩個LED變量的值和一個常量字符串,它沒有顯示。
預先感謝您!
您應該嘗試將'int led = 1;'移動到您的設置函數中,否則每次循環運行時它都會重置爲1。 – smilledge
這是第一個想法,但如果我將它移動到那裏,它會給出我沒有被聲明爲「在此範圍內」的錯誤。它們是具有不同局部變量的不同功能。 – FloIancu