TODOPIC
Lenguajes de programación para PC => Visual Basic => Mensaje iniciado por: Kira1708 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
#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
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...
-
te falta agregar esta linea
#include <18f2550.h>
#fuses HSPLL,NOWDT,NOBROWNOUT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL5,CPUDIV1,VREGEN,MCLR,NOPBADEN,WRTB
#use delay(clock=48000000)
-
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??
-
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?
-
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 (http://www.todopic.com.ar/foros/index.php?topic=37446.0)
espero que te pueda servir en algo...
Saludos.-
-
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.
-
Hola! Te dejo un link de un oscilloscopio hecho con Arduino y C#, quizas puedas cojer ideas!
http://code.google.com/p/xoscillo/