Autor Tema: Graficar datos que vienen de puerto serie  (Leído 8212 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Kira1708

  • PIC10
  • *
  • Mensajes: 6
Graficar datos que vienen de puerto serie
« en: 03 de Junio de 2012, 15:21:10 »
Hola a todos!
Tengo un pequeño gran problema, debo hacer un osciloscopio para un proyecto de la escuela con el PIC18F4550 y mi problema es como graficar los datos que recibo del PIC que vienen del ADC, hasta el momento tengo esto.


Programa en el PIC CCS

Código: [Seleccionar]
#include <18F4550.h>

#fuses HSPLL,NOMCLR,NOWDT,USBDIV,PLL5,CPUDIV1,VREGEN
#device adc=10
#use delay(clock=48000000)

#include "usb_cdc.h"

void main (void){
int16 q;
float p;

setup_adc_ports(AN0|VSS_VDD);
setup_adc(ADC_CLOCK_INTERNAL);
set_adc_channel(0);

   usb_init();
   usb_cdc_init();
   while(TRUE){

      usb_task();
      if(usb_enumerated()){
      q=read_adc();

p = 5.0*q/1024.0;
printf(usb_cdc_putc,"\n\r %01.2fV", p);
}

Programa en VB 2010

Código: [Seleccionar]
Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        If (SerialPort1.IsOpen) Then
            SerialPort1.Close()
        Else
            SerialPort1.Open()
        End If
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Label1.Text = SerialPort1.ReadExisting
    End Sub

    Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)

    End Sub

    Private Sub Label1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label1.Click

    End Sub
End Class

En la simulacion en proteus puedo ver el valor de voltaje pero la cosa es cómo graficarlo...

Además cuando lo conecto en fisico no hace nada porque no reconoce el PIC en ningun COM y no se que hacer....


Alguna idea??


Gracias de antemano...

Desconectado darck_khronos

  • PIC18
  • ****
  • Mensajes: 493
Re: Graficar datos que vienen de puerto serie
« Respuesta #1 en: 03 de Junio de 2012, 15:50:03 »
te falta agregar esta linea
Código: [Seleccionar]
#include <18f2550.h>
#fuses HSPLL,NOWDT,NOBROWNOUT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL5,CPUDIV1,VREGEN,MCLR,NOPBADEN,WRTB
#use delay(clock=48000000)

Desconectado Kira1708

  • PIC10
  • *
  • Mensajes: 6
Re: Graficar datos que vienen de puerto serie
« Respuesta #2 en: 05 de Junio de 2012, 21:35:03 »
Creo que esas lineas no me sirven de nada pero gracias...

Tenía mal una conexión pero ya esto recibiendo los datos del PIC en mi PC pero cómo grafirlo??

Alguna idea??

Desconectado darck_khronos

  • PIC18
  • ****
  • Mensajes: 493
Re: Graficar datos que vienen de puerto serie
« Respuesta #3 en: 05 de Junio de 2012, 22:15:11 »
Creo que esas lineas no me sirven de nada pero gracias...

Tenía mal una conexión pero ya esto recibiendo los datos del PIC en mi PC pero cómo grafirlo??

Alguna idea??

mmm Primero necesitas almacenar esa informacion en algun lugar, y despues ya con una tabla realizar la grafica, tienes pensado algun software en utilizar o piensas generar uno?

Desconectado korpaztk

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 202
Re: Graficar datos que vienen de puerto serie
« Respuesta #4 en: 27 de Junio de 2012, 01:57:33 »
Hola Kira1708

Hice un proyecto para controlar temperatura con un pic 18f4550 e hice una plataforma en visual basic 2010, utilizando unas librerias de .net framework 4 que permiten hacer gráficas de un montón de estilos...
si bien el software no lo colgué todavía al completo (aunque ya lo tengo) la parte de traficar si se puede comprender, no es tan complicado.

aquí te dejo el hilo...

http://www.todopic.com.ar/foros/index.php?topic=37446.0

espero que te pueda servir en algo...


Saludos.-
Korpaz.
Técnico Electronico.

El Papel Es Mi Mejor Psicologo

Desconectado alperez

  • PIC18
  • ****
  • Mensajes: 255
Re: Graficar datos que vienen de puerto serie
« Respuesta #5 en: 27 de Junio de 2012, 05:55:51 »
Creo que tienes que hacer una rutina de control de datos, por ejemplo, tienes que sincronizar la velocidad de refresco de la muestra del gráfico con el envío desde el PIC, de tal manera que el PIC no envíe datos si el receptor no está a la espera y viceversa, ya que creo que quedaría muy mal si el PC está esperando y el PIC no le envía nada.

A ver si me explico: si vas a mostrar por ejemplo una onda cuadrada y el software (PC) esta preparado para la recepción pero el PIC no envía dato alguno, vas a mostrar "0", pero a lo mejor no es eso lo que hay "fisicamente" en el pin del PIC que quieres monitorear

No sé si me explico.
Para mostrar gráficas existen muchos controles que se insertan con VStudio (VBasic), son algunos de pago pero VStudio tiene un control Chart bastante simple pero creo que te puede servir.

Desconectado Drod

  • PIC16
  • ***
  • Mensajes: 136
Re: Graficar datos que vienen de puerto serie
« Respuesta #6 en: 17 de Julio de 2012, 10:24:09 »
Hola! Te dejo un link de un oscilloscopio hecho con Arduino y C#, quizas puedas cojer ideas!

http://code.google.com/p/xoscillo/