a comunicación en serie entre Arduino y Matlab está perdiendo dato
Ahora estoy tratando de establecer la comunicación en serie entre Arduino y Matlab. El guión es muy simple:
Matlab envía un número llamadoi
a Arduino;
Arduino recibe estei
, luego envíelo de regreso a Matlab;
Repita los pasos 1 y 2 10 veces, es decir, Matlab envía 1,2, ..., 10 a Arduino, luego recibe el 1,2, ..., 10 de Arduino. Sin embargo, Matlab solo obtiene 3,4, ..., 10, mientras que los primeros i = 1 e i = 2 se pierden (ya hice el inputbuffersize = 200 ahora, todavía no está bien).
Aquí está el código de Matlab:
clc,clear;
s=serial('COM16','BaudRate',9600);
s.InputBufferSize = 200;
fopen(s);
a=10;
rx = zeros(1, a); % rx is used to store the data send back by Arduino
ry = zeros(1, a); % ry is just helping me to see what happens in Serial
for i = 1:1:a
fwrite(s, i); % Start to write the value "i" through serial to Arduino
pause(0.5) % if no pause, the result is worse than now
ry(i) = s.BytesAvailable; % check how many data are there in the Buffer
if s.BytesAvailable>0
rx(i) = fread(s, s.BytesAvailable); % Record the data send by Arduino
end
end
fclose(s);
Y el Código Arduino:
char ibyte;
void setup()
{
Serial.begin(9600);
}
void loop()
{
if(Serial.available()>0)
{
ibyte=Serial.read();
Serial.write(ibyte);
}
}
Mi enlace de referencia es:http: //robocv.blogspot.com/2012/01/serial-communication-between-arduino.htm