2016-06-17 3 views
0

나는 묻고 싶다. 시리얼 모니터를 사용하여 LED 프로젝트를하고 있습니다. 직렬 모니터 1의 키를 한 번 누르면 직렬 모니터 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); 
} 

희망 아래 입증 된 바와 같이

당신은 플래그를 사용할 수 있습니다.

관련 문제