我有一个Arduino Duemilanove USB。我只有一个 LED 连接到它的单个端口。我想用 C# 来打开这个 LED。有没有一个简单的例子来说明如何做到这一点?我正在寻找的只是最基本的开/关代码。
附带说明一下,我知道有一些为 .NET 与 Arduino 通信而编写的库。我发现的那些都使用Firmata,我无法让 Firmata 库与我的 Arduino 一起工作,所以我正在寻找一个仅使用原始串行命令的简单示例。
我有一个Arduino Duemilanove USB。我只有一个 LED 连接到它的单个端口。我想用 C# 来打开这个 LED。有没有一个简单的例子来说明如何做到这一点?我正在寻找的只是最基本的开/关代码。
附带说明一下,我知道有一些为 .NET 与 Arduino 通信而编写的库。我发现的那些都使用Firmata,我无法让 Firmata 库与我的 Arduino 一起工作,所以我正在寻找一个仅使用原始串行命令的简单示例。
我认为与 Arduino 交互的 .NET 表单可以回答您的问题。
尝试将您的波特率设置为 57600 而不是默认的 115200,这有望让 Firmata 与您的 Duemilanove 一起工作。老实说,我仍在尝试通过 Python 的 Firmata 库来了解它是如何使用该协议的,这样我就可以在一个不会专门使用 Arduino 作为接口的项目中通过直接串行通信使用它。
然而,与此同时,这让 Firmata 工作(阻力最小的路径)。
Arduino的视频C#正是这样做的,这可能会有所帮助,并且它有可用的源代码。
在 PC 端,与 COM 端口通信非常简单。所有你需要的是:
System.IO.Ports.SerialPort port = new SerialPort("COM4"); //COM4 is my port. You can use yours.
port.Write(new byte[]{1},0,1);
port.Close();
然后在 Arduino 上:
if (Serial.available() > 0)
{
val = Serial.read();
if(val==1)
{
//LED ON
}
if(val==0)
{
//LED OFF
}
}
因此,当您向端口写入 1 时,LED 将亮起,如果为 0,则 LED 将关闭。