Matlab - Arduino Due - Mac OS X problem

조회 수: 1 (최근 30일)
Giacomo Pedretti
Giacomo Pedretti 2015년 4월 17일
Hi, i've been trying to implement a stable serial connection between matlab and arduino due. What i have to do is pretty simple, i have a string of 8 values (0 or 1), i want to send it to arduino and process it in a loop to turn on and off a digital output consequently. I have a couple of problems: 1 - sometimes Matlab gives me the error (only sometimes, no clue why) Open failed: Port: /dev/tty.usbmodemfa131 is not available (port name is an example, i always check for the name and modify it) while the port is connected as i can see from terminal or trough other serial communication tools (arduino IDE) (and yes i closed all the other tools before) 2 - arduino is not receiving the right values, in fact if i monitor the received string i have some 5 and 3 values, no clue why. Can somebody help me plese? The matlab code is:
clc
answer=1; % this is where we'll store the user's answer
arduino=serial('/dev/tty.usbmodemfa131','BaudRate',9600) % create serial communication object on port tty.usbmodemfa131
fopen(arduino); % initiate arduino communication
v1 = [0 1 0 1 0 1 0 1];
while answer < 8
fprintf(arduino,'%s',char(v1(answer))); % send answer variable content to arduino
answer = answer+1;
pause(0.5);
end
fclose(arduino); % end communication with arduino
and the arduino code is
int matlabData [8];
int i=0;
void setup()
{
pinMode(13,OUTPUT);
pinMode(12,OUTPUT);
Serial.begin(9600);
}
void loop()
{
for(i=0;i<7;i++){
if(Serial.available()>0) // if there is data to read
{
matlabData[i]=Serial.read(); // read data
}
}
i=0;
for(i=0;i<7;i++){
digitalWrite(13,matlabData[i]);
digitalWrite(12,matlabData[i]);
delay(500);
}
}
Can somebody help me please? thank you

답변 (0개)

카테고리

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