arduino与c#上位机点灯实例的上下位机通讯
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、最后这里是效果图,这个图片里有点灯和熄灯的介绍
请参考上面程序看



