How to send data from MATLAB to Arduino an?

Hi, I was wondering how do I send data from MATLAB , say a number ,5 to my Arduino board. The board contains some code in it. For simplicity lets assume it multiplies the incoming number with 4. The output , 20 ,should be displayed in the command window. Is this possible ? I know about a.roundTrip('data') function. But the one in my query is something different. (I work on R2010a)

 채택된 답변

Jonathan
Jonathan 2012년 12월 18일
편집: Jonathan 2012년 12월 18일

0 개 추천

I suppose you could do it through serial connections. If you have a serial port (or a serial to USB adapter and driver) you can create and open a COM object in MatLab to communicate with the Arduino board (usually arduino terminals D0 and D1 are serial TX/RX).
The code would be something like:
arduinoCom = serial('COM3','BaudRate',9600 . . . ); % insert your serial
%properties here
sendData = 5;
fopen(arduinoCom);
fprintf(arduinoCom,'%i',sendData); %this will send 5 to the arduino
fscanf(arduinoCom) %this will read response
%or use BytesAvailableFcn property of serial
You will have to look into using the correct terminators and do a bit of configuration with that. Let me know if this makes sense. Usually terminators are something like a linefeed / carriage return or an symbol (*, $, etc.)

댓글 수: 2

Akarsh Sinha
Akarsh Sinha 2013년 3월 29일
Thanks Jonathan. I've figured out another way to do it. The Arduino IO Package works perfectly.It allows you to use Simulink too.
Break  Freezy
Break Freezy 2015년 3월 12일
Please can you help me , i wanna send 4 data from matlab to arduino how to realise without taping in command of matlab ?

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

추가 답변 (4개)

Nthai Papala
Nthai Papala 2015년 11월 19일

0 개 추천

I need assistance. I need to send a binary data, say random bits (1 byte for example) from one computer to the other using LED and a phototransistor. The data must be generated in matlab and be sent over a serial port through arduino. I am using matlab 2015a and Arduino Uno and i need codes for both Arduino and Mat Lab.
Thanks in advance

댓글 수: 3

Walter Roberson
Walter Roberson 2015년 11월 20일
Please open a new Question for this.
Busra AYDIN
Busra AYDIN 2021년 1월 25일
hi, did you solve your problem?
hi i have same project ...can you send me detail of your work...reyhane.jalil.karim@gmail.com

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

Rouis Jihene
Rouis Jihene 2017년 7월 20일
편집: Walter Roberson 2017년 7월 20일

0 개 추천

Hello,
I want to send a value from matlab to arduino,i tried this code but it doesn't work:
in Arduino:
void setup() {
Serial.begin(9600);}
void loop() {
if (Serial.available()) {
Serial.println(Serial.read());}
}
In matlab:
a=serial('com7');
val=20;
fopen(a);
fwrite(a,'%i',val);
fclose(a);
Do you have any solution ? Please help and thanks.
Walter Roberson
Walter Roberson 2017년 7월 20일

0 개 추천

Change
fwrite(a,'%i',val);
to
fprintf(a,'%i',val);

댓글 수: 6

Rouis Jihene
Rouis Jihene 2017년 7월 20일
same problem!!! :( In this code, should i precise RX and TX pins?
No, it is not possible to specify the RX or TX pins for serial ports. RX and TX pins are part of the hardware interface level: you either wired them through the right way or you did not wire them through the right way.
The fact that you used COM7 suggests to me that you might be using a USB to serial convertor. If so then likely the correct wires have already been used.
Are you able to talk to the ardiuno if you use the arduino() command? https://www.mathworks.com/help/supportpkg/arduinoio/setup-and-configuration.html
Rouis Jihene
Rouis Jihene 2017년 7월 20일
Yes, i'am able to talk with Arduino using arduino() command, there is no problem in this point.
Rouis Jihene
Rouis Jihene 2017년 7월 20일
Do you know what's the most weird thing, that i'am able to send value from arduino to matlab without having any problem ! Do you believe in this ? Is it logical ?!
Try
fprintf(a,'%d\n',val);
Rouis Jihene
Rouis Jihene 2017년 7월 20일
Same problem! Do you have any other solution?(using Bluetooth or something else)

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

Syahmi Noordin
Syahmi Noordin 2018년 4월 29일
편집: Syahmi Noordin 2018년 4월 29일

0 개 추천

Hi, I want to ask about how to transfer more than one value from matlab GUI to arduino? I put 3 edit text functions in the Gui so I want the user to input value in each edit text function and those three values must be send to arduino for further calculation. Thanks.

댓글 수: 1

get() the String property of the handles. fprintf(a, '%s %s %s\n', str1, str2, str3) where a is the arduino connection. This assumes that you want spaces between the strings and newline after the group of three.
You should probably do some sanity checking to be sure the strings are not empty and represent valid numbers.

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

카테고리

도움말 센터File Exchange에서 MATLAB Support Package for Arduino Hardware에 대해 자세히 알아보기

제품

태그

질문:

2012년 12월 16일

댓글:

2021년 9월 2일

Community Treasure Hunt

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

Start Hunting!

Translated by