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