我有一个简单的 Arduino 程序,它从串行输入中解析一个 int 并打开一个螺线管。它与 Arduino 串行监视器(旧 Arduino,带 ATmega168的Diecimila )完美配合。
我的目标是从命令提示符将该数据发送到 Arduino。我已经通过运行确保命令提示符 com 设置正确:
mode com7:9600,n,8,1
但是,当我尝试将整数发送给它进行解析时,什么也没有发生,例如:
ECHO 2 > COM7
我也尝试过 ECHO '2' > COM7, ECHO "2" > COM7, (ECHO 2) > COM7 以及我能想到的所有其他变体。
编辑请注意,我已经使用 Arduino Serial Monitor、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;
}
}
}