adc4-150103163442-conversion-gate02

5
L Convertidor Análogo-Digital tiene 10 entradas análogas para los dispositivos de 28 patas y 13 para dispositivos de 40/44 patas. El modulo permite convertir de una entrada análoga a un valor digital de 10-bit. A veces es de mucha ayuda tener un ADC en nuestros proyectos ya que proporciona un enlace entre un sensor que mide una señal física y después procesarla en modo digital ya que lo único que entiende cualquier computadora es estados ceros y unos , después de tener estos valores se pueden enviar a una computadora para monitorear el estado físico que mide tal sensor, esto puede ser enviado por puertos en serie, paralelo o incluso por USB este último es mas preferible ya que todas las maquinas ya tiene por default todas las PC. El modulo ADC funciona de la siguiente manera: Si tenemos en una entrada análoga, un voltaje de entrada de 2.5 volts, y si nuestro convertidor de análogo-digital es de 10-bit, lo que vamos a tener es un valor digital de 512, con la formula siguiente se puede entender mucho mejor (formula 1). El Compilador Hi-Tech nos ofrece las librerías listas para el uso del ADC, esta es una gran ventaja ya que nos ahorrara mucho tiempo en hacer la librería correspondiente del Modulo. A continuación se explicara cada función para el uso del ADC: char BusyADC(void); Regresa el estado del ADC. Regresa 1 si el convertidor está ocupado. Regresa 0 si ya ha terminado la conversión. void CloseADC(void); Cierra el canal ADC por complete void ConvertADC(void); Empieza la Conversion de A/D void OpenADC(unsigned char config, unsigned char config2, unsigned char portconfig); A veces es necesario transformar señales físicas a eléctricas para después ser procesadas en la computadora, usando el Convertidor Análogo-Digital del Microcontrolador PIC18F2550 podemos adquirir la variación que hace un potenciómetro y después enviarla vía serial hacia la computadora. Formula 1: Volts=Entrada de voltaje Ref=Valor de referencia +positivo Bits de conversión= 8 o 10 bits

description

pic

Transcript of adc4-150103163442-conversion-gate02

  • L Convertidor Anlogo-Digital tiene 10

    entradas anlogas para los dispositivos de

    28 patas y 13 para dispositivos de 40/44 patas.

    El modulo permite convertir de una entrada

    anloga a un valor digital de 10-bit.

    A veces es de mucha ayuda

    tener un ADC en nuestros

    proyectos ya que proporciona

    un enlace entre un sensor que

    mide una seal fsica y despus

    procesarla en modo digital ya

    que lo nico que entiende

    cualquier computadora es

    estados ceros y unos , despus

    de tener estos valores se pueden enviar a una

    computadora para monitorear el estado fsico

    que mide tal sensor, esto puede ser enviado por

    puertos en serie, paralelo o incluso por USB

    este ltimo es mas preferible ya que todas las

    maquinas ya tiene por default todas las PC.

    El modulo ADC funciona de la siguiente manera:

    Si tenemos en una entrada anloga, un voltaje

    de entrada de 2.5 volts, y si nuestro convertidor

    de anlogo-digital es de 10-bit, lo que vamos a

    tener es un valor digital de 512, con la formula

    siguiente se puede entender mucho mejor

    (formula 1).

    El Compilador Hi-Tech nos ofrece las libreras

    listas para el uso del ADC, esta es una gran

    ventaja ya que nos ahorrara mucho tiempo en

    hacer la librera correspondiente del Modulo.

    A continuacin se explicara cada funcin para el

    uso del ADC:

    char BusyADC(void);

    Regresa el estado del ADC.

    Regresa 1 si el convertidor est ocupado.

    Regresa 0 si ya ha terminado la conversin.

    void CloseADC(void);

    Cierra el canal ADC por complete

    void ConvertADC(void);

    Empieza la Conversion de A/D

    void OpenADC(unsigned char config, unsigned char config2,

    unsigned char portconfig);

    A veces es necesario transformar seales fsicas a elctricas para despus ser procesadas en la computadora, usando el Convertidor Anlogo-Digital del Microcontrolador PIC18F2550 podemos adquirir la variacin que hace un potencimetro y despus enviarla va serial hacia la computadora.

    Formula 1:

    Volts=Entrada de voltaje

    Ref=Valor de referencia +positivo

    Bits de conversin= 8 o 10 bits

  • MODULO CONVERTIDOR ANALOGO-DIGITAL

    Curso de Hi tech Compiler for PIC18 Pgina 38

    config: Une varias configuraciones usando el operador AND

    A/D Frecuencia

    ADC_FOSC_2 Fosc/2 ADC_FOSC_4 Hasta ADC_FOSC_64 Fosc/64 ADC_FOSC_RC Oscilador Interno

    A/D Justificacion del resultado

    ADC_RIGHT_JUST El resultado es de los bits de menor peso ADC_LEFT_JUST El resultado es de los bits de mayor peso

    A/D Selector de Tiempo de Adquisicion

    ADC_0_TAD 0 Tad ADC_2_TAD 2 Tad ADC_4_TAD 4 Tad ADC_6_TAD 6 Tad ADC_8_TAD 8 Tad ADC_12_TAD 12 Tad ADC_16_TAD 16 Tad ADC_20_TAD 20 Tad

    config2: Une varias configuraciones usando el operador AND.

    Canal: ADC_CH0 canal 0 hasta ADC_CH15 canal 15

    A/D Interrupciones ADC_INT_ON ADC_INT_OFF

    A/D Configuracion del Voltaje De referencia.

    ADC_VREFPLUS_VDD VREF+ = AVDD ADC_VREFPLUS_EXT VREF+ = external ADC_VREFMINUS_VDD VREF- = AVDD ADC_VREFMINUS_EXT VREF- = external

    Portconfig El valor del portconfig es cualquier valor desde 0 a 127 inclusive para PIC18F1220/1320 Y DE 0 a 15 para otros dispositivos.

    unsigned int ReadADC(void);

    Regresa el valor de ADC este valor es de 10-bit por default.

    SetChanADC(unsigned int channel);

    Establece el canal a leer

    Un ejemplo prctico para configurar el

    convertidor, es el siguiente:

    Para la realizacin de nuestra primera prctica

    usando el ADC de un microcontrolador

    PIC18F2550, se har lo siguiente:

    1. Configuraremos el ADC usando nada

    ms la entrada AN0 como entrada

    anloga.

    2. Configuraremos el USART a 19200

    baud.

    3. Al empezar el ciclo perpetuo, se enviara

    la funcin de empezar conversin.

    4. Esperar hasta que termine la

    conversin.

    5. Leer el resultado y lo guardamos en

    una variable.

    6. Enviaremos el resultado a imprimir por

    el serial.

    El circuito a manejar en esta prctica es el

    siguiente:

    OpenADC(ADC_FOSC_RC &//Internal Oscilador Interno ADC_RIGHT_JUST&//Justificacion a la derecha ADC_20_TAD, //Tiempo de Adquisicion (TAD) ADC_CH0 &//CANAL 0 analogo ADC_INT_OFF &//Interrupcin por ADC APAGDO ADC_REF_VDD_VSS, //V+ref=VCC,V-ref=GND 1); //AN0=analogo,resto digitales

    Configuracion Basica para uso del ADC

  • MODULO CONVERTIDOR ANALOGO-DIGITAL

    Curso de Hi tech Compiler for PIC18 Pgina 39

    Como vemos en nuestro circuito est conectado a un MAX232 para adaptar los niveles rs232 a TTL.

    En la entrada RA0/AN0 que es la primera entrada anloga que contiene el microcontrolador hemos

    conectado un POT de 10Kohm, si usted desea cambiar este componente no hay problema, mientras la

    resistencia en el pin MCLR/vpp evita el reset del microcontrolador por hardware.

    El pin VUSB puede ir conectado a masa directamente ya que no usaremos el regulador interno de 3.3 v

    que contiene el pic.

    Procure inicializar entradas y salidas de los PUERTOS

    C Y A, ya que como es una entrada anloga, se debe

    de configurar como entrada en el registro TRISA,

    mientras que en el PUERTO C la entrada RC7/RX esta

    recibiendo datos entonces se debe de configurar el

    registro TRISC y poner como entrada tal pin.

    Al tener todo conectado correctamente abrimos

    cualquier programa que se pueda comunicar va

    serial, estos programas pueden ser el Terminal.exe

    o hercules_3-2-1.exe, solo conecte el COM

    correcto y mismos BAUDIOS con los que se puso en

    el Microcontrolador y listo.

  • MODULO CONVERTIDOR ANALOGO-DIGITAL

    Curso de Hi tech Compiler for PIC18 Pgina 40

    El programa del Microcontrolador se presenta a continuacin:

    //////////////////////////////////////////////////////// // USO DEL ADC Y USART //// //Autor: george.manson.69 //// //Lugar: Mexico //// //Compilador: HI TECH PIC18 (LITE MODE) //// //////////////////////////////////////////////////////// #include #include ///////////////////////////////////////////////////////////// //Configuracion para trabajar Con oscilador interno de 8Mhz __CONFIG(1,INTIO & FCMDIS & IESODIS & PLLDIV5 & PLLPOSTDIV2 & CPUDIV1 & USBOSC); ///////////////////////////////////////////////////////////// __CONFIG(2,VREGDIS & PWRTEN & BORDIS & WDTDIS & BORV45 & WDTPS32K); __CONFIG(3,PBDIGITAL & LPT1DIS & MCLREN); __CONFIG(4,STVRDIS & LVPDIS & ICPORTDIS & DEBUGDIS); __CONFIG(5,UNPROTECT); __CONFIG(6,UNPROTECT); __CONFIG(7,UNPROTECT); ////////////////////////////// //Frecuencia FOSC 8Mhz ////////////////////////////// #define _XTAL_FREQ 8000000 ////////////////////////////// //Variable Globales // ////////////////////////////// unsigned int result; ////////////////////////////// //FUNCION DE 1 SEG // ////////////////////////////// void DELAY1S(void){ unsigned char time; for(time=0;time

  • MODULO CONVERTIDOR ANALOGO-DIGITAL

    Curso de Hi tech Compiler for PIC18 Pgina 41

    ////////////////////////////////////////////////////////////////////// // Configuracion de Puertos /// ////////////////////////////////////////////////////////////////////// TRISA=0x01; TRISC=0x80; /*---------------------Fin de Conf. Puertos-------------------------*/ ////////////////////////////////////////////////////////////////////// // Configuracion de ADC /// ////////////////////////////////////////////////////////////////////// OpenADC(ADC_FOSC_RC &//Internal Oscilador Interno ADC_RIGHT_JUST &//Justificacion a la derecha (10-bit) ADC_20_TAD, //Tiempo de Adquisicion (TAD) ADC_CH0 &//CANAL 0 analogo ADC_INT_OFF &//Interrupcion por ADC APAGDO ADC_REF_VDD_VSS, //V+ref=VCC,V-ref=GND 1); //AN0=analogo,resto digitales /*---------------------Fin de Conf. ADC------------------------------*/ ///////////////////////////////////////////////////////////////////////// Configuracion del USART /// /////////////////////////////////////////////////////////////////////// OpenUSART(USART_TX_INT_OFF &//Interrupcion por Transmision apagado USART_RX_INT_OFF &//Interrupcion por Recepcion Apagado USART_ASYNCH_MODE &//Modo Asincronico USART_EIGHT_BIT &//8-bit de transmision USART_CONT_RX &//Recepcin Continua USART_BRGH_HIGH, //Alta velocidad de baudios 25); //para alta Velocidad: // FOSC / (16 * (spbrg + 1)) // spbrg=(FOS/baud*16)-1 //Para baja Velocidad: // FOSC / (64 * (spbrg + 1)) /*---------------------Fin de Conf. USART----------------------------*/ /////////////////////////////////////////////////////////////////////// // FUNCION PRINCIPAL /// /////////////////////////////////////////////////////////////////////// while(1){ DELAY1S(); //espera 1 segundo ConvertADC(); //Empieza Conversion while(BusyADC()); //Espera a terminar result=ReadADC(); //lee resultado printf("V= %u\r\n",result); //Imprime } } /*-------------------------------Fin-----------------------------------*/

    Nota: Nota: Nota: Nota:

    Siempre use el Circuito MAX232 para

    adaptar niveles RS232 a TTL, ya que el

    protocolo de comunicacin RS232

    contiene voltaje ms de +10 a -10 y si se

    conectara directo quemara por completo

    el microcontrolador.

    Al conectar el MAX232 cambia esos

    voltajes a niveles de 0 a +5 volts

    perfecto para poder trabajar.