Graficar datos sencillisimo (Windows)

Hola,

Para aquellos que quieran disponer de un gráfico rápido para sus “juguetillos” con Arduino, existe una utilidad llamada StampPlot (lo usan en Parallax). Es un gráfico controlado por puerto serie y facilísimo de utilizar.
http://www.selmaware.com/ (Version Pro). Deja muchas más opciones.

Para el ejemplo que voy a poner de utilización, he usado la version Lite,que se puede descargar de aqui:
http://www.parallax.com/tabid/441/Default.aspx

StampPlot Lite Version: 1.7 graphing utility is a digital strip-chart recorder that lets you visual and log to file data from a BASIC Stamp module.

(es una captura de la página del autor, mi ejemplo muestra función sin(x) )

CÓDIGO DE EJEMPLO COMENTADO:

// StampPlot Lite with Arduino
// By Igor R.
// 23/Jun/2010

float seno;
float i=0;

void setup() 
{
  Serial.begin(19200);
  delay(10);
  //----------------------------------------------------------
  //CONFIGURACION STAMP PLOT LITE
  //----------------------------------------------------------
  //Titulo de la ventana (FORM)
  Serial.print("!TITL Arduino Power!");
  Serial.print(13,BYTE);
  //Titulo de usuario (STATUS)
  Serial.print("!USRS Ejemplo SENO");
  Serial.print(13,BYTE);  
  //Valor maximo del eje Y 
  Serial.print("!AMAX 1");
  Serial.print(13,BYTE);
  //Valor minimo del eje Y
  Serial.print("!AMIN -1");
  Serial.print(13,BYTE);
  //Valor maximo de tiempo
  Serial.print("!TMAX 7");
  Serial.print(13,BYTE);
  //Configuro el numero de puntos
  Serial.print("!PNTS 200");
  Serial.print(13,BYTE);  
  //Ayadir Tiempo en la lista de mensajes 
  Serial.print("!TSMP ON");
  Serial.print(13,BYTE);  
  //Plot ON 
  Serial.print("!PLOT ON");
  Serial.print(13,BYTE);     
  //Borra el valor Max y Min almacenado despues del RESET
  Serial.print("!CLMM");
  Serial.print(13,BYTE);  
  //Limpio la lista de mensajes 
  Serial.print("!CLRM");
  Serial.print(13,BYTE); 
  
  //Borro el fichero stampdat.txt
  Serial.print("!DELD");
  Serial.print(13,BYTE); 
  //Borro el fichero stampmsg.txt
  Serial.print("!DELM");
  Serial.print(13,BYTE);         
  //Salvar datos Analogicos y digitales en stampdat.txt
  Serial.print("!SAVD ON");
  Serial.print(13,BYTE);  
  //Salvar Mensajes en stampmsg.txt
  Serial.print("stampmsg.txt");
  Serial.print(13,BYTE);    
  
  //RESET DEL GRAFICO PARA COMENZAR A PLOTEAR
  Serial.print("!RSET");
  Serial.print(13,BYTE);  
  //----------------------------------------------------------      
 
}
void loop() 
{ 
  
  while(i<20)
  {
    seno=sin(i);
    //Envio de dato a plotear
    Serial.print(seno);
    Serial.print(13,BYTE);
    //Envio de cualquier cadena a mostrar
    Serial.print("Valor de i= ");
    Serial.print(i);
    Serial.print(13,BYTE);
    
    i=i+0.1;
    //Dejar al menos 10ms de tiempo para procesar 
    delay(20);
  }
  
  
}

Saludos :wink:

Igor R.