2017-10-07 275 views
-1
const int buttonPin = 2;  
int buttonState = 0;   

void setup() { 
    Serial.begin(9600); 
    pinMode(buttonPin, INPUT); 
} 

void loop() { 
    buttonState = digitalRead(buttonPin); 
    if (buttonState == HIGH) { 
    Serial.println("1"); 
    buttonState=LOW; 
    delay(20000); 
     while(0); 
    } 
} 

基本上碼是這樣的:Arduino代碼 - while(0)有什麼用?

  • 按鈕銷的數量
  • 用於讀取按鈕狀態
  • 初始化按鈕管腳作爲輸入
  • 變量:
  • 讀取的狀態的按鈕值:
  • 檢查是否按下按鈕。如果是,則buttonState高: 通過藍牙發送字符1:

我有一個Arduino,HC 06藍牙模塊,一個按鈕和一個應用程序時,按下按鈕(HC 06發送,使一個phonecall一個字節,1,應用程序)

我的問題是,什麼是while (0);

---- ORIGINAL CODE ---- const int PirSensor = 2; int motionState = 0;

void setup() { 
    Serial.begin(9600); 
    pinMode(PirSensor, INPUT); 
} 

void loop() { 
    motionState = digitalRead(PirSensor); 
    if (motionState == HIGH) { 
    Serial.println("1"); 
    motionState = LOW; 
    delay(20000); 
// while(0); 
    } 

} 
+0

它沒有做任何事情,就像那樣。你爲什麼把它放在那裏? – hobbs

+0

因爲我從另一個代碼中加入了我的代碼,而不是按鈕,它有一個PIR運動檢測器。我無法理解這段時間的意義。 –

+1

@PedroFerreita你可以請原始的例子嗎? – orhtej2

回答

0

那麼,如果我沒有在這種情況下沒有記錯。

在大多數計算機編程語言中,while循環是一個控制流語句,它允許代碼根據給定的布爾條件重複執行。 while循環可以被認爲是重複的if語句。

請注意,如果你有一個條件,while循環必須有一個退出選項,如:

const int buttonPin = 2;  
int buttonState = 0;   

void setup() { 
    Serial.begin(9600); 
    pinMode(buttonPin, INPUT); 
} 

void loop() { 
    buttonState = digitalRead(buttonPin); 
    if (buttonState == HIGH) { 
    Serial.println("1"); 
    buttonState=LOW; 
    delay(20000); 
    int a =0; 
     while(a==0){ 
     if (something) 
      a=1; 
     } 
    } 
} 

然後在您選擇的條件,您將退出循環。