Borrar filtros
Borrar filtros

connection to arduino using bluetooth

4 visualizaciones (últimos 30 días)
Abbas Hussien Miry
Abbas Hussien Miry el 5 de Abr. de 2016
Respondida: Walter Roberson el 5 de Abr. de 2016
hello
I am attempting to send some information from Matlab, to an Arduino Uno, via bluetooth with
matlab program
b=Bluetooth('HC-06',1);
fopen(b);
for i=1:1:15
fprintf(b,i);
out(i) = fscanf(b,'%d');
end
fclose(b)
and arduino program
int matlabval=0;
void setup()
{
Serial.begin(9600);
}
void loop()
{
if (Serial.available() > 0) {
matlabval=Serial.read();
Serial.println(matlabval);
}
}
the output of arduino is
1
10
2
10
3
10
4
10
5
10
6
10
7
10
8
10
9
10
10
10
11
10
12
10
13
10
14
10
15
10
the number 10 is appear after each number ?why?
Thanks in advance!

Respuestas (1)

Walter Roberson
Walter Roberson el 5 de Abr. de 2016
When you use
fprintf(b,i);
in MATLAB, because you did not specify a format, the default format used is '%s\n' . Each of your values for i is being converted using char() to become a character, and that is sent and then newline. Note that 1 would convert to char(1), the ASCII SOH (Start of Header) character, the one with binary value 1, not to '1', the digit 1, which is char(49) .
You should be considering using fwrite() instead of fprintf() if you want to send the values as binary, and if you want '1' and '2' and so on to be sent then you should use a format such as
fprintf(b, '%d\n', i)
You might need to adjust the read on the Arduino side.

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