如何使用C#打开单个Arduino端口?

时间:2009-08-29 23:57:01

标签: c# .net hardware microcontroller arduino

我有一个Arduino Duemilanove USB。我只有一个LED连接到它上面的一个端口。我想用C#打开这个LED。有一个简单的例子说明如何做到这一点?只是最基本的开/关代码是我正在寻找的。

另一方面,我知道有一些库是为与Arduino进行.NET通信而编写的。我发现所有人都使用Firmata而我无法让Firmata库与我的Arduino一起工作,所以我只是在寻找一个只使用原始串行命令的简单例子。

5 个答案:

答案 0 :(得分:5)

我认为 .NET form to interface with Arduino 可以回答你的问题。

答案 1 :(得分:1)

尝试将波特率设置为57600而不是默认的115200,这有望让Firmata与您的Duemilanove一起工作。老实说,我仍然试图通过Firmata库来获取Python,以了解它是如何使用协议的,所以我可以在一个项目中使用它而不是仅使用Arduino作为接口。

然而,与此同时,这使得Firmata工作(阻力最小的路径)。

答案 2 :(得分:0)

视频 C# with Arduino 正是这样做的,这可能有所帮助,而且它有源代码可用。

答案 3 :(得分:0)

在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将关闭。

答案 4 :(得分:-2)

我认为Firmata项目是您一直在寻找的。

Firmata是一种通用协议,用于与主机上的软件进行微控制器通信。它适用于任何主机软件包。现在有许多语言的匹配对象。为其他软件添加对象很容易使用此协议。基本上,该固件建立了一个协议,用于从主机软件与Arduino通信。目的是让人们从主机上的软件中完全控制Arduino。

更多资源:

Firmata.Net Project

Arduino/firmata library for Visual C# .NET