Simple Matlab & Arduino Serial Communication

조회 수: 71 (최근 30일)
Tyler
Tyler 2013년 7월 1일
댓글: Ana-Maria Moga 2021년 7월 24일
I am attempting a running the following program and am getting strange results. After opening the serial port, the Arduino sends a "Ready" command to matlab. Then it sends a uint16 (2 bytes) value of 500 to the arduino. The arduino simply echoes what was received back to matlab in HEX.
When I run this I expect readData to equal 0x01F4, but I get 0xC0F4. Any suggestions?
Arduino CODE:
byte incomingByte1;
void setup(){
pinMode(2,OUTPUT);
Serial.begin(115200);
Serial.println("Ready");
}
void loop() {
digitalWrite(2,LOW); //turn off LED
delay(500);
if (Serial.available() > 0) {
digitalWrite(2,HIGH); //flash LED everytime data is available
delay(500);
incomingByte1 = Serial.read(); //read incoming data
Serial.println(incomingByte1,HEX); //print data
}
}
Matlab CODE:
clear
clc
s=serial('COM7','BaudRate',115200);
fopen(s);
readData=fscanf(s) %reads "Ready"
writedata=uint16(500); %0x01F4
fwrite(s,writedata,'uint16') %write data
for i=1:2 %read 2 lines of data
readData=fscanf(s)
end
fclose(s);
delete(s);
OUTPUT:
readData =
Ready
readData =
F4
readData =
C0
  댓글 수: 3
avram alter
avram alter 2019년 2월 14일
It's been nearly 6 years, but from the bottom of my heart, thank you. this thing actually worked to solve my problems.
Ana-Maria Moga
Ana-Maria Moga 2021년 7월 24일
Thank you for this!

댓글을 달려면 로그인하십시오.

답변 (1개)

islam dib
islam dib 2020년 12월 8일
Hello,
How can I read data sending from arduino via serial port, in Matlab?
  댓글 수: 2
Jan Dustin Tengdyantono
Jan Dustin Tengdyantono 2021년 2월 18일
fscanf(s);
islam dib
islam dib 2021년 3월 4일
I mean not just read,open and read and print them !!?

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 MATLAB Support Package for Arduino Hardware에 대해 자세히 알아보기

제품

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by