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 ![]()
Igor R.