SlideShare una empresa de Scribd logo
IUT Cumaná




  MICROCONTROLADORES II
        MÓDULO A/D
(Convertidor Analógico/Digital)

        PROF. LUIS ZURITA
IUT Cumaná



                    RESOLUCIÓN




Prof. Luis Zurita                Microcontroladores II
VOLTAJES DE REFERENCIA EXTERNOS                                        IUT Cumaná




   • El convertidor A/D puede seleccionar como tensión de
     referencia la interna VDD y Tierra.
   • Para referencias externas, se introducen por:
       • RA3/AN3/VREF+ y RA2/AN2/VREF-
       • Las siguientes limitaciones aplican:
                – El máximo voltaje aplicado a VREF+ (RA3/AN3) será
                  VDD+0,3V y el mínimo VDD-2,5V.
                – Sobre el voltaje aplicado a VREF- (RA2/AN2) la
                  mínima tensión será VSS-0,3V y la máxima (VREF+) -
                  2V.
                – Por ejemplo, si la tensión de alimentación es de 5V, la
                  tensión en RA3/AN3 no podrá exceder de 5V. Por lo
Prof. Luis Zurita
                  que el máximo voltaje en VREF- será de 3V.     Microcontroladores II
IUT Cumaná



           REGISTROS RELACIONADOS AL MÓDULO A/D


       • ADCON0: Registro de control 0. (Banco 0).
       • ADCON1: Registro de control 1. (Banco 1).
       • ADRESH: Guarda la parte alta del Resultado de
         la conversión. (Banco 0).
       • ADRESL: Guarda la parte baja del Resultado de
         la conversión. (Banco 1).



Prof. Luis Zurita                               Microcontroladores II
• Selección del reloj de conversión A/D                       IUT Cumaná




         El tiempo de conversión A/D por bit se define como
         TAD. La conversión A/D requiere mínimo 12TAD por
         10-bits de conversión.
       • La fuente del reloj de conversión A/D es seleccionado
         por software, mediante los bits ADCON0 <7:6>. Las
         cuatro opciones posibles para TAD son:

                    ADCS 1:0        PERÍODO
                    0 0             2TOSC
                    0 1             8TOSC
                    1 0             32TOSC
                    1 1             RC interno (2-6 μs)
Prof. Luis Zurita                                         Microcontroladores II
Tiempo de adquisición (TACQ)                IUT Cumaná




       • Es el tiempo necesario para que se cargue el
         condensador de retención interno, con la tensión de
         entrada. Este proceso de carga del condensador
         depende de distintos factores, entre otros, la
         impedancia de la fuente de tensión de entrada (el
         fabricante recomienda que se sitúe por debajo de 10
         kohm.
       • El tiempo de adquisición dentro de los márgenes
         típicos es de aproximadamente 20μs.
       • La adquisición no comienza hasta que no acabe la
         conversión. Por lo que se debe esperar un TACQ tras
         una conversión , para seleccionar un nuevo canal o
         luego de encender el módulo AD.
Prof. Luis Zurita                                    Microcontroladores II
IUT Cumaná



                    Tiempo de conversión (TAD)

       • Es el tiempo necesario para obtener el valor digital
         de la tensión analógica de entrada. Este tiempo
         depende de la fuente de reloj que se seleccione para
         la conversión.




Prof. Luis Zurita                                     Microcontroladores II
IUT Cumaná


       • Para un control adecuado de conversiones A/D, el reloj
       de conversión A/D (TAD) deben ser seleccionados para
       asegurar un tiempo mínimo TAD de 1,6 μs.
       •La siguiente tabla muestra los tiempos de TAD derivada
       de las frecuencias de funcionamiento del dispositivo y de
       la fuente de reloj A/D de reloj seleccionado.




Prof. Luis Zurita                                      Microcontroladores II
IUT Cumaná



                    CICLOS DE CONVERSIÓN




Prof. Luis Zurita                          Microcontroladores II
IUT Cumaná



                    FORMATO DE RESULTADOS




Prof. Luis Zurita                           Microcontroladores II
IUT Cumaná




Prof. Luis Zurita   Microcontroladores II
IUT Cumaná




Prof. Luis Zurita   Microcontroladores II
IUT Cumaná




Prof. Luis Zurita   Microcontroladores II
IUT Cumaná



                PASOS PARA REALIZAR UNA CONVERSIÓN

       1. Configurar el módulo conversor A/D
       · Configurar los pines que actúan como entradas
          analógicas, las señales que harán de tensión de
          referencia y las que trabajarán como E/S digitales.
          (ADCON1).
       · Seleccionar el canal de entrada. A/D (ADCON0).
       · Seleccionar la fuente de la señal de reloj para la
          conversión A/D (ADON0).
       · Activar el módulo de conversión A/D (ADCON0)

Prof. Luis Zurita                                     Microcontroladores II
IUT Cumaná



                PASOS PARA REALIZAR UNA CONVERSIÓN

       2. Activar si, se desea, la interrupción. del módulo
          conversor A/D:
       · Poner a cero el bit ADIF
       · Poner a uno el bit ADIE
       · Poner a uno los bits habilitadores GIE y PEIE
       3. Esperar el tiempo requerido para la adquisición.
       4. Inicio de la conversión:
       · Poner a 1 el bit GO/#DONE (ADCON0)


Prof. Luis Zurita                                   Microcontroladores II
IUT Cumaná



                PASOS PARA REALIZAR UNA CONVERSIÓN

       5. Tiempo de espera para terminar la conversión A/D
          que puede detectarse Por:
       · Exploración de bit GO/DONE# , que al finalizar la
          conversión toma el valor “0”
       · Esperar que se produzca una interrupción si se ha
          programado al finalizar la conversión.
       · Aunque no se autorice la interrupción el flag ADIF se
          pone a “ 1 “ al finalizar la interrupción.



Prof. Luis Zurita                                      Microcontroladores II
IUT Cumaná



                PASOS PARA REALIZAR UNA CONVERSIÓN

       6. Leer el par de registros ADRESH:ADRESL donde se
          encuentran los 10 bits que resultan de la conversión
          y poner a cero el flag ADIF.
       7. Para una nueva conversión volver a los pasos 1 y 2, el
          tiempo de conversión por bit está definido por TAD,
          se exige un mínimo de 2*TAD para realizar una nueva
          conversión.




Prof. Luis Zurita                                        Microcontroladores II
A/D en C                                  IUT Cumaná


   • En el compilador C las funciones para manejar el
     convertidor A/D son las siguientes:
   setup_adc(modo);
     Donde modo, determina la configuración del módulo
     A/D correspondiente a los bits 7:6 del ADCON0.
           setup_adc(modo);              ADCON0(1Fh)
           ADC_OFF                       00000000
           ADC_CLOCK_INTERNAL            11000000
           ADC_CLOCK_DIV_2               00000000
           ADC_CLOCK_DIV_8               01000000
           ADC_CLOCK_DIV_32              10000000
       setup_adc_ports(valor);
       Valor: definición de las entradas analógicas
Prof. Luis Zurita correspondiente a los bits 3:0 del ADCON1.Microcontroladores II
PCFG3   AN7   AN6   AN5   AN4   AN3     AN2     AN1   AN0   setup_adc_ports(valor);
        RE2   RE1   RE0   RA5   RA3     RA2     RA1   RA0
PCFG0
0000    A     A     A     A     A       A       A     A     ALL_ANALOG
0001    A     A     A     A     VREF+   A       A     A     AN0_AN1_AN2_AN4_AN5_AN6_AN7_VSS_VREF

0010    D     D     D     A     A       A       A     A     AN0_AN1_AN2_AN3_AN4
0011    D     D     D     A     VREF+   A       A     A     AN0_AN1_AN2_AN4_VSS_VREF
0100    D     D     D     D     A       D       A     A     AN0_AN1_AN3
0101    D     D     D     D     VREF+   D       A     A     AN0_AN1_VSS_VREF
011X    D     D     D     D     D       D       D     D     NO_ANALOGS
1000    A     A     A     A     VREF+   VREF-   A     A     AN0_AN1_AN4_AN5_AN6_AN7_VREF_VREF

1001    D     D     A     A     A       A       A     A     AN0_AN1_AN2_AN3_AN4_AN5
1010    D     D     A     A     VREF+   A       A     A     AN0_AN1_AN2_AN4_AN5_VSS_VREF
1011    D     D     A     A     VREF+   VREF-   A     A     AN0_AN1_AN4_AN5_VREF_VREF
1100    D     D     D     A     VREF+   VREF-   A     A     A_ANALOG_RA3_RA2_REF
1101    D     D     D     D     VREF+   VREF-   A     A     AN0_AN1_VREF_VREF
1110    D     D     D     D     D       D       D     A     AN0
1111    D     D     D     D     VREF+   VREF-   D     A     AN0_VREF_VREF
A/D en C                          IUT Cumaná




       set_adc_channel(canal)
       Canal: selección del canal analógico correspondiente a
         los bits 5:3 del ADCON0.

                    0(AN0)   1(AN1)   2(AN2)   3(AN3)
                    4(AN4)   5(AN5)   6(AN6)   7(AN7)




Prof. Luis Zurita                                       Microcontroladores II
A/D en C                          IUT Cumaná




       valor= read_adc();
       Lectura del resultado donde valor es un entero de 16
         bits, según la directiva #DEVICE ADC= empleada. Esta
         directiva trabaja según la tabla:

                    DEVICE    8 bit    10 bit    11 bit   16 bit
                    ADC=8     00-FF     00-FF    00-FF    00-FF
                    ADC=10      x       0-3FF       x        x
                    ADC=11      x         x      0-7FF       x
                    ADC=16   0-FF00    0-FFC0    0-FFE0   0-FFFF


Prof. Luis Zurita                                            Microcontroladores II
A/D en C                                    IUT Cumaná




       • Por ejemplo, el fichero 16F877.h incluye como
         primera directiva #device PIC16F877. Para incluir la
         información del tipo de conversor A/D se debe
         añadir #device adc=10.

       READ_ADC() admite tres modos de funcionamiento:

    ADC_START_AND_READ       Si no se indica nada es la opción por
                             defecto.
                             Permite iniciar y leer el convertidor.
    ADC_START_ONLY           Sólo inicia la conversión.
    ADC_READ_ONLY            Sólo lee los registros del convertidor.


Prof. Luis Zurita                                            Microcontroladores II
A/D en C. Ejercicio 1. Lectura de un canal.                          IUT Cumaná




       En el siguiente ejercicio, se    setup_adc(ADC_CLOCK_INTERNAL);
          medirá un canal analógico setup_adc_ports(ALL_ANALOG);
          que ingresa por RA0 y se          lcd_init();
          muestra su valor en digital y
          en voltaje en una pantalla        while(TRUE){
          LCD.                                set_adc_channel(0);
       #include <16f877a.h>                   delay_ms(100);
       #device ADC=10                         valor=read_adc();
       #fuses                                 p=0.004883*valor;
          XT,NOWDT,NOPROTECT,NOLVP            lcd_gotoxy(1,1);
       #use delay(clock=4000000)        printf(lcd_putc,"fA/DValor=%4LUn",valor);
       #use fast_IO(c)                  printf(lcd_putc,"Voltaje=%g",p);
       #include <lcd.c>                       }
       int16 valor=0;                    }
       float p;

       void main(){
Prof. Luis Zurita                                                         Microcontroladores II
A/D en C. Ejercicio 1. Lectura de un canal.        IUT Cumaná




Prof. Luis Zurita                                       Microcontroladores II
A/D en C. Ejercicio 2. Lectura de dos canales.           IUT Cumaná




       En el siguiente ejercicio, se medirán dos canales
          analógicos (RA0 y RA1), el primero será el valor de
          una variable que se desea medir y el segundo será el
          set point.
       Si la variable está por encima del set point se activa un
          led rojo. En caso contrario se activa un led verde.




Prof. Luis Zurita                                        Microcontroladores II
A/D en C. Ejercicio 2. Lectura de dos canales.      IUT Cumaná




       #include <16f877.h>
       #device ADC=10
       #fuses XT,NOWDT,NOPROTECT,NOLVP
       #use delay(clock=4000000)
       #use fast_IO(C)
       #include <lcd.c>
       int16 valor=0;
       long     setpoint=0;
       float p;
       float psp;

       void main(){
          set_tris_c(0);
          setup_adc(ADC_CLOCK_INTERNAL);
          setup_adc_ports(ALL_ANALOG);
          lcd_init();
          output_C(0);
Prof. Luis Zurita                                   Microcontroladores II
A/D en C. Ejercicio 2. Lectura de dos canales.
                                    Continuación.
                                                                           IUT Cumaná


       while (TRUE){
                set_adc_channel(0);
                delay_ms(10);
                valor=read_adc();
                p=0.004883*valor;
                printf(lcd_putc,"fSENSOR=%gn",p);
                set_adc_channel(1);
                delay_ms(10);
                setpoint=read_adc();
                psp=0.004883*setpoint;
                printf(lcd_putc,"SPOINT=%gn",psp);
                if(p>=psp){
                          output_high(PIN_C0);
                          output_low(PIN_C1);}
                else{
                          output_low(PIN_C0);
                          output_high(PIN_C1);
                }
                delay_ms(50);
         }
       }
Prof. Luis Zurita                                               Microcontroladores II
A/D en C. Ejercicio 2. Lectura de dos canales.      IUT Cumaná




Prof. Luis Zurita                                   Microcontroladores II
A/D en C. Ejercicio 2. Lectura de dos canales.      IUT Cumaná




Prof. Luis Zurita                                   Microcontroladores II
A/D en C. Ejercicio 3. Lectura de ocho canales.                   IUT Cumaná




       En el siguiente ejercicio, se medirán los 8 canales analógicos
          disponibles para el PIC16F877:
       #include <16f877.h>
       #device adc=10
       #fuses XT,NOWDT
       #use delay(clock=4000000)
       #include <math.h>                  //Se incluye para los cálculos
          matemáticos
       #define use_portb_lcd FALSE
       #define use_portd_lcd TRUE
       #include <lcd420.c>
       int16 valor1,valor2,valor3,valor4,valor5,valor6,valor7,valor8;
       float canal1,canal2,canal3,canal4,canal5,canal6,canal7,canal8;
Prof. Luis Zurita                                               Microcontroladores II
void mostrar(){
  lcd_gotoxy(1,1);
   printf(lcd_putc,"C1=%2.2f C2=%2.2f",canal1,canal2);
  delay_ms(50);
  lcd_gotoxy(1,2);
  printf(lcd_putc,"C3=%2.2f C4=%2.2f",canal3,canal4);
  delay_ms(50);
  lcd_gotoxy(1,3);
  printf(lcd_putc,"C5=%2.2f C6=%2.2f",canal5,canal6);
  delay_ms(50);
  lcd_gotoxy(1,4);
  printf(lcd_putc,"C7=%2.2f C8=%2.2f",canal7,canal8);
  delay_ms(50);
}
void main() {                  valor2 = Read_ADC();
  lcd_init();                  canal2 = 5.0 * valor2 /
   SETUP_ADC_PORTS(ALL_ANA    1024.0;
   LOG);                      delay_ms(10);
   setup_adc(                 set_adc_channel(2);
   ADC_CLOCK_INTERNAL );       valor3 = Read_ADC();
   delay_us(10);               canal3 = 5.0 * valor3 /
 while(true) {                1024.0;
   delay_ms(10);              delay_ms(10);
   set_adc_channel(0);        set_adc_channel(3);
    valor1 = Read_ADC();       valor4 = Read_ADC();
    canal1 = 5.0 * valor1 /    canal4 = 5.0 * valor4 /
   1024.0;                    1024.0;
   delay_ms(10);              delay_ms(10);
   set_adc_channel(1);        set_adc_channel(4);
valor5 = Read_ADC();
    canal5 = 5.0 * valor5 / 1024.0;
    delay_ms(10);
    set_adc_channel(5);
    valor6 = Read_ADC();
    canal6 = 5.0 * valor6 / 1024.0;
    delay_ms(10);
    set_adc_channel(6);
    valor7 = Read_ADC();
    canal7 = 5.0 * valor7 / 1024.0;
    delay_ms(10);
    set_adc_channel(7);
    valor8 = Read_ADC();
    canal8 = 5.0 * valor8 / 1024.0;
    delay_ms(10);
    mostrar();
  }
}
A/D en C. Ejercicio 4. Termómetro con una NTC                    IUT Cumaná

                     NTSA0WB203

                 En este ejercicio se plantea diseñar un
             termómetro basado en una NTC modelo
             NTCSA0WB203, con una beta de 4050 y una
             resistencia a 25°C de 20 kΩ.
                 Estas características se pueden ajustar así como
             la temperatura a medir en el menú de edición del
             componente.
                 Nota: Ejercicio tomado de “Compilador C CCS y
             simulador Proteus para Microcontroladores PIC” de
             Eduardo García Breijo.


Prof. Luis Zurita                                         Microcontroladores II
Modificación de los valores de la NTC en                IUT Cumaná



                                   Proteus




                                            Cambiar por 25°C
                                            u otro valor de su
                                            preferencia.




Prof. Luis Zurita                                                Microcontroladores II
A/D en C. Ejercicio 4. Termómetro con una NTC                IUT Cumaná

                     NTSA0WB203

        La NTC se linealiza mediante una resistencia R1 de 10
          kΩ, el valor de la tensión de la NTC(VT) se puede
          obtener mediante las siguientes ecuaciones
          (temperatura en °k):




Prof. Luis Zurita                                     Microcontroladores II
A/D en C. Ejercicio 4. Termómetro con una NTC                             IUT Cumaná

                     NTSA0WB203
       #include "16f877.h"
       #device adc=10
       #fuses XT,NOWDT
       #use delay(clock=4000000)
       #include <math.h>       //Se incluye para los cálculos matemáticos
       #include <lcd.c>

       void main() {
        float tv,tr,temp,y;   //Variables de ecuación
        int16 value;
        lcd_init();
        setup_adc_ports(ALL_ANALOG);
        setup_adc( ADC_CLOCK_INTERNAL );
        set_adc_channel( 0 );
        delay_us(10);

Prof. Luis Zurita                                                  Microcontroladores II
A/D en C. Ejercicio 4. Termómetro con una NTC       IUT Cumaná

                     NTSA0WB203
while(true) {
  value = Read_ADC();
  tv = 5.0 * value / 1024.0;
  tr = tv * 10000.0 / (5.0 - tv);
  A = log(tr/20000.0);
  y = (1.0/298.15) + (A *(1.0/4050.0));
  temp=1.0/y;
  temp = temp -273.15;
  lcd_gotoxy(1,1);
  printf(lcd_putc,"TEMPERATURA");
  delay_ms(50);
    lcd_gotoxy(1,2);
  printf(lcd_putc,"T = %04.2fC", temp);
  delay_ms(50); }
}
Prof. Luis Zurita                            Microcontroladores II
A/D en C. Ejercicio 4. Termómetro con una NTC       IUT Cumaná

                     NTSA0WB203




Prof. Luis Zurita                            Microcontroladores II
PROTOTIPO DAQ USB CON PIC18F4550

Más contenido relacionado

La actualidad más candente

MICROCONTROLADORES II EN C. TEMA 3
MICROCONTROLADORES II EN C. TEMA 3MICROCONTROLADORES II EN C. TEMA 3
MICROCONTROLADORES II EN C. TEMA 3
Luis Zurita
 
MICROCONTROLADORES II EN C. TEMA 5
MICROCONTROLADORES II EN C. TEMA 5MICROCONTROLADORES II EN C. TEMA 5
MICROCONTROLADORES II EN C. TEMA 5
Luis Zurita
 

La actualidad más candente (20)

Control nivel luz
Control nivel luzControl nivel luz
Control nivel luz
 
MARLON
MARLONMARLON
MARLON
 
Unidad IV
Unidad IVUnidad IV
Unidad IV
 
Diapositiva
DiapositivaDiapositiva
Diapositiva
 
MICROCONTROLADORES II EN C. TEMA 3
MICROCONTROLADORES II EN C. TEMA 3MICROCONTROLADORES II EN C. TEMA 3
MICROCONTROLADORES II EN C. TEMA 3
 
Sistema minimo de microcontrolador AT89S8252
Sistema minimo de microcontrolador AT89S8252Sistema minimo de microcontrolador AT89S8252
Sistema minimo de microcontrolador AT89S8252
 
Flip-Flops y aplicaciones de los Latch
Flip-Flops y aplicaciones de los LatchFlip-Flops y aplicaciones de los Latch
Flip-Flops y aplicaciones de los Latch
 
Pulsos de reloj de Circuito integrado 555
Pulsos de reloj de Circuito integrado 555Pulsos de reloj de Circuito integrado 555
Pulsos de reloj de Circuito integrado 555
 
Conversor ADC
Conversor ADCConversor ADC
Conversor ADC
 
Multivibradores, Temporizadores y aplicaciones de los Flip-Flops
Multivibradores, Temporizadores y aplicaciones de los Flip-FlopsMultivibradores, Temporizadores y aplicaciones de los Flip-Flops
Multivibradores, Temporizadores y aplicaciones de los Flip-Flops
 
11 swo proc
11 swo proc11 swo proc
11 swo proc
 
Sumadores
SumadoresSumadores
Sumadores
 
Clase 1 CD II
Clase 1 CD IIClase 1 CD II
Clase 1 CD II
 
Sesion flips flops
Sesion  flips flopsSesion  flips flops
Sesion flips flops
 
Adc fpga
Adc fpgaAdc fpga
Adc fpga
 
Grabacion de microcontroladores_pic
Grabacion de microcontroladores_picGrabacion de microcontroladores_pic
Grabacion de microcontroladores_pic
 
Final 7 digitales
Final 7 digitalesFinal 7 digitales
Final 7 digitales
 
Configuración de multivibrador astable y monoestable
Configuración de multivibrador astable y monoestable Configuración de multivibrador astable y monoestable
Configuración de multivibrador astable y monoestable
 
Inyector y trazador de señal
Inyector y trazador de señalInyector y trazador de señal
Inyector y trazador de señal
 
MICROCONTROLADORES II EN C. TEMA 5
MICROCONTROLADORES II EN C. TEMA 5MICROCONTROLADORES II EN C. TEMA 5
MICROCONTROLADORES II EN C. TEMA 5
 

Destacado (20)

Presentacion proyecto final micro2
Presentacion proyecto final micro2Presentacion proyecto final micro2
Presentacion proyecto final micro2
 
Clase 3 cdii
Clase 3 cdiiClase 3 cdii
Clase 3 cdii
 
Clase 5 cdii
Clase 5 cdiiClase 5 cdii
Clase 5 cdii
 
Tema3 Microii
Tema3 MicroiiTema3 Microii
Tema3 Microii
 
Aprendizaje Significativo
Aprendizaje SignificativoAprendizaje Significativo
Aprendizaje Significativo
 
Plan De Evaluacion
Plan De EvaluacionPlan De Evaluacion
Plan De Evaluacion
 
Clase 4 cdii
Clase 4 cdiiClase 4 cdii
Clase 4 cdii
 
Clase 5 cdii
Clase 5 cdiiClase 5 cdii
Clase 5 cdii
 
Curso Micro Tema 3 2
Curso Micro Tema 3 2Curso Micro Tema 3 2
Curso Micro Tema 3 2
 
Wbt
WbtWbt
Wbt
 
PLC Alternativo
PLC AlternativoPLC Alternativo
PLC Alternativo
 
Manual pic c
Manual pic cManual pic c
Manual pic c
 
Curso Micro Tema 2
Curso Micro Tema 2Curso Micro Tema 2
Curso Micro Tema 2
 
Micro2 tema 2
Micro2 tema 2Micro2 tema 2
Micro2 tema 2
 
Guía rápida tmr0 e interrupciones
Guía rápida tmr0 e interrupcionesGuía rápida tmr0 e interrupciones
Guía rápida tmr0 e interrupciones
 
Micro2 tema 3
Micro2 tema 3Micro2 tema 3
Micro2 tema 3
 
Manejo de perifericos para microcontroladore
Manejo de perifericos para microcontroladoreManejo de perifericos para microcontroladore
Manejo de perifericos para microcontroladore
 
Usart
UsartUsart
Usart
 
Ccp2009170309
Ccp2009170309Ccp2009170309
Ccp2009170309
 
Micro2 tema 1
Micro2 tema 1Micro2 tema 1
Micro2 tema 1
 

Similar a Clase 4 pro

Diseño de un inclinometro para la aplicación de una mesa
Diseño de un inclinometro para la aplicación de una mesaDiseño de un inclinometro para la aplicación de una mesa
Diseño de un inclinometro para la aplicación de una mesa
Darvvin Tapia Miranda
 

Similar a Clase 4 pro (20)

Micro2 tema 4
Micro2 tema 4Micro2 tema 4
Micro2 tema 4
 
Tema3 Microii
Tema3 MicroiiTema3 Microii
Tema3 Microii
 
Compilador CCS.ppt
Compilador CCS.pptCompilador CCS.ppt
Compilador CCS.ppt
 
Adc 4
Adc 4Adc 4
Adc 4
 
Módulo ADC del PIC16F887
Módulo ADC del PIC16F887Módulo ADC del PIC16F887
Módulo ADC del PIC16F887
 
Adc y usart pic16 f887
Adc y usart pic16 f887Adc y usart pic16 f887
Adc y usart pic16 f887
 
Diseño de un inclinometro para la aplicación de una mesa
Diseño de un inclinometro para la aplicación de una mesaDiseño de un inclinometro para la aplicación de una mesa
Diseño de un inclinometro para la aplicación de una mesa
 
ARDUINO - METODOLOGÍA PARA TRADUCIR AL LENGUAJE PROCESSING UN CIRCUITO E...
ARDUINO - METODOLOGÍA PARA TRADUCIR  AL  LENGUAJE  PROCESSING  UN CIRCUITO  E...ARDUINO - METODOLOGÍA PARA TRADUCIR  AL  LENGUAJE  PROCESSING  UN CIRCUITO  E...
ARDUINO - METODOLOGÍA PARA TRADUCIR AL LENGUAJE PROCESSING UN CIRCUITO E...
 
Lab 2..
Lab 2..Lab 2..
Lab 2..
 
Guia Rapida - Reconectador NOJA (1).pdf
Guia Rapida - Reconectador NOJA (1).pdfGuia Rapida - Reconectador NOJA (1).pdf
Guia Rapida - Reconectador NOJA (1).pdf
 
Curso de microcontroladores capitulo 08
Curso de microcontroladores capitulo 08Curso de microcontroladores capitulo 08
Curso de microcontroladores capitulo 08
 
Manual de practicas de Electrónica de potencia
Manual de practicas de Electrónica de potencia Manual de practicas de Electrónica de potencia
Manual de practicas de Electrónica de potencia
 
Ejercicio 07 Timers
Ejercicio 07 TimersEjercicio 07 Timers
Ejercicio 07 Timers
 
Lab.... 2
Lab.... 2Lab.... 2
Lab.... 2
 
2. soft starter monofasico
2. soft starter monofasico2. soft starter monofasico
2. soft starter monofasico
 
NCO
NCONCO
NCO
 
Microprogramacion - Interrupciones y timers
Microprogramacion - Interrupciones y timersMicroprogramacion - Interrupciones y timers
Microprogramacion - Interrupciones y timers
 
Laboratorio 4 electronica 1
Laboratorio 4 electronica 1Laboratorio 4 electronica 1
Laboratorio 4 electronica 1
 
Pic 16 F877XA A/D
Pic 16 F877XA A/DPic 16 F877XA A/D
Pic 16 F877XA A/D
 
Informe N°3-Microcontroladores
Informe N°3-MicrocontroladoresInforme N°3-Microcontroladores
Informe N°3-Microcontroladores
 

Más de Luis Zurita

TALLER NORMAS APA
TALLER NORMAS APATALLER NORMAS APA
TALLER NORMAS APA
Luis Zurita
 
PROTOCOLO MODBUS
PROTOCOLO MODBUSPROTOCOLO MODBUS
PROTOCOLO MODBUS
Luis Zurita
 
Guía rápidalcd y teclado
Guía rápidalcd y tecladoGuía rápidalcd y teclado
Guía rápidalcd y teclado
Luis Zurita
 
Grupos micro2 13
Grupos micro2 13Grupos micro2 13
Grupos micro2 13
Luis Zurita
 
Notas def electronica
Notas def electronicaNotas def electronica
Notas def electronica
Luis Zurita
 
Notas proyecto3 iyc
Notas proyecto3 iycNotas proyecto3 iyc
Notas proyecto3 iyc
Luis Zurita
 
Notas definitivas iyc2013
Notas definitivas iyc2013Notas definitivas iyc2013
Notas definitivas iyc2013
Luis Zurita
 
Proyecto 2 electronica
Proyecto 2 electronicaProyecto 2 electronica
Proyecto 2 electronica
Luis Zurita
 
Acumuladas electronica
Acumuladas electronicaAcumuladas electronica
Acumuladas electronica
Luis Zurita
 
Proyecto2 notas iyc2013
Proyecto2 notas iyc2013Proyecto2 notas iyc2013
Proyecto2 notas iyc2013
Luis Zurita
 
Acumuladas iyc2013
Acumuladas iyc2013Acumuladas iyc2013
Acumuladas iyc2013
Luis Zurita
 

Más de Luis Zurita (20)

TALLER NORMAS APA
TALLER NORMAS APATALLER NORMAS APA
TALLER NORMAS APA
 
PROTOCOLO MODBUS
PROTOCOLO MODBUSPROTOCOLO MODBUS
PROTOCOLO MODBUS
 
Guía rápidalcd y teclado
Guía rápidalcd y tecladoGuía rápidalcd y teclado
Guía rápidalcd y teclado
 
Pevmicroi ieo
Pevmicroi ieoPevmicroi ieo
Pevmicroi ieo
 
Pevmicroii13 2
Pevmicroii13 2Pevmicroii13 2
Pevmicroii13 2
 
Pevmicro1 t2 13
Pevmicro1 t2 13Pevmicro1 t2 13
Pevmicro1 t2 13
 
Pev electronica
Pev electronicaPev electronica
Pev electronica
 
Grupos micro2 13
Grupos micro2 13Grupos micro2 13
Grupos micro2 13
 
Pevmicro1 t2 13
Pevmicro1 t2 13Pevmicro1 t2 13
Pevmicro1 t2 13
 
Micro2 tema 5
Micro2 tema 5Micro2 tema 5
Micro2 tema 5
 
Pevmicroii13 2
Pevmicroii13 2Pevmicroii13 2
Pevmicroii13 2
 
Notas def electronica
Notas def electronicaNotas def electronica
Notas def electronica
 
Notas proyecto3 iyc
Notas proyecto3 iycNotas proyecto3 iyc
Notas proyecto3 iyc
 
Notas definitivas iyc2013
Notas definitivas iyc2013Notas definitivas iyc2013
Notas definitivas iyc2013
 
Proyecto 2 electronica
Proyecto 2 electronicaProyecto 2 electronica
Proyecto 2 electronica
 
Acumuladas electronica
Acumuladas electronicaAcumuladas electronica
Acumuladas electronica
 
Pevmicro2013
Pevmicro2013Pevmicro2013
Pevmicro2013
 
Proyecto2 notas iyc2013
Proyecto2 notas iyc2013Proyecto2 notas iyc2013
Proyecto2 notas iyc2013
 
Acumuladas iyc2013
Acumuladas iyc2013Acumuladas iyc2013
Acumuladas iyc2013
 
TMR0 Y RB0_INT
TMR0 Y RB0_INTTMR0 Y RB0_INT
TMR0 Y RB0_INT
 

Último

Ferias de ciencias y estrategia STEAM – PNFCyT 2024.pdf
Ferias de ciencias y estrategia STEAM – PNFCyT 2024.pdfFerias de ciencias y estrategia STEAM – PNFCyT 2024.pdf
Ferias de ciencias y estrategia STEAM – PNFCyT 2024.pdf
JudithRomero51
 
Presentación de medicina Enfermedades Fotográfico Moderno Morado (1).pdf
Presentación de medicina Enfermedades Fotográfico Moderno Morado (1).pdfPresentación de medicina Enfermedades Fotográfico Moderno Morado (1).pdf
Presentación de medicina Enfermedades Fotográfico Moderno Morado (1).pdf
juancmendez1405
 
diagnostico final (1). analisis - encuestas
diagnostico final (1). analisis - encuestasdiagnostico final (1). analisis - encuestas
diagnostico final (1). analisis - encuestas
ansomora123
 
Un libro sin recetas, para la maestra y el maestro Fase 3.pdf
Un libro sin recetas, para la maestra y el maestro Fase 3.pdfUn libro sin recetas, para la maestra y el maestro Fase 3.pdf
Un libro sin recetas, para la maestra y el maestro Fase 3.pdf
sandradianelly
 
PRÁCTICAS PEDAGOGÍA.pdf_Educación Y Sociedad_AnaFernández
PRÁCTICAS PEDAGOGÍA.pdf_Educación Y Sociedad_AnaFernándezPRÁCTICAS PEDAGOGÍA.pdf_Educación Y Sociedad_AnaFernández
PRÁCTICAS PEDAGOGÍA.pdf_Educación Y Sociedad_AnaFernández
Ruben53283
 

Último (20)

Presentación Revistas y Periódicos Digitales
Presentación Revistas y Periódicos DigitalesPresentación Revistas y Periódicos Digitales
Presentación Revistas y Periódicos Digitales
 
PROYECTO INTEGRADOR ARCHIDUQUE. presentacion
PROYECTO INTEGRADOR ARCHIDUQUE. presentacionPROYECTO INTEGRADOR ARCHIDUQUE. presentacion
PROYECTO INTEGRADOR ARCHIDUQUE. presentacion
 
4.Conectores Dos_Enfermería_Espanolacademico
4.Conectores Dos_Enfermería_Espanolacademico4.Conectores Dos_Enfermería_Espanolacademico
4.Conectores Dos_Enfermería_Espanolacademico
 
Ferias de ciencias y estrategia STEAM – PNFCyT 2024.pdf
Ferias de ciencias y estrategia STEAM – PNFCyT 2024.pdfFerias de ciencias y estrategia STEAM – PNFCyT 2024.pdf
Ferias de ciencias y estrategia STEAM – PNFCyT 2024.pdf
 
LA ILIADA Y LA ODISEA.LITERATURA UNIVERSAL
LA ILIADA Y LA ODISEA.LITERATURA UNIVERSALLA ILIADA Y LA ODISEA.LITERATURA UNIVERSAL
LA ILIADA Y LA ODISEA.LITERATURA UNIVERSAL
 
Proyecto Integrador 2024. Archiduque entrevistas
Proyecto Integrador 2024. Archiduque entrevistasProyecto Integrador 2024. Archiduque entrevistas
Proyecto Integrador 2024. Archiduque entrevistas
 
Cerebelo Anatomía y fisiología Clase presencial
Cerebelo Anatomía y fisiología Clase presencialCerebelo Anatomía y fisiología Clase presencial
Cerebelo Anatomía y fisiología Clase presencial
 
Presentación de medicina Enfermedades Fotográfico Moderno Morado (1).pdf
Presentación de medicina Enfermedades Fotográfico Moderno Morado (1).pdfPresentación de medicina Enfermedades Fotográfico Moderno Morado (1).pdf
Presentación de medicina Enfermedades Fotográfico Moderno Morado (1).pdf
 
Lección 1: Los complementos del Verbo ...
Lección 1: Los complementos del Verbo ...Lección 1: Los complementos del Verbo ...
Lección 1: Los complementos del Verbo ...
 
Módulo No. 1 Salud mental y escucha activa FINAL 25ABR2024 técnicos.pptx
Módulo No. 1 Salud mental y escucha activa FINAL 25ABR2024 técnicos.pptxMódulo No. 1 Salud mental y escucha activa FINAL 25ABR2024 técnicos.pptx
Módulo No. 1 Salud mental y escucha activa FINAL 25ABR2024 técnicos.pptx
 
ESTEREOTIPOS Y ROLES DE GÉNERO (labor de grupo)
ESTEREOTIPOS  Y ROLES DE GÉNERO (labor de grupo)ESTEREOTIPOS  Y ROLES DE GÉNERO (labor de grupo)
ESTEREOTIPOS Y ROLES DE GÉNERO (labor de grupo)
 
diagnostico final (1). analisis - encuestas
diagnostico final (1). analisis - encuestasdiagnostico final (1). analisis - encuestas
diagnostico final (1). analisis - encuestas
 
Evaluación de los Factores Internos de la Organización
Evaluación de los Factores Internos de la OrganizaciónEvaluación de los Factores Internos de la Organización
Evaluación de los Factores Internos de la Organización
 
ensayo literario rios profundos jose maria ARGUEDAS
ensayo literario rios profundos jose maria ARGUEDASensayo literario rios profundos jose maria ARGUEDAS
ensayo literario rios profundos jose maria ARGUEDAS
 
Material-de-Apoyo-Escuela-Sabatica-02-2-2024.pptx.ppt
Material-de-Apoyo-Escuela-Sabatica-02-2-2024.pptx.pptMaterial-de-Apoyo-Escuela-Sabatica-02-2-2024.pptx.ppt
Material-de-Apoyo-Escuela-Sabatica-02-2-2024.pptx.ppt
 
Diagnostico del corregimiento de Junin del municipio de Barbacoas
Diagnostico del corregimiento de Junin del municipio de BarbacoasDiagnostico del corregimiento de Junin del municipio de Barbacoas
Diagnostico del corregimiento de Junin del municipio de Barbacoas
 
Un libro sin recetas, para la maestra y el maestro Fase 3.pdf
Un libro sin recetas, para la maestra y el maestro Fase 3.pdfUn libro sin recetas, para la maestra y el maestro Fase 3.pdf
Un libro sin recetas, para la maestra y el maestro Fase 3.pdf
 
📝 Semana 09 - Tema 01: Tarea - Aplicación del resumen como estrategia de fuen...
📝 Semana 09 - Tema 01: Tarea - Aplicación del resumen como estrategia de fuen...📝 Semana 09 - Tema 01: Tarea - Aplicación del resumen como estrategia de fuen...
📝 Semana 09 - Tema 01: Tarea - Aplicación del resumen como estrategia de fuen...
 
PRÁCTICAS PEDAGOGÍA.pdf_Educación Y Sociedad_AnaFernández
PRÁCTICAS PEDAGOGÍA.pdf_Educación Y Sociedad_AnaFernándezPRÁCTICAS PEDAGOGÍA.pdf_Educación Y Sociedad_AnaFernández
PRÁCTICAS PEDAGOGÍA.pdf_Educación Y Sociedad_AnaFernández
 
BIENESTAR TOTAL - LA EXPERIENCIA DEL CLIENTE CON ATR
BIENESTAR TOTAL - LA EXPERIENCIA DEL CLIENTE CON ATRBIENESTAR TOTAL - LA EXPERIENCIA DEL CLIENTE CON ATR
BIENESTAR TOTAL - LA EXPERIENCIA DEL CLIENTE CON ATR
 

Clase 4 pro

  • 1. IUT Cumaná MICROCONTROLADORES II MÓDULO A/D (Convertidor Analógico/Digital) PROF. LUIS ZURITA
  • 2. IUT Cumaná RESOLUCIÓN Prof. Luis Zurita Microcontroladores II
  • 3. VOLTAJES DE REFERENCIA EXTERNOS IUT Cumaná • El convertidor A/D puede seleccionar como tensión de referencia la interna VDD y Tierra. • Para referencias externas, se introducen por: • RA3/AN3/VREF+ y RA2/AN2/VREF- • Las siguientes limitaciones aplican: – El máximo voltaje aplicado a VREF+ (RA3/AN3) será VDD+0,3V y el mínimo VDD-2,5V. – Sobre el voltaje aplicado a VREF- (RA2/AN2) la mínima tensión será VSS-0,3V y la máxima (VREF+) - 2V. – Por ejemplo, si la tensión de alimentación es de 5V, la tensión en RA3/AN3 no podrá exceder de 5V. Por lo Prof. Luis Zurita que el máximo voltaje en VREF- será de 3V. Microcontroladores II
  • 4. IUT Cumaná REGISTROS RELACIONADOS AL MÓDULO A/D • ADCON0: Registro de control 0. (Banco 0). • ADCON1: Registro de control 1. (Banco 1). • ADRESH: Guarda la parte alta del Resultado de la conversión. (Banco 0). • ADRESL: Guarda la parte baja del Resultado de la conversión. (Banco 1). Prof. Luis Zurita Microcontroladores II
  • 5. • Selección del reloj de conversión A/D IUT Cumaná El tiempo de conversión A/D por bit se define como TAD. La conversión A/D requiere mínimo 12TAD por 10-bits de conversión. • La fuente del reloj de conversión A/D es seleccionado por software, mediante los bits ADCON0 <7:6>. Las cuatro opciones posibles para TAD son: ADCS 1:0 PERÍODO 0 0 2TOSC 0 1 8TOSC 1 0 32TOSC 1 1 RC interno (2-6 μs) Prof. Luis Zurita Microcontroladores II
  • 6. Tiempo de adquisición (TACQ) IUT Cumaná • Es el tiempo necesario para que se cargue el condensador de retención interno, con la tensión de entrada. Este proceso de carga del condensador depende de distintos factores, entre otros, la impedancia de la fuente de tensión de entrada (el fabricante recomienda que se sitúe por debajo de 10 kohm. • El tiempo de adquisición dentro de los márgenes típicos es de aproximadamente 20μs. • La adquisición no comienza hasta que no acabe la conversión. Por lo que se debe esperar un TACQ tras una conversión , para seleccionar un nuevo canal o luego de encender el módulo AD. Prof. Luis Zurita Microcontroladores II
  • 7. IUT Cumaná Tiempo de conversión (TAD) • Es el tiempo necesario para obtener el valor digital de la tensión analógica de entrada. Este tiempo depende de la fuente de reloj que se seleccione para la conversión. Prof. Luis Zurita Microcontroladores II
  • 8. IUT Cumaná • Para un control adecuado de conversiones A/D, el reloj de conversión A/D (TAD) deben ser seleccionados para asegurar un tiempo mínimo TAD de 1,6 μs. •La siguiente tabla muestra los tiempos de TAD derivada de las frecuencias de funcionamiento del dispositivo y de la fuente de reloj A/D de reloj seleccionado. Prof. Luis Zurita Microcontroladores II
  • 9. IUT Cumaná CICLOS DE CONVERSIÓN Prof. Luis Zurita Microcontroladores II
  • 10. IUT Cumaná FORMATO DE RESULTADOS Prof. Luis Zurita Microcontroladores II
  • 11. IUT Cumaná Prof. Luis Zurita Microcontroladores II
  • 12. IUT Cumaná Prof. Luis Zurita Microcontroladores II
  • 13. IUT Cumaná Prof. Luis Zurita Microcontroladores II
  • 14. IUT Cumaná PASOS PARA REALIZAR UNA CONVERSIÓN 1. Configurar el módulo conversor A/D · Configurar los pines que actúan como entradas analógicas, las señales que harán de tensión de referencia y las que trabajarán como E/S digitales. (ADCON1). · Seleccionar el canal de entrada. A/D (ADCON0). · Seleccionar la fuente de la señal de reloj para la conversión A/D (ADON0). · Activar el módulo de conversión A/D (ADCON0) Prof. Luis Zurita Microcontroladores II
  • 15. IUT Cumaná PASOS PARA REALIZAR UNA CONVERSIÓN 2. Activar si, se desea, la interrupción. del módulo conversor A/D: · Poner a cero el bit ADIF · Poner a uno el bit ADIE · Poner a uno los bits habilitadores GIE y PEIE 3. Esperar el tiempo requerido para la adquisición. 4. Inicio de la conversión: · Poner a 1 el bit GO/#DONE (ADCON0) Prof. Luis Zurita Microcontroladores II
  • 16. IUT Cumaná PASOS PARA REALIZAR UNA CONVERSIÓN 5. Tiempo de espera para terminar la conversión A/D que puede detectarse Por: · Exploración de bit GO/DONE# , que al finalizar la conversión toma el valor “0” · Esperar que se produzca una interrupción si se ha programado al finalizar la conversión. · Aunque no se autorice la interrupción el flag ADIF se pone a “ 1 “ al finalizar la interrupción. Prof. Luis Zurita Microcontroladores II
  • 17. IUT Cumaná PASOS PARA REALIZAR UNA CONVERSIÓN 6. Leer el par de registros ADRESH:ADRESL donde se encuentran los 10 bits que resultan de la conversión y poner a cero el flag ADIF. 7. Para una nueva conversión volver a los pasos 1 y 2, el tiempo de conversión por bit está definido por TAD, se exige un mínimo de 2*TAD para realizar una nueva conversión. Prof. Luis Zurita Microcontroladores II
  • 18. A/D en C IUT Cumaná • En el compilador C las funciones para manejar el convertidor A/D son las siguientes: setup_adc(modo); Donde modo, determina la configuración del módulo A/D correspondiente a los bits 7:6 del ADCON0. setup_adc(modo); ADCON0(1Fh) ADC_OFF 00000000 ADC_CLOCK_INTERNAL 11000000 ADC_CLOCK_DIV_2 00000000 ADC_CLOCK_DIV_8 01000000 ADC_CLOCK_DIV_32 10000000 setup_adc_ports(valor); Valor: definición de las entradas analógicas Prof. Luis Zurita correspondiente a los bits 3:0 del ADCON1.Microcontroladores II
  • 19. PCFG3 AN7 AN6 AN5 AN4 AN3 AN2 AN1 AN0 setup_adc_ports(valor); RE2 RE1 RE0 RA5 RA3 RA2 RA1 RA0 PCFG0 0000 A A A A A A A A ALL_ANALOG 0001 A A A A VREF+ A A A AN0_AN1_AN2_AN4_AN5_AN6_AN7_VSS_VREF 0010 D D D A A A A A AN0_AN1_AN2_AN3_AN4 0011 D D D A VREF+ A A A AN0_AN1_AN2_AN4_VSS_VREF 0100 D D D D A D A A AN0_AN1_AN3 0101 D D D D VREF+ D A A AN0_AN1_VSS_VREF 011X D D D D D D D D NO_ANALOGS 1000 A A A A VREF+ VREF- A A AN0_AN1_AN4_AN5_AN6_AN7_VREF_VREF 1001 D D A A A A A A AN0_AN1_AN2_AN3_AN4_AN5 1010 D D A A VREF+ A A A AN0_AN1_AN2_AN4_AN5_VSS_VREF 1011 D D A A VREF+ VREF- A A AN0_AN1_AN4_AN5_VREF_VREF 1100 D D D A VREF+ VREF- A A A_ANALOG_RA3_RA2_REF 1101 D D D D VREF+ VREF- A A AN0_AN1_VREF_VREF 1110 D D D D D D D A AN0 1111 D D D D VREF+ VREF- D A AN0_VREF_VREF
  • 20. A/D en C IUT Cumaná set_adc_channel(canal) Canal: selección del canal analógico correspondiente a los bits 5:3 del ADCON0. 0(AN0) 1(AN1) 2(AN2) 3(AN3) 4(AN4) 5(AN5) 6(AN6) 7(AN7) Prof. Luis Zurita Microcontroladores II
  • 21. A/D en C IUT Cumaná valor= read_adc(); Lectura del resultado donde valor es un entero de 16 bits, según la directiva #DEVICE ADC= empleada. Esta directiva trabaja según la tabla: DEVICE 8 bit 10 bit 11 bit 16 bit ADC=8 00-FF 00-FF 00-FF 00-FF ADC=10 x 0-3FF x x ADC=11 x x 0-7FF x ADC=16 0-FF00 0-FFC0 0-FFE0 0-FFFF Prof. Luis Zurita Microcontroladores II
  • 22. A/D en C IUT Cumaná • Por ejemplo, el fichero 16F877.h incluye como primera directiva #device PIC16F877. Para incluir la información del tipo de conversor A/D se debe añadir #device adc=10. READ_ADC() admite tres modos de funcionamiento: ADC_START_AND_READ Si no se indica nada es la opción por defecto. Permite iniciar y leer el convertidor. ADC_START_ONLY Sólo inicia la conversión. ADC_READ_ONLY Sólo lee los registros del convertidor. Prof. Luis Zurita Microcontroladores II
  • 23. A/D en C. Ejercicio 1. Lectura de un canal. IUT Cumaná En el siguiente ejercicio, se setup_adc(ADC_CLOCK_INTERNAL); medirá un canal analógico setup_adc_ports(ALL_ANALOG); que ingresa por RA0 y se lcd_init(); muestra su valor en digital y en voltaje en una pantalla while(TRUE){ LCD. set_adc_channel(0); #include <16f877a.h> delay_ms(100); #device ADC=10 valor=read_adc(); #fuses p=0.004883*valor; XT,NOWDT,NOPROTECT,NOLVP lcd_gotoxy(1,1); #use delay(clock=4000000) printf(lcd_putc,"fA/DValor=%4LUn",valor); #use fast_IO(c) printf(lcd_putc,"Voltaje=%g",p); #include <lcd.c> } int16 valor=0; } float p; void main(){ Prof. Luis Zurita Microcontroladores II
  • 24. A/D en C. Ejercicio 1. Lectura de un canal. IUT Cumaná Prof. Luis Zurita Microcontroladores II
  • 25. A/D en C. Ejercicio 2. Lectura de dos canales. IUT Cumaná En el siguiente ejercicio, se medirán dos canales analógicos (RA0 y RA1), el primero será el valor de una variable que se desea medir y el segundo será el set point. Si la variable está por encima del set point se activa un led rojo. En caso contrario se activa un led verde. Prof. Luis Zurita Microcontroladores II
  • 26. A/D en C. Ejercicio 2. Lectura de dos canales. IUT Cumaná #include <16f877.h> #device ADC=10 #fuses XT,NOWDT,NOPROTECT,NOLVP #use delay(clock=4000000) #use fast_IO(C) #include <lcd.c> int16 valor=0; long setpoint=0; float p; float psp; void main(){ set_tris_c(0); setup_adc(ADC_CLOCK_INTERNAL); setup_adc_ports(ALL_ANALOG); lcd_init(); output_C(0); Prof. Luis Zurita Microcontroladores II
  • 27. A/D en C. Ejercicio 2. Lectura de dos canales. Continuación. IUT Cumaná while (TRUE){ set_adc_channel(0); delay_ms(10); valor=read_adc(); p=0.004883*valor; printf(lcd_putc,"fSENSOR=%gn",p); set_adc_channel(1); delay_ms(10); setpoint=read_adc(); psp=0.004883*setpoint; printf(lcd_putc,"SPOINT=%gn",psp); if(p>=psp){ output_high(PIN_C0); output_low(PIN_C1);} else{ output_low(PIN_C0); output_high(PIN_C1); } delay_ms(50); } } Prof. Luis Zurita Microcontroladores II
  • 28. A/D en C. Ejercicio 2. Lectura de dos canales. IUT Cumaná Prof. Luis Zurita Microcontroladores II
  • 29. A/D en C. Ejercicio 2. Lectura de dos canales. IUT Cumaná Prof. Luis Zurita Microcontroladores II
  • 30. A/D en C. Ejercicio 3. Lectura de ocho canales. IUT Cumaná En el siguiente ejercicio, se medirán los 8 canales analógicos disponibles para el PIC16F877: #include <16f877.h> #device adc=10 #fuses XT,NOWDT #use delay(clock=4000000) #include <math.h> //Se incluye para los cálculos matemáticos #define use_portb_lcd FALSE #define use_portd_lcd TRUE #include <lcd420.c> int16 valor1,valor2,valor3,valor4,valor5,valor6,valor7,valor8; float canal1,canal2,canal3,canal4,canal5,canal6,canal7,canal8; Prof. Luis Zurita Microcontroladores II
  • 31. void mostrar(){ lcd_gotoxy(1,1); printf(lcd_putc,"C1=%2.2f C2=%2.2f",canal1,canal2); delay_ms(50); lcd_gotoxy(1,2); printf(lcd_putc,"C3=%2.2f C4=%2.2f",canal3,canal4); delay_ms(50); lcd_gotoxy(1,3); printf(lcd_putc,"C5=%2.2f C6=%2.2f",canal5,canal6); delay_ms(50); lcd_gotoxy(1,4); printf(lcd_putc,"C7=%2.2f C8=%2.2f",canal7,canal8); delay_ms(50); }
  • 32. void main() { valor2 = Read_ADC(); lcd_init(); canal2 = 5.0 * valor2 / SETUP_ADC_PORTS(ALL_ANA 1024.0; LOG); delay_ms(10); setup_adc( set_adc_channel(2); ADC_CLOCK_INTERNAL ); valor3 = Read_ADC(); delay_us(10); canal3 = 5.0 * valor3 / while(true) { 1024.0; delay_ms(10); delay_ms(10); set_adc_channel(0); set_adc_channel(3); valor1 = Read_ADC(); valor4 = Read_ADC(); canal1 = 5.0 * valor1 / canal4 = 5.0 * valor4 / 1024.0; 1024.0; delay_ms(10); delay_ms(10); set_adc_channel(1); set_adc_channel(4);
  • 33. valor5 = Read_ADC(); canal5 = 5.0 * valor5 / 1024.0; delay_ms(10); set_adc_channel(5); valor6 = Read_ADC(); canal6 = 5.0 * valor6 / 1024.0; delay_ms(10); set_adc_channel(6); valor7 = Read_ADC(); canal7 = 5.0 * valor7 / 1024.0; delay_ms(10); set_adc_channel(7); valor8 = Read_ADC(); canal8 = 5.0 * valor8 / 1024.0; delay_ms(10); mostrar(); } }
  • 34.
  • 35. A/D en C. Ejercicio 4. Termómetro con una NTC IUT Cumaná NTSA0WB203 En este ejercicio se plantea diseñar un termómetro basado en una NTC modelo NTCSA0WB203, con una beta de 4050 y una resistencia a 25°C de 20 kΩ. Estas características se pueden ajustar así como la temperatura a medir en el menú de edición del componente. Nota: Ejercicio tomado de “Compilador C CCS y simulador Proteus para Microcontroladores PIC” de Eduardo García Breijo. Prof. Luis Zurita Microcontroladores II
  • 36. Modificación de los valores de la NTC en IUT Cumaná Proteus Cambiar por 25°C u otro valor de su preferencia. Prof. Luis Zurita Microcontroladores II
  • 37. A/D en C. Ejercicio 4. Termómetro con una NTC IUT Cumaná NTSA0WB203 La NTC se linealiza mediante una resistencia R1 de 10 kΩ, el valor de la tensión de la NTC(VT) se puede obtener mediante las siguientes ecuaciones (temperatura en °k): Prof. Luis Zurita Microcontroladores II
  • 38. A/D en C. Ejercicio 4. Termómetro con una NTC IUT Cumaná NTSA0WB203 #include "16f877.h" #device adc=10 #fuses XT,NOWDT #use delay(clock=4000000) #include <math.h> //Se incluye para los cálculos matemáticos #include <lcd.c> void main() { float tv,tr,temp,y; //Variables de ecuación int16 value; lcd_init(); setup_adc_ports(ALL_ANALOG); setup_adc( ADC_CLOCK_INTERNAL ); set_adc_channel( 0 ); delay_us(10); Prof. Luis Zurita Microcontroladores II
  • 39. A/D en C. Ejercicio 4. Termómetro con una NTC IUT Cumaná NTSA0WB203 while(true) { value = Read_ADC(); tv = 5.0 * value / 1024.0; tr = tv * 10000.0 / (5.0 - tv); A = log(tr/20000.0); y = (1.0/298.15) + (A *(1.0/4050.0)); temp=1.0/y; temp = temp -273.15; lcd_gotoxy(1,1); printf(lcd_putc,"TEMPERATURA"); delay_ms(50); lcd_gotoxy(1,2); printf(lcd_putc,"T = %04.2fC", temp); delay_ms(50); } } Prof. Luis Zurita Microcontroladores II
  • 40. A/D en C. Ejercicio 4. Termómetro con una NTC IUT Cumaná NTSA0WB203 Prof. Luis Zurita Microcontroladores II
  • 41.
  • 42. PROTOTIPO DAQ USB CON PIC18F4550