如何创建一个数组,然后将其发送到arduino

时间:2016-04-24 18:15:59

标签: matlab

我必须创建这个数组(下面的例子),然后将每一行发送到我的arduino separetly。

Example
    7     0     2     0     0    -1
     8     6     3     9     0    -2
     4     3     7     7     1    -3
     4     4     6     7     7    -4
     2     6     6     1     1    -5
     4     9     3     5     2    -1

创建此数组的Matlab程序

b = Bluetooth('HC-05', 1);
fopen(b);
x=[]; neg = 0;
for a=1:6
   neg = neg - 1;
   if (neg < -5)
       neg = -1; %//wrap around
   end
   x = [x; [randi([0 9], 1, 5) neg]]; %//add new row of random numbers to x
fprintf(b,a);
   disp(x);
end
disp('End');
disp(x);

问题在于,当我将fprintf函数放入其中时,它只向我发送正确形式的第一行,其他所有在一起。输出arduino:

0  5  8  6  1 -1
03    54    89    61    18  --12
036      543      891      614      184   ---123
etc.

显示函数显示程序运行超过6次。

    7     0     2     0     0    -1
           7     0     2     0     0    -1
           8     6     3     9     0    -2
           7     0     2     0     0    -1
           8     6     3     9     0    -2
           4     3     7     7     1    -3
etc.

最终以正确的形式显示数据。

End
         7     0     2     0     0    -1
         8     6     3     9     0    -2
         4     3     7     7     1    -3
         4     4     6     7     7    -4
         2     6     6     1     1    -5
         4     9     3     5     2    -1

所以我认为我有两个选择。创建不同的数组方式。或者在程序结束时拆分整个数组,然后逐行发送每一行。但我不知道该怎么做。所以,你们可以帮助我,我真的很鄙视。

0 个答案:

没有答案