我正在制作一个 Visual C# 可执行文件,我想使用一个 for 循环,它为下面 Arduino 代码中定义的 3 个 LED 的两种情况发送“A”和“B”:
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 次 - 等于文本框中的数字)。
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);
}
我意识到我的程序中的循环很快就完成了(发送一堆 AB 然后停止),而我的 Arduino 继续运行直到它完成。有什么方法可以延迟我的程序吗?我读到线程选项不是一种合适的方式,因为它会产生问题......有什么建议吗?