Matlab - comunicacion ordenada Matlab-Arduino

 
Vista:
sin imagen de perfil
Val: 49
Ha aumentado su posición en 2 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

comunicacion ordenada Matlab-Arduino

Publicado por jose (26 intervenciones) el 24/10/2018 16:40:20
Hola a todos, pues lo dicho en el enunciado, mi problemas es que necesito hacer una comunicacion ordenada.

Es decir cuando yo quiero por medio de un boton desde matlab mando unos datos a arduino y cuando arduino haga una cosa que le diga a matlab recoge este dato.

De arduino a matlab no tengo problemas en enviar cosas

De matlab a arduino no consigo enviar numeros con coma .



Para ser algo mas preciso, la idea es: enviar unos datos a matlab, tipo cargar una receta
Cuando esta este lista darle con otro boton a que empiece arduino ha realizar cosas..... girar un motor y leer el valor de una rtd por ejemplo

Hacer otro giro y volver a leer el valor. durante cada lectura del valor tendira que decirle a matlab que recoja el valor y lo guarde en un array o donde se quisiera.....

¿Alguna idea?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de JESUS DAVID ARIZA ROYETH
Val: 3.309
Plata
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

comunicacion ordenada Matlab-Arduino

Publicado por JESUS DAVID ARIZA ROYETH (1818 intervenciones) el 25/10/2018 17:04:46
Hola primero que todo la comunicación de Matlab y arduino es por puerto serie y si deseas enviar números con coma tendría que ser algo así de tipo string :

1
fprintf(arduino, '%s', '1,');


en Arduino ya tienes un código que se está ejecutando continuamente, mientras que en Matlab debes crearlo y lo mejor es que lo hagas con una interfaz gráfica que esté pendiente con un ciclo continuo de la información que recibe de Arduino y que esté pendiente de la información que tú escribas en un edit text o cualquier otro componente para que una vez la escribas se la envíe a Arduino para que cumpla órdenes
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 49
Ha aumentado su posición en 2 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

comunicacion ordenada Matlab-Arduino

Publicado por jose (26 intervenciones) el 26/10/2018 17:00:49
Hola, no es ese mi problema. mas o menos ya lo he planteado pero ahora me queda pulir algo de codigo con las conversiones. aqui os dejo los codigos para que los podais ver.

Ahora matlab envia datos a arduino, este hace cosas(de momento contestar con lo que ha recibido) en el futuro depende el codigo que envie arduino realizara una cosa u otra.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int incomingByte = 0; // almacena el dato serie
void setup() {
Serial.begin(115200); // abre el puerto serie, y le asigna la velocidad de 9600 bps
}
void loop() {
 
 
// envía datos sólo si los recibe:
if (Serial.available() > 0) {
// lee el byte de entrada:
incomingByte = Serial.read();
//lo vuelca a pantalla
//Serial.print("He recibido: "); 
Serial.println(incomingByte, DEC);
 
}
}

Codigo matlab

1
2
3
4
5
6
7
8
9
10
11
12
13
%configuro una variable donde guardare los datos de confirmacion
dato=[1,1];
%configuro puerto serie
canal_serie=serial('COM4');
set(canal_serie,'BaudRate', 115200);
%abro puerto serie y pido el dato que tengo que enviar
fopen(canal_serie);
b =input('Ingrese comando: ','s');
fwrite(canal_serie,b,'int16');
 
dato = fscanf(canal_serie, '%e',[1,1]);
fclose(canal_serie);
dato
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar