Arduino应用笔记(三)这一篇和(二)方法不同:Matlab利用串口通信控制Arduino点亮LED

1、实现原理

    与上一篇的方法不同,这一次的方法是Matlab利用串口发送函数给Arduino发送一个字符,一旦Arduino接收到字符之后,就执行对应的任务。

2、Arduino部分的代码

int pin = 8; //LED的管脚
void setup() {
pinMode(pin, OUTPUT); //设置管脚为输出模式 
Serial.begin(9600);
}

void loop()
{
  if(Serial.read()=='1')
  {
    digitalWrite(pin, 1);
  }
  if(Serial.read()=='0')
  {
    digitalWrite(pin, 0);
  }
}

代码不难,然后接下来就是把代码烧到Arduino里面去。

3、Matlab部分代码

首先还是新建一个GUI界面,界面也很简单,就两个按钮:

然后我们在xx_OpeningFcn函数里面进行一些全局变量的初始化:

global Port;
Port=serial('COM9');
set(Port,'BaudRate',9600);  %设置波特率
set(Port,'DataBits',8); %8位数据位

set(Port,'StopBits',1);  %1位停止位
fopen(Port); %打开串口

 

接下来是两个按钮的回调函数的程序:

LED亮按钮的

global Port;
%fwrite(Port,'1'); %fwrite和fprintf都可以
fprintf(Port,'1');

LED灭按钮的

global Port;
fwrite(Port,'0');

然后就是连接外围电路,执行Matlab程序,实验成功!

猜你喜欢

转载自blog.csdn.net/u014751607/article/details/71308011