TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: badtzdizzy en 03 de Junio de 2004, 14:26:00

Título: Manipulacion de señal analogica
Publicado por: badtzdizzy en 03 de Junio de 2004, 14:26:00
Hola

Pues bien, lo que estoy tratando de hacer es introducir una señal senoidal de 100 Hz en el canal del convertidor analógico digital, y tomar muestras que me serviran de datos para despues con visual basic graficar los mismos. Ahora bien, en el PIC he realizado lo siguiente pero no se si esté bien o tenga que manipular de alguna otra forma el retardo ya que lo estoy usando como periodo de muestreo.  El codigo que estoy utilizando es el siguiente:
Codigo:

#include <16f874A.h>
#fuses HS,NOWDT,NOPROTECT,NOPUT,NOBROWNOUT,NOLVP,NOCPD,WRT
#use delay(clock=20000000)
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7)  

main()
{
   int i,value;
   char dato;

   setup_adc_ports( ALL_ANALOG );
   setup_adc( ADC_CLOCK_INTERNAL );
   set_adc_channel( 0 );

   while(True)
      {
        delay_ms(5);
        for(i=0;i<=30;++i)
           {
            dato = read_adc();
            putc(dato);
           }
       }
}



Basicamente con el visual basic tomaré esos caracteres y los convertiré en enteros para posteriormente tomar un cierto numero y graficarlos. Mi duda principal radica en que tanto debo de hacer en el PIC y que tanto en el visual, de antemano gracias.
Tengo que colocar otro tiempo o el delay lo puedo usar como periodo de muestreo?
Título: RE: Manipulacion de señal analogica
Publicado por: kruskal en 03 de Junio de 2004, 19:09:00
Estas muestreando cada 5 ms ademas debes contar el tiempo de conversion asi que como máximo estas con una frecuencia de 200 Hz, la teoria de muestre dice que debes muestrear a una frecuencia que sea el doble de la señal. Por esto te recomiendo disminuir el retardo un poco para poder recontruir la señal de mejor forma.

salud2
Título: RE: Manipulacion de señal analogica
Publicado por: narcosystem en 04 de Junio de 2004, 02:10:00
efectivamente para poder recontruir una señal sin perdida de datos, se debe muestrear a la frecuencia de Nyquist, que es 2 veces la frecuencia de la señal que se pretende muestrear. no obstante, yo bajaria un poco los retardos para tomar mas muestras y poder reconstruir la señal de una forma mas fidedigna.
Título: RE: Manipulacion de señal analogica
Publicado por: Nocturno en 04 de Junio de 2004, 02:13:00
¿Y si en vez de dismnuir el retardo lo eliminas?, ¿no funciona?
Título: RE: Manipulacion de señal analogica
Publicado por: badtzdizzy en 04 de Junio de 2004, 11:55:00
Hola

Entonces a cuanto es recomendable bajar el periodo de muestreo, ya que no es posible eliminarlo porque es necesario por parte del convertidor.  Pero, en este caso, tengo que hacer alguna especie de sincronización con el visual ?

Ahh y otra preguntota, en el caso de meter una señal senoidal, pues ésta presentará valores negativos, entonces tengo que modificar la configuración del PIC o el convertidor se encarga de interpretar los valores negativos de la señal y yo sólo tendría que manipularlos?

De antemano gracias por la ayuda.
Título: RE: Manipulacion de señal analogica
Publicado por: odukec en 04 de Junio de 2004, 13:29:00
Estuve leyendo por ahi que el pic se demora 21 uS en hacer una conversion..
Depronto les sea de utilidad ese dato..
Título: RE: Manipulacion de señal analogica
Publicado por: kruskal en 04 de Junio de 2004, 16:22:00
Los valores negativos debes eliminarlos externamente (no se procesa valores negativos) esto lo puedes hacer facilmente con un condensador de acoplo y un divisor de tension entre +5V y GND. Esto montará la señal analogica en un valor medio distinto de cero, cuida que el menor valor que se obtenga no sea negativo. Debes considerar tambien, que la maxima amplitud que puede ingresar al conversor es +5V. Si ingresas mayores tensiones convertirá pero perderas precision ya que sobre 5V todos los valores que obtendras seran 3FF (1023).

Con respecto a la frecuencia de muestreo, solo debes asegurarte que como minimo sea el doble de la frecuencia de la señal de entrada para mayores frecuencias de muestreo estas limitado por las caracteristicas propias de PIC y la capacidad del sistema que usas para procesar la señal digital que generas.

Salud2
kruskal@hotmail.com
Título: RE: Manipulacion de señal analogica
Publicado por: badtzdizzy en 07 de Junio de 2004, 10:34:00
Hola

Entonces lo que tengo que hacer para considerar valores negativos es montar la señal analógica en una componente de directa verdad? Y posteriormente con el visual situar a la señal en un nivel medio de cero. Creo que ya voy entendiendo.
Por lo tanto y para no  tener problemas con los valores de tensión pues estaría bien trabajar con una señal analógica de 5 Vpp montada sobre una componente de directa de 2.5 V. Pues muchas gracias, trabajaré con esto y cuando lo tenga pues les aviso, ok?