Osciloscopio - pic 16f877 - labview

Saludos amigos del foro...

He estado trabajando en un Osciloscopio digital usando el PIC-16F877 y LabView...

Me entro la idea a la cabeza de usar comunicacion entre dos PICs con la finalidad de hacer comunicacion inalambrica en un futuro.

Lo que tengo es lo siguiente:

- UN PIC 16F877 EL CUAL REALIZA LA CONVERSION ANALOGICO DIGITAL (con una etapa de adpatacion de voltajes previa) Y QUE A TRAVEZ DEL PUERTO PORTC.5 ENVIA LA INFORMACION A OTRO PIC.

- OTRO PIC 16F877 QUE RECIBE LA INFORMACION DE VOLTAJE A TRAVEZ DEL PUERTO PORBC.5, ESTE ULTIMO PIC ENVIA ESTA INFORMACION A UNA PC MEDIANTE EL PUERTO USB.

- UNA INTERFAZ HECHA EN LabVIEW PARA GRAFICAR LA INFORMACION ENVIADA Y DE HECHO LOGRO VER UNA SEÑAL SEÑOIDAL DE BAJA FRECUENCIA.


PROBLEMA:

EN PIC - La comunicacion PIC-PIC la hago por SOFTWARE y la comunicacion PIC-PC por hardware. No se como lograr identificar la frecuencia de la señal de entrada. Me explico mejor. quiero sincronizar los valores de amplitud que mido con el tiempo en que fue medido para poder graficar y observar el periodo de la señal.

EN LABVIEW:
la infomacion que me llega es solo voltaje, es por ello que solo he podido graficarla en un WAVEFORM CHART, pero me gustaria conocer tambien el periodo y graficar tal cual lo hace un Osciloscopio (claro con los errores propios de mi diseño)

EN RESUMEN:
COMO HAGO PARA SABER EN LABVIEW CUAL ES LA FRECUENCIA DE LA SEÑAL DE ENTRADA Y SU VALOR RMS


ENTIENDO QUE EN PURA TRANSMISION PIERDO TIEMPO, (por lo cual el ancho de banda por ahora no me interesa) PERO A FUTURO SE IMPLEMENTARA CON UN ADC Y MEMORIA RAM EXTERNA. EL CONVERTIDOR EXTERNO HARA LA CONVERSION ALMACENARA LA INFORMACION EN LA MEMORIA EXTERNA Y EL PIC LEERA ESTA INFORMACION A SU MAXIMA VELOCIDAD y TRANSMITIRA.

PARTE DEL CODIGO DEL PIS QUE REALIZA LA ADC

Código:
MedirVoltajeA:
    VoltajeA = ADIn 0                     'A/D por el canal A.0 y almacena en VoltajeA
    Tamano=Tamano_Dato(VoltajeA)          'Funcion determina el tamaño del dato convertido
    
    SerOut PORTC.5, 9600, ["A",Dec EscalaCanal_A,Dec Tamano,Dec VoltajeA]
Return

Realizo la conversion, verifico el tamaño del dato y envio al otro PIC el dato en el formato siguiente:
[A+ESCALA_VOLTAJE+TAMAÑO_DATO+DATO]

A: Ya que el dato pertenece a un canal de la trajeta
ESCALA_VOLTAJE: Ya que la trajete permite 4 escalas (2,5V, 5V, 10V y 15V), informacion que necesito para graficar
TAMAÑO_DATO: Para que el otro PIC sepa el tamaño del dato a leer (¿ALGUNA OTRA RECOMENDACION?)
DATO: EL DATO CONVERTIDO

PARTE DEL CODIGO QUE RECIBE LA CONVERSION (OTRO PIC) Y ENVIA A LA PC

Código:
SerIn PORTC.5, Baudios, [Canal]                       'Lee por SOFWARE

If Canal="A" Then                                           'Verifica el dato A
    SerIn PORTC.5, Baudios, [Escala]                  'Lee el proximo BYTE que es la escala
    SerIn PORTC.5, Baudios, [TamanoDato]          'Lee el proximo BYTE que es Tamaño_dato
    If TamanoDato="1" Then                              'Si el tamaño es 1
        SerIn PORTC.5, Baudios, [Voltaje[0]]          'Lee un solo BYTE
    EndIf
    If TamanoDato="2" Then                              'Si tamaño es 2
        SerIn PORTC.5, Baudios, [Str Voltaje\2]      'Lee dos BYTE
    EndIf 
    If TamanoDato="3" Then                              'Si tamaño es 3
        SerIn PORTC.5, Baudios, [Str Voltaje\3]      'Lee tres BYTE
    EndIf 
    If TamanoDato="4" Then                              'Si tamaño es 4
        SerIn PORTC.5, Baudios, [Str Voltaje\4]      'Lee cuatro BYTE
    EndIf
    
    HRSOut "A",Escala,TamanoDato,Str Voltaje      'Se envia a la PC por HARDWARE


QUE CREEN QU PUEDA MEJORARSE EN ESE CODIGO (SOLO ES LA PARTE DE COMUNICACION YA QUE HAY VARIAS MAS RUTINAS QUE NO VI NECESARIAS MOSTRARLAS)

Gracias de antemano por la colaboracion prestada a este asunto
 
Última edición:
es muy buena la idea , yo encontre un proyecto similar pero con un PIC 18f2550 esta es la pag donde lo muestran : http://electronicacoll.com/ te metes en proyectos , es el primerito se llama penscope , pero no se si hacerlo ya que cuesta 40 BsF. mas que el 16f877 , entonces queria que me ayudaras un poco porq no se si valga la pena XD . saludos espero tu respuesta .
 
Ok por lo que logre ver en ese proyecto, esta muy limitado tanto a niveles de tension como a señales previamente rectificadas, la idea es armar un osciloscopio donde se pueda medir directamente señales alternas y que permita seleccionar rangos de voltajes a trabajar. Ese esjemplo esta bien para empezar. Pero recuerda solo te permitira medir señales previamente rectificadas....

El que estoy armando permitira seleccionar rangon de tensiones alternas de hasta 110 v... Esto lo logro usando una tarjeta de adpatacion de señales usando Llaves analogicas 4066
 
Última edición:
si bueno menos mal que lei tu mensaje porque mañana iba a comprar los componentes y la verdad ese pic no es muy barato y para quedarme inconforme prefiero hacer otro un poco mas complicado pero que sea mejor , tu ya armaste el tuyo?? y si es asi me prodrias pasar los esquemáticos para ver como es (y si lo puedo hacer ya que por los momentos solo soy un aficionado;) )?? :D , ya que por lo que dices es justo lo que nesecito (por los momentos despues si puedo me compro mi osciloscopio de "verdad":cool: ) , aa y otra pregunta (si vives en caracas) que negocio de electronica conoces ??? (que no sea p. benavides) esq ir hasta el centro solo para eso es una *******. saludos y gracias por tu respuesta.
 
Atrás
Arriba