2016-06-17 2 views
0

私は質問したいと思います。 私はシリアルモニタを使ってLEDプロジェクトをやっています。 シリアルモニタ1のキーを1回押すと、シリアルモニタ2の2番目のキーを押すまでLED 1が点灯し、LED 2が点灯します。ARDUINO:ホールド値&シリアルモニタ

どうすればいいですか?遅延()による ?または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); 
} 

の下に示されているようにあなたは、フラグを使用することができますが、この情報がお役に立てば幸いです。

関連する問題