我有一個簡單的Arduino程序,從串行輸入中分析一個int並打開一個solenoid。它可以與Arduino串行監視器完美配合(舊款Arduino,帶有ATmega168的Diecimila)。命令提示符重定向到Arduino不工作
我的目標是將這些數據從命令提示符發送到Arduino。我已經確信命令提示符COM設置是否正確運行:
mode com7:9600,n,8,1
然而,當我試圖把它整它來解析,什麼也沒發生,例如:
ECHO 2 > COM7
我也嘗試了ECHO'2'> COM7,ECHO「2」> COM7,(ECHO 2)> COM7以及我能想到的所有其他變體。
編輯只是要注意,我已經與Arduino的串行監視器,PuTTY和HyperTerminal嘗試這個。所有這些程序都和Arduino很好地溝通,並且螺線管按照預期打開。我也嘗試了Serial.parseInt()
而不是Serial.read()
的下面的代碼,並且帶和不帶單引號圍繞案例編號。在所有情況下,它再次與上述三個程序一起工作,但與命令提示符不同。
編輯這裏是我一起工作的草圖:
int incoming;
void setup()
{
Serial.begin(9600);
pinMode(2, OUTPUT);
pinMode(4, OUTPUT);
pinMode(6, OUTPUT);
pinMode(8, OUTPUT);
}
void loop()
{
if (Serial.available > 0)
{
incoming = Serial.read();
switch(incoming)
{
case '1':
digitalWrite(2, HIGH);
delay(2000);
degitalWrite(2, LOW);
break;
case '2':
digitalWrite(4, HIGH);
delay(2000);
degitalWrite(4, LOW);
break;
case '3':
digitalWrite(6, HIGH);
delay(2000);
degitalWrite(6, LOW);
break;
case '4':
digitalWrite(8, HIGH);
delay(2000);
degitalWrite(8, LOW);
break;
}
}
}
非常感謝你的回覆! – user1452763
我還沒有嘗試過冒號,只要我回家,我會試試。我很確定這不是導致此問題的CR/LF序列,因爲當我用PuTTY打開連接並且一切仍然正常時,我嘗試了CR/LF響應。到目前爲止,該連接已經與Arduino串行監視器,PuTTY和超級終端協同工作。 – user1452763
com7之後的冒號未改變結果。我已經在Arduino串行監視器和PuTTY中嘗試了所有不同的行結束類型,並且它在所有情況下都能正常工作。還有什麼想法? – user1452763