How to send data to the serial port 3 times

1 visualización (últimos 30 días)
George Francis
George Francis el 23 de Abr. de 2016
Comentada: George Francis el 24 de Abr. de 2016
Hello I have to send some data to my arduino. Each line separetly. But It sends me some lines together. So where should I put function fprintf? The data in penultimate example are correct but I have to send each line separetly.
clear all;
clc;
b = Bluetooth('HC-05', 1);
fopen(b);
x=[]; neg = 0;
for a=1:3
neg = neg - 1;
if (neg< -5)
neg = -1; %//wraparound
end
x = [x; [randi([0 9], 1, 5) neg]]; %//addnewrowofrandomnumbers to x
a = num2str(x);
pause(5);
fprintf(b,a);
disp(a);
end
disp('all data');
disp(a);
Disp(a) in for function
1 5 4 0 3 -1
1 5 4 0 3 -1
1 7 3 5 1 -2
1 5 4 0 3 -1
1 7 3 5 1 -2
6 2 6 6 7 -3
Disp(a) in the end of program
1 5 4 0 3 -1
1 7 3 5 1 -2
6 2 6 6 7 -3
When I have fprintf in for function it show me. First line is correct others not.
0 5 8 6 1 -1
03 54 89 61 18 --12
036 543 891 614 184 ---123

Respuestas (1)

Walter Roberson
Walter Roberson el 23 de Abr. de 2016
a = [randi([0 9], 1, 5), neg];
x(end+1, :) = a;
fprintf(b, '%d %d %d %d %d %d\n', a);
  7 comentarios
Walter Roberson
Walter Roberson el 24 de Abr. de 2016
Replace
x = [x; [randi([0 9], 1, 5) neg]]; %//addnewrowofrandomnumbers to x
a = num2str(x);
pause(5);
fprintf(b,a);
with
a = [randi([0 9], 1, 5), neg];
x(end+1, :) = a;
fprintf(b, '%d %d %d %d %d %d\n', a);
If that does not work, I need to see the exact error message and the current version of your code.
George Francis
George Francis el 24 de Abr. de 2016
I tried that again and it shows me different error and nothing came to Arduino.
Matlab code
clear all;
clc;
b = Bluetooth('HC-05', 1);
fopen(b);
x=[]; neg = 0;
for b=1:3
neg = neg - 1;
if (neg< -5)
neg = -1; %//wraparound
end
a = [randi([0 9], 1, 5) neg];
x(end+1,:) = a;
fprintf(b,'%d %d %d %d %d %d\n',a);
end
disp(a);
Matlab error
4 4 6 7 7 -1
2 6 6 1 1 -2
Error using fprintf
Invalid file identifier. Use fopen to generate a valid
file identifier.
Error in test4 (line 13)
fprintf(b,'%d %d %d %d %d %d\n',a);

Iniciar sesión para comentar.

Categorías

Más información sobre MATLAB Support Package for Arduino Hardware en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by