How to send data to the serial port 3 times

1 ビュー (過去 30 日間)
George Francis
George Francis 2016 年 4 月 23 日
コメント済み: George Francis 2016 年 4 月 24 日
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

回答 (1 件)

Walter Roberson
Walter Roberson 2016 年 4 月 23 日
a = [randi([0 9], 1, 5), neg];
x(end+1, :) = a;
fprintf(b, '%d %d %d %d %d %d\n', a);
  7 件のコメント
George Francis
George Francis 2016 年 4 月 24 日
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);

サインインしてコメントする。

カテゴリ

Find more on Parallel Computing Fundamentals in Help Center and File Exchange

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by