2016-12-20 368 views
-3

我想運行這個循環,其中abc()只有一次功能。但它持續工作。我該怎麼辦?Arduino循環一次

const int buttonPin = 2; 
int buttonState = 0; 
int i; 

void setup() { 
    pinMode(buttonPin, INPUT); 
} 

void abc(){ 
    if (buttonState == HIGH) { 
     for(i=0; i<240; i++) 
     { 
      analogWrite(6,i); 
     } 

    } 
    else { 
     analogWrite(6,0); 
    } 
} 

void loop() { 
    buttonState = digitalRead(buttonPin); 
    abc(); 
} 
+3

這是真的嗎?你真的讀過關於Arduino項目中使用的(非常簡單)'setup' /'loop'方案的任何內容嗎?如何從'setup'調用'abc'(或者更好的方法是將'abc'函數的代碼放入'setup'函數中)。 –

+1

這可以從設置調用功能。我實際上不知道 – Mithun

+2

爲什麼它不是?在任何情況下,您都可以直接將代碼直接放在那裏。 –

回答

2

您可以使用IF語句一些布爾,就像這樣:

bool ABC = true; 

void loop() { 
    if(ABC) { 
     abc(); 
     ABC = false; 
    } 
} 

我希望它幫助。

Yoav

+1

這是一個非常糟糕的建議,我害怕。這個變量需要是'static',否則每次調用'loop'函數時它都會被初始化爲'true'。即使您正確回答了,Arduino方案也是專門爲了讓程序員只執行一次某些事情而指定的 - 只需在'setup'函數中執行即可。沒有理由在這裏使用布爾標誌。 –

+0

你說得對。我的意思是他需要聲明一個全局變量。我發現我不寫得對。感謝您的評論。我改變了答案。 – YoavShtainer

+0

對不起,我在英語中犯了一些錯誤,我刪除了我的評論。 – YoavShtainer