繁体   English   中英

Arduino com端口C#

[英]Arduino com port c#

我有一个与4个LED相连的Arduino Uno,我想使用ac#应用程序进行控制。 LED工作正常,接线正确,但是我不知道为什么我的代码不工作。 现在,我想分别打开/关闭4个LED。

我曾尝试打开arduino ide的串行监视器来监视发生的事情,但由于其他实例已经在忙那个COM端口,所以无法这样做,这意味着我只能打开arduino串行监视器或c#应用程序。

(我删除了一些括号)

C#:

namespace ArduinoLed
{
public partial class MainWindow : Window
{
    ctrl controller = new ctrl();

    public MainWindow()
    {
        InitializeComponent();
        controller.Serialopen();
    }

    public void Clicked(object sender, RoutedEventArgs e)
    {
        Button clickedButton = (Button)sender;
        controller.Click(clickedButton);
    }
}

class ctrl
{
SerialPort port = new SerialPort("COM3", 9600);

public void Serialopen()
    {
        try
        {
            port.Open();
        }
        catch (Exception)
        {
           MessageBox.Show("Fail to open port (COM3)");
        }
    }

    public void Click(Button btn)
    {
        string name = btn.Name;

        if (btn.Content == "OFF")
        {
            btn.Content = "ON";
            port.WriteLine(btn.Name + "/ON");
        }
        else
        {
            btn.Content = "OFF";
            port.WriteLine(btn.Name + "/OFF");
        }
    }
}

阿尔迪诺:

void setup() {
Serial.begin(9600);
pinMode(3, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(9, OUTPUT);

}

void loop() {
  String message;
  if (Serial.available() > 0){
  message = Serial.readString();
  Serial.println(message);

if (message == "btnOne/ON"){
  digitalWrite(3, HIGH);
}  
if (message == "btnOne/OFF"){
  digitalWrite(3, LOW);  
}  
if (message == "btnTwo/ON"){
  digitalWrite(5, HIGH);  
}  
if (message == "btnTwo/OFF"){
  digitalWrite(5, LOW);  
}  
if (message == "btnThree/ON"){
  digitalWrite(6, HIGH); 
}  
if (message == "btnThree/OFF"){
  digitalWrite(6, LOW);
}  
if (message == "btnFour/ON"){
  digitalWrite(9, HIGH); 
}  
if (message == "btnFour/OFF"){
  digitalWrite(9, LOW);  
}

调用message.trim(); 在比较值之前。 这将删除所有不可读的字符。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM