私はVisual C#実行可能ファイルを作成していますが、3ループのArduinoコードで定義されている2つのケースで 'A'と 'B'を送信するforループを使用します。Visual C#の遅延 - Arduino
int data;
void setup() {
Serial.begin(9600);
pinMode(11, OUTPUT);
pinMode(12, OUTPUT);
pinMode(13, OUTPUT);
}
void loop() {
if (Serial.available()){
data=Serial.read();
if (data=='A'){
digitalWrite(12, HIGH);
digitalWrite(11, LOW);
delay(2000);
digitalWrite(13, HIGH);
delay(500);
digitalWrite(13, LOW);
delay(500);
digitalWrite(13, HIGH);
delay(500);
digitalWrite(13, LOW);
delay(500);
}
else{
digitalWrite(12, LOW);
digitalWrite(11, HIGH);
delay(10000);
}
}
}
これは私のVisual C#コードで、テキストボックスからループの数を取得し、AB、AB、...(n回 - テキストボックスの数字に等しい)です。私のArduinoのは、それが終了するまでいっている間、
if (textBox1.Text != "")
{
int LoopNum = Convert.ToInt32(textBox1.Text);
for (int i=0; i < LoopNum; i++)
{
serialPort1.Write("A");
serialPort1.Write("B");
}
}
else
{
MessageBox.Show("Please select the number of cycle!", "My Application", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
}
私は私のプログラムでループを実現は、(ABSの束を送信し、停止した)非常にすぐに終了します。 私のプログラムに遅延を追加する方法はありますか?私はそれが問題を作成するので、スレッドオプションは適切な方法ではないことをお読みください...任意の提案?
私はあなたのsendとsendの間にserialport1.flushを入れたいと思っています。 –
@Someonethatmattersあなたのコメントをありがとう。私はserialport1.basestream.flush()を試した。それは何もしません。 Arduinoが1分後に終了している間、私のC#ループは2番目に終了します。 – Kamran