2016-06-17 68 views
0

我想問。 我在做使用串行監視器的LED項目。 如果串行監視器1的按鍵被按下一次,LED 1將點亮,直到我按下串行監視器2的第二個按鍵並且LED 2將亮起。ARDUINO:價值和串行顯示器

我該怎麼做? by delay()?或hold()?

+0

http://stackoverflow.com/help/how-to-ask –

回答

0

您不能使用delay(),因爲無法確定下一個按鍵所用的時間。

您可以使用標誌,如下面展示

int ledPin1 = 8, ledPin2 = 9; 
boolean flag1, flag2; 

void setup() 
{ 
    Serial.begin(9600); 
    pinMode(ledPin1, OUTPUT); 
    pinMode(ledPin2, OUTPUT); 
} 
void loop() 
{ 
    if(Serial.available()) 
    { 
     int c = Serial.read(); 
     if(c == 49) { // 1 is pressed 
      flag1 = true; 
      flag2 = false; 
     } 
     else if(c == 50) { // 2 is pressed 
      flag2 = true; 
      flag1 = false; 
     } 
    } 
    if(flag1) { 
     digitalWrite(ledPin1, HIGH); 
     digitalWrite(ledPin2, LOW); 
    } 
    if(flag2) { 
     digitalWrite(ledPin1, LOW); 
     digitalWrite(ledPin2, HIGH); 
    } 
    delay(50); 
} 

希望這有助於。