Simple Matlab & Arduino Serial Communication
18 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
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 Commenti
avram alter
il 14 Feb 2019
It's been nearly 6 years, but from the bottom of my heart, thank you. this thing actually worked to solve my problems.
Risposte (1)
islam dib
il 8 Dic 2020
Hello,
How can I read data sending from arduino via serial port, in Matlab?
2 Commenti
Vedere anche
Categorie
Scopri di più su MATLAB Support Package for Arduino Hardware in Help Center e File Exchange
Prodotti
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!