在Visual Studio2019 中获取arduino端口的信息

一、基础设置

选择的是unity2019.4.12f,Visual Studio2019
1.VS中的设置
新建一个unity工程,然后新建一个arduino的C#脚本,在脚本的头文件中添加System.IO,System.Threading,System.IO.Ports,using System。
此时程序会显示出错,即System.IO.Ports无法识别,此时需要更改.net 版本,详见
unity2019.4.12f无法添加System.IO.Parts头文件的解决方法

二、例子

通过VS代码控制一个小灯泡的开关
首先建立一个C#脚本,并挂在一个物体上。
在这里插入图片描述
定义基本信息;

 //定义基本信息
    string portName_1 = "COM4";
    int baudRate = 9600;
    Parity parity = Parity.None;
    int dataBits = 8;
    StopBits stopBits = StopBits.One;

    SerialPort serialPort_1 = null;

//打开端口

public void OpenPort()
    {
        serialPort_1 = new SerialPort(portName_1, baudRate, parity, dataBits, stopBits);

        try
        {
            serialPort_1.Open();
            Debug.Log("Open port success.");
        }
        catch(Exception ex)
        {
            Debug.Log(ex.Message);
        }

    }

关闭端口

 public void ClosePort()
    {
        try
        {
            serialPort_1.Close();
        }
        catch(Exception ex)
        {
            Debug.Log(ex.Message);
        }
    }

写入数据

public void WriteData(string dataStr)
    {
        if(serialPort_1.IsOpen)
        {
            serialPort_1.Write(dataStr);
            Thread.Sleep(50);
        }
        else
        {
            Debug.Log("Port is not opened");
        }
    }

调用
void Start()
{
OpenPort();
char temp1 = ‘h’;
WriteData(temp1.ToString());
}
即可完成在VS部分的设置。

arduino中的代码

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  
  pinMode(3,OUTPUT);
  pinMode(4,OUTPUT);
  pinMode(6,OUTPUT);
  pinMode(9,OUTPUT);
}
int delayTime=167;
int voltage;
int p1=4;
void loop() {
  // put your main code here, to run repeatedly:
char key2=Serial.read();//读取来自VisualStudio的数据
if(key2!=-1)
{
  if(key2=='h')
  {
    voltage=153;
  analogWrite(p1,voltage);
   
  }
}

}

版权声明:本文为qq_39503828原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。