Cómo usar matlab para leer diferentes datos del puerto serie Arduino y dibujar gráficos
Utilicé matlab para leer los datos del puerto serie y luego los tracé, pero solo puedo leer un tipo de datos. Por ejemplo, valor ADC de solo lectura o tiempo de solo lectura. Pero quiero usar matlab para leer el tiempo y los valores de ADC obtenidos por Arduino y luego crear un gráfico de forma de onda. El tiempo es el eje horizontal y el ADC es el eje vertical. Los códigos de Arduino y matlab están escritos a continuación. El tiempo en la abscisa del gráfico realizado con ese código es incorrecto, por lo que también se debe leer el tiempo leído por el Arduino.
Arduino:
#include
const int INTERVAL = 3;
unsigned long n = 0;
void ggyy() {
n = milis();
int m = analogRead(A0);
Serial.print( n);
Serial.print(" ");
Serial.print(m);
}
configuración nula( ){
Serial.begin(115200);
MsTimer2::set(INTERVAL,ggyy);
MsTimer2::start();
}
bucle vacío() {
retraso(800000);
}
Matlab:
s=serial('COM3');
set(s,'BaudRate',115200);
fopen(s);
intervalo =5000;
passo=1;
t=1;
x=0;
while(t b=str2num(fgetl(s)); x=[x,b]; plot(x); grid t=t+passo; drawow; end fclose(s);