只是嘗試了一些東西,因爲我想用我的Arduino Nano作爲我的電腦與幾個LED和按鈕的接口。所以我需要從我的電腦向Arduino發送一些命令和數據。但是我發現Arduino的串行通訊相當慢。事實上,從我按Enter鍵發送命令到串行監視器的那一刻起,執行命令(在這種情況下控制LED)需要幾乎一秒的時間。與arduino緩慢的串行通信?延遲將近1秒?
這是一個限制,或者我可以加快它?
這裏是我的簡單的代碼:
String cmd;
int loopNum;
int ledPin = 13;
void setup() {
Serial.begin(9600);
pinMode(ledPin, OUTPUT);
}
void loop() {
if(loopNum == 0) {
Serial.println("Waiting for commands"); // Only display this when sketch is initiated.
}
cmd = Serial.readString();
if(cmd == "LEDON") {
digitalWrite(ledPin, HIGH);
Serial.println("LED ON");
}
if(cmd == "LEDOFF") {
digitalWrite(ledPin, LOW);
Serial.println("LED OFF");
}
if(cmd == "HELP") {
Serial.println("Available commands:\nLEDON\nLEDOFF\nHelp");
}
loopNum++; // Counts the loop...
delay(50);
}
改變串口的波特率似乎並沒有改變任何東西。
一些幫助將不勝感激! :)
當您調用Serial.readString()時,您不檢查是否有任何可讀的內容。您發現Serial.setTimeout()的默認值是1000毫秒。 –