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程序,实验成功!