sábado, 12 de diciembre de 2015

CCS Compiler (PIC C Compiler) - Conversor Analógico Digital (ADC)

CONVERSOR ANALÓGICO DIGITAL(ADC)

Como su propio nombre lo dice, lo que hace es convertir una señal analógica a digital.
Pasa por los siguientes procesos:

  • Muestreo de la señal analógica
  • Cuantificación
  • Codificación
Estos vendrían a ser los procesos mas básicos que se tiene que realizar para convertir una señal analógica a una digital, ya que puede haber otros procesos más.


El convertidor de aproximaciones sucesivas se utiliza en aplicaciones donde se necesitan altas velocidades de conversión. Se basa en realizar sucesivas comparaciones de forma ascendente o descendente hasta encontrar un valor digital que iguale la tensión entregada por el conversor D/A y la tensión de entrada.

CARACTERISTICAS

  • Rango de Entrada(Vin): Voltaje a leer por el módulo ADC.
  • Número de bits(N): Rango de conversión usado por el ADC. Puede ser 8 o 10 bits, definido por el programador
  • Resolución: Mínimo valor de lectura. viene definido por la siguiente relación.
  • Tensión de referencia(Vref): Es el voltaje base por la cual toma como punto de referencia el modulo ADC para poder hacer sus conversiones, puede ser valor absoluto de 0 - Vref o en un margen de -Vref a +Vref.
  • Tiempo de conversión(Tad): Tiempo que demora el ADC en realizar la conversión.
  • Error de conversión: Bits erróneos generados por una mala conversión, la cual se origina por una alta velocidad o una mala configuración del modulo.
También hay otra manera de expresarla resolución, en el cual intervienen el Vref

Si Vref+ = 5V y Vref- = 0V , tenemos
por ejemplo, si tenemos que la lectura es de 256 LSB, entonces la tensión analógica será:
TABLA DE SELECCION DE FUENTES DE RELOJ

(1): El reloj RC tiene un valor tipico de Tad = 4us
(2): Estos valores violan el mínimo tiempo requerido (1.6us) de Tad
(3): Para conversiones mas rápidas se recomienda otro tipo de reloj
(4): Cuando se usa osciladores mayores de 1MHz, el modo RC es recomendable cuando se esta en el modo SLEEP


TABLA DE CONFIGURACION DE LOS CANALES


MODULO ADC EN C

En el compilador , las instrucciones para manejar el conversor AD son las siguientes:
  • setup_adc_ports(valor)

  • setup_adc(modo)

  • set_adc_channel(canal)

  • valor=read_adc()  --->  Lectura del resultado y almacenado en valor, que viene a ser un numero entero dependiendo de la directiva #DEVICE ADC= empleada.
Estos son algunos sensores cuya salida es en votios, la cual podemos hacer uso de l modulo AD del PIC para poder digitalizar y controlar esta señal.



LES DEJO EL TUTORIAL PARA QUE PUEDAN COMPRENDER MEJOR EL USO DE ESTE MODULO


DESCARGA EL PROGRAMA Y LA SIMULACION EN



10 comentarios :

  1. cometes un error cuando dices que el convertidor de aproximaciones sucesivas se utiliza en aplicaciones donde se necesitan altas velocidades ya que es justo lo contrario es el conversar mas lento debido a que debe recorrer uno por uno los valores a comparar en cambio un convertidor por ejemplo tipo Flash es el mas rápido ya que cada valor lo muestra en tiempo real no necesita comparar

    ResponderEliminar
  2. Buenas tardes, al cargar el codigo que mencionas en CCS al compilar me aparece una segunda ventana de programacion llamada LCD y me marca el error.

    #byte lcdtris = LCD_DATA_PORT+0x80

    en esa linea de codigo la cual aparece despues de compilar en un segundo archivo de programacion

    y como error marca " expression must be a constant or simple variable". Sabes a que se debe o que puedo hacer?

    Muchas gracias

    saludos!

    ResponderEliminar
  3. hola buenas noches... excelente tutorial te felicito!!!

    aunque tengo un detalle que es que al realizar la simulación en proteus no me aparece nada en el lcd... se que no es el código porque al programar el pic ya en físico me funciona, pero no en la simulación, como puedo corregir esto???
    de antemano muchas gracias.

    ResponderEliminar
  4. Como puedo usar el adc dep pic 18f4550 en dos canales distintos

    ResponderEliminar
  5. Yo estoy haciendo un Phmetro digital y del electrodo obtengo valores negativos y positivos de tension, como manejo los negativos?

    ResponderEliminar
  6. Excelente información, muy agradecido con el curso que partes. Bendicionesss

    ResponderEliminar