シリアル入力から int を解析し、ソレノイドを開く単純な Arduino プログラムがあります。Arduino シリアル モニター (古い Arduino、 ATmega168 を搭載したDiecimila ) と完全に連携します。
私が持っている目標は、コマンド プロンプトからそのデータを Arduino に送信することです。次のコマンドを実行して、コマンド プロンプトの com 設定が正しいことを確認しました。
mode com7:9600,n,8,1
ただし、解析する整数を送信しようとすると、何も起こりません。次に例を示します。
ECHO 2 > COM7
また、ECHO '2' > COM7、ECHO "2" > COM7、(ECHO 2) > COM7、および考えられる他のすべてのバリエーションも試しました。
EDIT注意してください、私はArduino Serial Monitor、PuTTY、およびHyperTerminalでこれを試しました。これらのプログラムはすべて Arduino と正常に通信し、ソレノイドは期待どおりに開きます。また、ケース番号を一重引用符で囲んだり、付けたりせずにSerial.parseInt()
、以下のコードを試しました。Serial.read()
繰り返しますが、上記の 3 つのプログラムではすべての場合に機能しましたが、コマンド プロンプトでは機能しませんでした。
編集ここに私が取り組んでいるスケッチがあります:
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;
}
}
}