操作這篇以前,必須完成Arduino HC-05與電腦間藍芽的配對
可參考
Set up HC-05 Bluetooth
一、Arduino Code
將以下程式碼透過USB傳入Auduino
#include <SoftwareSerial.h>
SoftwareSerial BTSerial(3,2); // TX | RX
int val = 1;
void setup()
{
Serial.begin(9600);
BTSerial.begin(38400);
}
void loop()
{
if (BTSerial.available())
{
Serial.write(BTSerial.read());
val = BTSerial.read();
//MATLAB傳給HC-05後讀到的指令為val
}
BTSerial.print(2);
//HC-05將2傳給MATLAB
delay(500);
}
二、MATLAB code
將電腦連線至藍芽
b=Bluetooth('your Bluetooth name',1);
等待MATLAB將b的資料處理完成,執行
fopen(b)
HC-05的LED慢速閃爍後,此時USB依然接在Arduino上
開啟序列埠監控視窗
MATLAB送Arduino收
MATLAB送出
fwrite(b,[1 123])
此時監控視窗會顯示123
即Serial.write(BTSerial.read());這行指令的效果
fwrite(b,123)也可以,但接受字元上會多一個空隔
故改變成矩陣型式
fwrite(b,[1 你要傳的指令])
指令可以接受1~255的數字去做變化
我們可以在Arduino中寫入
if (val == 123)
{
讓LED亮燈}
elseif(val == 321)
{
讓LED熄滅}
end
藉此透過藍芽遙控Arduino
Arduino送MATLAB收
要接收藍芽發收的訊息,使用MATLAB輸入
a = fread(b,1);
則可以得到
>> a = 2
是BTSerial.print(2);的效果
Arduino會每隔0.5秒就發送一次2
可使用MATLAB去接收