En algunos proyectos uno necesita herramientas para visualizar los parámetros o valores que un circuito esta obteniendo. En ocasiones valores de sensores, de estados o botones es útil visualizarlos en algún tipo de gráfica para implementar mejores controles o simplemente ver lo que esta sucediendo.
En este sentido últimamente he estado trabajando con motores eléctricos. Debido a las condiciones del prototipo me seria muy útil ver como es la curva del consumo de corriente debido a la aceleración, des-aceleración o paros imprevistos.
El circuito posee una parte de acoplamiento de señal para medir la corriente y este está conectado al ADC de un Stellaris LM3S818. Hace poco hice una publicación de un programa que me permite ver los datos que me envía por el puerto serie . Pero una gráfica donde pueda analizar la curva seria más útil. Así que decidí incluir un par de cosas y crear un programa para poder hacer una especie de osciloscopio.
No es un osciloscopio muy rápido puesto que está restringido por la velocidad del puerto serie que no es muy rápida, unos 115200 bps (estándar) y también está restringido por el numero de muestras que pueda tener nuestro dispositivo, pero es un buen acercamiento.
En el caso del stellaris, podemos obtener un millón de muestras por segundo, y la velocidad de transmisión puede llegar a los 115200, entonces el dato más corto en ser recibido dado que cada caracter es de 8 bits solo podemos enviar 14400 caracteres por segundo, si en un ADC enviamos 4 dígitos para el caso de 10 bits, (del 0000 al 1023) , podemos visualizar 3600 datos por segundo.
Si se quisieran analizar datos en tiempos menores a lo anterior, tendrían que recurrir a algún método más rápido para la transmisión de datos como el USB directamente.
Pero , dado que para muchas aplicaciones esto es más que suficiente, decidí hacer este pequeño programa.
Es muy simple, solo se selecciona el puerto COM y se escribe la velocidad de transmisión (asegúrate de tener tu dispositivo conectado antes de iniciar el programa). Escribe el voltaje que esta manejando tu dispositivo, 3 , 5 , 10 etc en volts y selecciona los bits a los que convierte tu ADC.
Cuando selecciones «Inicia» tomará los datos provenientes del puerto serie, por ejemplo, en mi ADC a 10 bits y 3.3 V, si se envía el valor de 0540 ya en decimal y transformado a tipo caracter, el programa lo convierte a dígito y lo multiplica por (3.3 / (2^10)-1). Así el valor 0540 representa 1.741 V en la entrada del micro controlador. Este valor es graficado en el tiempo en el que fue recibido.El esquema general de conexiones se vería como en la figura anterior.
El programa lo pueden descargar aquí, asegúrense que ambos archivos estén juntos cuando lo ejecuten.
Si requieren el código fuente solo pídanlo al facebook o al twitter (@electronomadas)
Son libres de hacer comentarios y si encuentran fallas o errores en el programa también haganoslo saber para mejorarlos 😉
Rick
Que tal excelente aplicacion podrias pasarme el código fuente
Me gustaMe gusta
Hola, Puedes descargarlo desde https://app.box.com/s/fjtu171d0z931gsk7s1h
Esta hecho con SharpDevelop http://www.icsharpcode.net/opensource/sd/
Que bueno que te gustó!!
Saludos
Me gustaMe gusta
hola buen proyecto felicitaciones estoy realizando algo parecido pero con microchip me puedes facilitar los fuentes
Me gustaMe gusta
Hola Richard, que bueno que te gustó el proyecto, el codigo fuente para el programa en c# es este https://app.box.com/s/1kgurf9wy89njt1185iq Se hizo con el SharpDevelop. Espero te sea de utilidad.
Saludos.
Me gustaMe gusta
muchas gracias solo la buena voluntad para mi ya es de mucha ayuda, saludos y sigue apoyando a los I+D+i. Saludos Cordiales
Me gustaMe gusta
hola argos como puedo leer el puerto rs232 en visualfoxpro soy principiante gracias
Me gustaMe gusta
Hola Carlos, lamento no tener una respuesta para visualfoxpro. Pero se me puede ocurrir que por medio de c# hacer una especie de plug-in para que puedas llamarlo desde foxpro. Sé que mi respuesta no es de mucha ayuda, pero si se me ocurre algo más, lo comunicaré.
Saludos.
Argos.
Me gustaMe gusta