我想要通过我的C#程序联系Arduino上的代码来打开和关闭板载(引脚13)LED。这是我已经加载到Arduino的代码:打开Arduino LED
void setup()
{
Serial.begin(9600);
pinMode(13, OUTPUT);
}
void loop()
{
if (Serial.available() > 0)
{
int b = Serial.read();
if (b == 1)
{
digitalWrite(13, HIGH);
}
else if (b == 0)
{
digitalWrite(13, LOW);
}
Serial.flush();
}
}
我已经找到并下载this code,得到了LED的工作! (Hooray!)
我试图用简单的OnButton和OffButton将代码逆向工程化成我自己的代码,但它不起作用。有人可以看看下面的代码,并告诉我,如果我错过了明显的东西。
using System.IO;
using System.IO.Ports;
public static System.IO.Ports.SerialPort serialPort1;
private delegate void LineReceivedEvent(string line);
private void establishConnection()
{
System.CompnentModel.IContainer components = new System.ComponentModel.Container();
serialPort1 = new System.IO.Ports.SerialPort(components);
serialPort1.PortName = "COM7";
serialPort1.BaudRate = 9600;
serialPort1.DtrEnable = true;
serialPort1.Open();
}
private void terminateConnection()
{
serialPort1.Close();
}
private void OnButton_Click(object sender, EventArgs e)
{
establishConnection();
serialPort1.Write(new byte[] { Convert.ToByte("1") }, 0, 1);
terminateConnection();
}
private void OffButton_Click(object sender, EventArgs e)
{
establishConnection();
serialPort1.Write(new byte[] {Convert.ToByte("0") }, 0, 1);
terminateConnection();
}
任何帮助将不胜感激。我可以看到,当我点击Ardiuno正在接收某种命令的C#按钮时,它可以与我在上面的链接中下载的代码一起工作...我将我的头发拉出...
多少次,你实际上是建立,你是不是终止连接? –
糟糕,忘记在那里输入Terminate行。我正在测试有没有它。 –
我刚添加完整的代码,包括terminateConnection(); –