2012-07-04 388 views
0

我正在編程一個Arduino,以便在串口接收到某些信息時打開LED。我已經完成了這個工作,它已經收到了數據,但是在LED關閉之後,它一直在繼續。這是我目前的代碼:清除Serial.read()中的數據

int ledPin = 13; 

void setup() { 
    pinMode(ledPin, OUTPUT); 
    Serial.begin(9600); 
} 

void loop() { 
    if(Serial.available() > 0) { 
    Serial.print("RECEIVED_CALL"); 
    digitalWrite(ledPin, HIGH); 
    delay(4500); 
    digitalWrite(ledPin, LOW); 
    Serial.clear(); 
    } 
} 

請留下任何建議。

+0

你有一個原因,你有一個4500毫秒,即4.5秒的延遲?此外,如果您仍然有數據可用,它將立即開啓。嘗試添加一個延遲後,您將該引腳設置爲低電平 –

+0

1.我需要4.5秒 2.我會嘗試 – cheese5505

回答

0

添加一些調試語句(如Serial.print("LED_OFF"))以確保您的Arduino沒有按照我的文章here中所述接收到串行數據後重新啓動。

這可能導致光線持續亮起。如果您發送足夠的串行數據,它可能會一遍又一遍地重新啓動。