desktop

¿Cómo enviar un dato ASCII a MATLAB a través del puerto serial?

Seguramente pillaras una cadena dentro de la cual esté la E.
Trocea la cadena y buscarlo dentro o bien comprueba la cadena en cada carácter que recibes.
Otra opción es buscar cadenas enteras de ordenes con retorno de carro y todo lo que sea.
 
Esto es lo que envía el arduino, una secuencia de datos

0.4839
-1.00
-1.00
0.4839
P
0
0
E
1.00
0.92
0.84
0.78
0.71
0.65
0.60
0.58


los números me los representa bien, pero los caracteres no les hace caso.

Si aparecen por pantalla, pero parecce que el While no lo hace bien, he visto en la ayuda de matlab como hacer un while y parece que está bien, asi que ya no sé donde está el falo.
 
Última edición:
Porque nunca llega E
Llega E y algo mas, es típico

y que le puede estar llegando,

en el arduino envío el dato con la siguiente instrucción:
Serial.println('E);

y en Matlab he provado a poner 'terminador', 'CR y LF' y no me hace nada
lectura=fscanf(pserie)

asi que he optado por cambiar los caracteres por numeros que sé que nunca le llegan, pero ahora tengo el problema de que no me representan los datos en tiempo real (cosa que necesito hacer en matlab), me representa datos pero no los datos actuales, asi que siguiere investigando

saludos

y gracias por la ayuda
 
El retorno de carro, el line feed...
Hay que mirar bien que hay dentro del buffer
A veces es al revés, el PC no mira el buffer hasta que no llegan n caracteres o hasta que no llega el retorno de carro.
Hay que poner que el PC lea el buffer a cada carácter o enviar un saco de E para llenarlo
 
Última edición:
Quiero realizar el flujo de control de datos por hardware RS-232 en MATLAB. Mi duda es:

S.FlowControl(Hardware);


¿Solo poner así la instrucción o hay que declarar cada señal del RS-232?
 
Última edición por un moderador:
Atrás
Arriba