pic 18f45xx - ies luis de lucena€¦ · el módulo conversor analógico-digital (adc) del pic...
TRANSCRIPT
![Page 1: PIC 18F45XX - IES LUIS DE LUCENA€¦ · El módulo conversor Analógico-Digital (ADC) del pic 18F4550 dispone ... * Señal de reloj del conversor FOSC/2 ... para obtener otro valor](https://reader031.vdocumento.com/reader031/viewer/2022020114/5b593d977f8b9a4e1b8cf68e/html5/thumbnails/1.jpg)
PIC 18F45XX
El módulo ADC(Analog Digital Converter)
![Page 2: PIC 18F45XX - IES LUIS DE LUCENA€¦ · El módulo conversor Analógico-Digital (ADC) del pic 18F4550 dispone ... * Señal de reloj del conversor FOSC/2 ... para obtener otro valor](https://reader031.vdocumento.com/reader031/viewer/2022020114/5b593d977f8b9a4e1b8cf68e/html5/thumbnails/2.jpg)
1. Características generales
➔El módulo conversor Analógico-Digital (ADC) del pic 18F4550 dispone de 13 entradas y es capaz de medir la tensión analógica en cada una de ellas y convertirla en un valor digital de 10bits.
➔Los pines susceptibles de ser configurados como entradas analógicas son: PORTA(5)=> AN0:RA0, AN1:RA1, AN2:RA2, AN3:RA3,AN4:RA5 PORTB(5)=> AN8:RB2, AN9:RB3, AN10:RB1, AN11:RB4, AN12:RB0 PORTE(3)=> AN5:RE0, AN6:RE1, AN7:RE2
➔Los registros asociados al conversor ADC son: ADRESH: Contiene la parte alta de la conversión ADRESL: Contiene la parte baja de la conversión ADCON0: Registro de control 0 del ADC ADCON1: Registro de control 0 del ADC ADCON2: Registro de control 0 del ADC
![Page 3: PIC 18F45XX - IES LUIS DE LUCENA€¦ · El módulo conversor Analógico-Digital (ADC) del pic 18F4550 dispone ... * Señal de reloj del conversor FOSC/2 ... para obtener otro valor](https://reader031.vdocumento.com/reader031/viewer/2022020114/5b593d977f8b9a4e1b8cf68e/html5/thumbnails/3.jpg)
2. Diagrama de bloques del conversor
![Page 4: PIC 18F45XX - IES LUIS DE LUCENA€¦ · El módulo conversor Analógico-Digital (ADC) del pic 18F4550 dispone ... * Señal de reloj del conversor FOSC/2 ... para obtener otro valor](https://reader031.vdocumento.com/reader031/viewer/2022020114/5b593d977f8b9a4e1b8cf68e/html5/thumbnails/4.jpg)
3. El registro de control ADCON0
![Page 5: PIC 18F45XX - IES LUIS DE LUCENA€¦ · El módulo conversor Analógico-Digital (ADC) del pic 18F4550 dispone ... * Señal de reloj del conversor FOSC/2 ... para obtener otro valor](https://reader031.vdocumento.com/reader031/viewer/2022020114/5b593d977f8b9a4e1b8cf68e/html5/thumbnails/5.jpg)
4. El registro de control ADCON1
➔El registro ADCON1 es el encargado de configurar las entradas como analógicas o digitales y fijar la tensión de referencia del conversor.
➔Para configurar todas las entradas como analógicas:ADCON1=0x0F;
➔Para configurar RA0 y RA1 como entradas analógicas y el resto digitales:ADCON1=0x0D;
![Page 6: PIC 18F45XX - IES LUIS DE LUCENA€¦ · El módulo conversor Analógico-Digital (ADC) del pic 18F4550 dispone ... * Señal de reloj del conversor FOSC/2 ... para obtener otro valor](https://reader031.vdocumento.com/reader031/viewer/2022020114/5b593d977f8b9a4e1b8cf68e/html5/thumbnails/6.jpg)
5. El registro de control ADCON2
ADFM: Justificación del valor de la conversión Derecha/Izquierda
ACQT2:ACQT0 Ajuste del tiempo de adquisición.
ADCS2:ADCS0Frecuencia de trabajo del conversor.
![Page 7: PIC 18F45XX - IES LUIS DE LUCENA€¦ · El módulo conversor Analógico-Digital (ADC) del pic 18F4550 dispone ... * Señal de reloj del conversor FOSC/2 ... para obtener otro valor](https://reader031.vdocumento.com/reader031/viewer/2022020114/5b593d977f8b9a4e1b8cf68e/html5/thumbnails/7.jpg)
6. Funciones de configuración del ADC en C18
Para poder utilizar estas funciones hay que añadir en el programa principal la línea: #include <adc.h>
![Page 8: PIC 18F45XX - IES LUIS DE LUCENA€¦ · El módulo conversor Analógico-Digital (ADC) del pic 18F4550 dispone ... * Señal de reloj del conversor FOSC/2 ... para obtener otro valor](https://reader031.vdocumento.com/reader031/viewer/2022020114/5b593d977f8b9a4e1b8cf68e/html5/thumbnails/8.jpg)
7. La función OpenADC()
➔Para configurar el ADC se utiliza la función:OpenADC(clk_source,result_justification,time_select,channel,int,vref,config_port);
Donde:
![Page 9: PIC 18F45XX - IES LUIS DE LUCENA€¦ · El módulo conversor Analógico-Digital (ADC) del pic 18F4550 dispone ... * Señal de reloj del conversor FOSC/2 ... para obtener otro valor](https://reader031.vdocumento.com/reader031/viewer/2022020114/5b593d977f8b9a4e1b8cf68e/html5/thumbnails/9.jpg)
7. Ejemplo de configuración del ADC en C18 (I) ➔ Configurar el ADC como:
* Señal de reloj del conversor FOSC/2* Justificación de la conversión a la derecha* Tiempo de conversión de 2 veces el TAD (tiempo de adquisición ~2,4us)* Canal de muestreo '0'* Deshabilitamos las interrupciones* Tensión de referencia Vdd/Vss* RA0/AN0 y RA1/AN1 como entradas analógicas. ➔ Configuración en C18: unsigned char config1=0,config2=0,configport=0; config1 = ADC_FOSC_2 & ADC_RIGHT_JUST & ADC_2_TAD ; config2 = ADC_CH0 & ADC_INT_OFF & ADC_REF_VDD_VSS ; portconfig = ADC_2ANA ; OpenADC(config1,config2,portconfig);
➔ Una vez configurado el ADC para realizar la conversión: ConvertADC(); // Comienza la conversión while(BusyADC()); // Espera a que termine la conversión resultado= (unsigned int) ReadADC(); // Guardar resultado en la variable
➔ Cuando ya no se necesite el conversor: CloseADC();
![Page 10: PIC 18F45XX - IES LUIS DE LUCENA€¦ · El módulo conversor Analógico-Digital (ADC) del pic 18F4550 dispone ... * Señal de reloj del conversor FOSC/2 ... para obtener otro valor](https://reader031.vdocumento.com/reader031/viewer/2022020114/5b593d977f8b9a4e1b8cf68e/html5/thumbnails/10.jpg)
7. Ejemplo de configuración del ADC en C18 (II)
➔ Para realizar la lectura de dos entradas analógicas debemos fijar el canal “SetChanADC(n)” y realizar la conversión “ConvertADC()”. Para cada uno de los canales. ➔ Una vez conseguido el valor del canal seleccionado es posible cambiar el canal para obtener otro valor con la función:SetChanADC(n); // Donde “n” puede ser: ADC_CH0, ADC_CH1,.....
➔ También se puede utilizar una única función para seleccionar el canal y realizar la conversión:SelChanConvADC(n); // Donde “n” puede ser: ADC_CH0, ADC_CH1,.....
➔ Cuando ya no se necesite el conversor:CloseADC();
![Page 11: PIC 18F45XX - IES LUIS DE LUCENA€¦ · El módulo conversor Analógico-Digital (ADC) del pic 18F4550 dispone ... * Señal de reloj del conversor FOSC/2 ... para obtener otro valor](https://reader031.vdocumento.com/reader031/viewer/2022020114/5b593d977f8b9a4e1b8cf68e/html5/thumbnails/11.jpg)
8. Simulación en Proteus
En Proteus (Isis) podemos utilizar el componente potenciómetro (POT-HG) que incluye:
Editar el componente Conectar según la figura
![Page 12: PIC 18F45XX - IES LUIS DE LUCENA€¦ · El módulo conversor Analógico-Digital (ADC) del pic 18F4550 dispone ... * Señal de reloj del conversor FOSC/2 ... para obtener otro valor](https://reader031.vdocumento.com/reader031/viewer/2022020114/5b593d977f8b9a4e1b8cf68e/html5/thumbnails/12.jpg)
9. Programa de ejemplo
Diseñar un programa que configure como entrada analógica el pin RA0 y muestre en el lcd el valor leído por el conversor y su valor en voltios.
![Page 13: PIC 18F45XX - IES LUIS DE LUCENA€¦ · El módulo conversor Analógico-Digital (ADC) del pic 18F4550 dispone ... * Señal de reloj del conversor FOSC/2 ... para obtener otro valor](https://reader031.vdocumento.com/reader031/viewer/2022020114/5b593d977f8b9a4e1b8cf68e/html5/thumbnails/13.jpg)
Solución en C18 (l)
![Page 14: PIC 18F45XX - IES LUIS DE LUCENA€¦ · El módulo conversor Analógico-Digital (ADC) del pic 18F4550 dispone ... * Señal de reloj del conversor FOSC/2 ... para obtener otro valor](https://reader031.vdocumento.com/reader031/viewer/2022020114/5b593d977f8b9a4e1b8cf68e/html5/thumbnails/14.jpg)
Solución en C18 (II)
![Page 15: PIC 18F45XX - IES LUIS DE LUCENA€¦ · El módulo conversor Analógico-Digital (ADC) del pic 18F4550 dispone ... * Señal de reloj del conversor FOSC/2 ... para obtener otro valor](https://reader031.vdocumento.com/reader031/viewer/2022020114/5b593d977f8b9a4e1b8cf68e/html5/thumbnails/15.jpg)
Solución en C18 (III)
![Page 16: PIC 18F45XX - IES LUIS DE LUCENA€¦ · El módulo conversor Analógico-Digital (ADC) del pic 18F4550 dispone ... * Señal de reloj del conversor FOSC/2 ... para obtener otro valor](https://reader031.vdocumento.com/reader031/viewer/2022020114/5b593d977f8b9a4e1b8cf68e/html5/thumbnails/16.jpg)
Simulación en Proteus