arduino与c#上位机点灯实例的上下位机通讯

2025-11-08 02:10:21

1、这里是上位机C#编写的程序的主程序

namespace 假期作业

{

    public partial class Form1 : Form

    {

        SerialPort port;

        public Form1()

        {

            InitializeComponent();

            this.FormClosed += new FormClosedEventHandler(Form1_FormClosed);

            comboBox1.Items.Add("1200");

            comboBox1.Items.Add("2400");

            comboBox1.Items.Add("4800");

            comboBox1.Items.Add("9600");

            comboBox1.Items.Add("14400");

            comboBox1.Items.Add("19200");

            comboBox1.Items.Add("28800");

            comboBox1.Items.Add("38400");//常用的波特率

            try

            {

                string[] ports = SerialPort.GetPortNames();//得到接口名字

                //将端口列表添加到comboBox

                this.comboBox2.Items.AddRange(ports);

                ///设置波特率

                port.BaudRate = Convert.ToInt32(comboBox1.Text);

            }

            catch (Exception ex)

            {

                if (port == null)

                {

                    //COM7为Arduino使用的串口号,需根据实际情况调整

                    port = new SerialPort("COM7", 9600);

                    port.Open();

                }

            }

            

        }

        

        void Form1_FormClosed(object sender, FormClosedEventArgs e)

        {

            if (port != null && port.IsOpen)

            {

                port.Close();

            }

        }        

2、这里是arduino下位机的程序

int LED2 = 2;

int LED3 = 3;

int LED4 = 4;

int LED5 = 5;

int LED6 = 6;

int LED7 = 7;

int LED8 = 8;

int LED9 = 9;

String serialString = "";//串口数据缓存字符串

void setup()

   pinMode(LED9, OUTPUT); 

  pinMode(LED2, OUTPUT); 

  pinMode(LED3, OUTPUT);

  pinMode(LED4, OUTPUT); 

  pinMode(LED5, OUTPUT); 

  pinMode(LED6, OUTPUT); 

  pinMode(LED7, OUTPUT);

  pinMode(LED8, OUTPUT);   

  

  Serial.begin(9600);   

  serialString.reserve(200);//初始化字符串

}

void loop()

    char receiveVal ;//串口数据缓存字符串

    if(Serial.available() > 0)

    {        

        receiveVal = Serial.read();

        

       if( receiveVal == '1')    

          digitalWrite(LED2, HIGH);

      else if(receiveVal == '2') 

          digitalWrite(LED3, HIGH);

       else if(receiveVal == '3') 

          digitalWrite(LED4, HIGH);

       else if(receiveVal == '4') 

          digitalWrite(LED5, HIGH); 

       else if(receiveVal == '5') 

          digitalWrite(LED6, HIGH);

       else if(receiveVal == '6') 

          digitalWrite(LED7, HIGH);

       else if(receiveVal == '7') 

          digitalWrite(LED8, HIGH);

       else if(receiveVal == '8') 

           digitalWrite(LED9, HIGH);

           

       else if(receiveVal == 'a') 

          digitalWrite(LED2, LOW);

          else if(receiveVal == 'b') 

          digitalWrite(LED3, LOW);

       else if(receiveVal == 'c') 

          digitalWrite(LED4, LOW);

       else if(receiveVal == 'd') 

          digitalWrite(LED5, LOW); 

       else if(receiveVal == 'e') 

          digitalWrite(LED6,LOW);

       else if(receiveVal == 'f') 

          digitalWrite(LED7,LOW);

       else if(receiveVal == 'g') 

          digitalWrite(LED8, LOW);

       else if(receiveVal == 'h') 

           digitalWrite(LED9, LOW);

           

        

     

    }   

      

       

}

3、最后这里是效果图,这个图片里有点灯和熄灯的介绍

请参考上面程序看

arduino与c#上位机点灯实例的上下位机通讯

arduino与c#上位机点灯实例的上下位机通讯

arduino与c#上位机点灯实例的上下位机通讯

arduino与c#上位机点灯实例的上下位机通讯

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢