使用C#表单将代码上载到Arduino UNO

使用C#表单将代码上载到Arduino UNO,c#,upload,arduino,C#,Upload,Arduino,我用C#构建了一个项目,可以用它控制RGB led。我的目标是建立一个功能,可以上传控制LED的代码。因此,我需要以下问题的帮助: 表单上有一个按钮和一个富文本框。富文本框的文本包含源代码,如果您按下按钮,这些源代码应上传到arduino。我知道如何打开端口,但我不知道如何上传源代码 我的代码: namespace RGBLedColorPicker { public partial class Form1 : Form { SerialPort port = n

我用C#构建了一个项目,可以用它控制RGB led。我的目标是建立一个功能,可以上传控制LED的代码。因此,我需要以下问题的帮助:

表单上有一个按钮和一个富文本框。富文本框的文本包含源代码,如果您按下按钮,这些源代码应上传到arduino。我知道如何打开端口,但我不知道如何上传源代码

我的代码:

namespace RGBLedColorPicker
{
    public partial class Form1 : Form
    {
        SerialPort port = new SerialPort("COM3", 9600);
        private Color defaultColor = Color.FromArgb(0, 0, 0);

        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            try
            {
                port.Open();
                this.SetColor(defaultColor);
            }
            catch
            {
                MessageBox.Show("Cant find Arduino.Closing programm");
                Application.Exit();
            }
        }

        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            this.SetColor(defaultColor);
            port.Close();
        }

        private void panel1_Click(object sender, EventArgs e)
        {

        }

        private void SetColor(Color color)
        {
            port.Write(new[] { color.R, color.G, color.B }, 0, 3);
        }

        private void button1_Click(object sender, EventArgs e)
        {
            this.SetColor(Color.Red);
        }

        private void button2_Click(object sender, EventArgs e)
        {
            this.SetColor(Color.Green);
        }

        private void button3_Click(object sender, EventArgs e)
        {
            this.SetColor(Color.Blue);
        }

        private void button4_Click(object sender, EventArgs e)
        {
            this.SetColor(Color.Red);
            Thread.Sleep(2000);
            this.SetColor(Color.Green);
            Thread.Sleep(2000);
            this.SetColor(Color.Blue);
            Thread.Sleep(2000);
            MessageBox.Show("Show beendet","beendet",MessageBoxButtons.OK);
            this.SetColor(defaultColor);
        }

        private void button5_Click(object sender, EventArgs e)
        {
            using (Create f2 = new Create())
            {
                f2.ShowDialog(this);
            }
        }

        private void button6_Click(object sender, EventArgs e)
        {
            this.SetColor(defaultColor);
        }

        private void button7_Click(object sender, EventArgs e)
        {
            if (colorDialog1.ShowDialog() == DialogResult.OK)
            {
                SetColor(colorDialog1.Color);
            }
        }
    }
}

你为什么要做这样的事?我不认为您可以通过串行端口上传代码,然后在arduino上执行(但在这方面我可能错了)。但是,为什么不开发一个在arduino上运行的应用程序,监听传入的串行端口数据,然后将这些数据转换为要执行的命令(如更改LED颜色)。我尝试构建一个程序来控制RGB LED。arduino需要一个密码。否则你不能运行这个src。我想建立一个表单,让富文本中的代码代表这个表单。在文本框下面有一个按钮,你可以上传代码。你读了吗?这说明了如何将代码复制到Arduino。您不必将代码从C#应用程序复制到Arduino,您可以在开发Arduino代码的IDE中执行此操作。还是我在这里遗漏了什么?为什么要将代码放在C#应用程序中?