私はMatlabからarduinoにいくつかのデータを送信しようとしています。それは[1 by 2]の行列です。私の計画は、この2つの数字を文字列に変換し、arduinoに送信することです。しかし、シリアルモニタでは、私はmatlabから来る任意の値を読み取ることができません。Matlab arduinoシリアル通信
これは、
val_a = matt(n,:);
A = [val_a];
asd = A(1:1);
asb = A(:,2);
strA = num2str(asd);
strB = num2str(asb);
comma = ',';
endVal = '#';
theString = strcat(strA,comma,endVal);
obj1 = instrfind('Type', 'serial', 'Port', 'COM19', 'Tag', '');
if isempty(obj1)
obj1 = serial('COM19');
else
fclose(obj1);
obj1 = obj1(1);
end
fopen(obj1);
fprintf(obj1,theString)
fclose(obj1);
delete(obj1);
A = [];
私のMathWorks社のMATLABコードであり、これはarduinoの
bool gotalfa = false;
bool event = false;
void serialEvent() {
while (Serial.available())
{
char inChar = (char)Serial.read();
event = true;
if (inChar == , && !gotalfa)
{
alfa = inputString;
inputString = "";
gotalfa = true;
event = false;
}
if (inChar == '#' && gotalfa)
{
theta = inputString;
gotalfa = false;
inputString = "";
Serial.print("alfa ");
Serial.print(alfa);
Serial.print("theta ");
Serial.println(theta);
//some program....
event = false;
}
if(event)
{
inputString += inChar;
}}}
のシリアルイベントである私は、MATLAB/Arduinoのコードに何も変更する必要があります。役立つヒントをいただければ幸いです。
がうまくいけば、それは答えにあなたを指し、事前