ARDUINO:保持价值观&串口监视器

时间:2016-06-17 01:25:44

标签: arduino

我想问一下。 我正在使用串行监视器进行LED项目。 如果按下串口监视器1的键一次,LED 1将亮起,直到按下串行监视器2的第二个键,LED 2将亮起。

我该怎么做? 通过延迟()?还是抱着()?

1 个答案:

答案 0 :(得分: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);
}

希望这有帮助。