Sei sulla pagina 1di 10

Ing.

Electrónica – Microcontroladores

MODULO ADC

Cuando conectamos los sensores al microcontrolador, la salida del sensor muchas de las veces son de
naturaleza analógica. Pero el microcontrolador procesa señales digitales.
Por lo tanto, utilizamos ADC entre el sensor y el microcontrolador. Convierte una señal analógica en
digital y la entrega al microcontrolador. Hay una gran cantidad de aplicaciones de ADC como en una
aplicación biométrica, monitoreo del entorno, detección de fugas de gas, etc.
PIC18f45K50 tiene incorporado ADC de 10 bits y 28 canales.
Los 28 canales de ADC se denominan AN0-AN27. Esto significa que podemos conectar 28 sensores
diferentes al mismo tiempo.
ADC de 10 bits significa:
Dará un conteo digital en el rango de 0-1023 (210).
Calculo del valor digital de salida:
𝑉𝑟𝑒𝑓 𝑉𝑖𝑛
𝐴𝐷𝐶 𝑅𝑒𝑠𝑜𝑙𝑢𝑐𝑖𝑜𝑛 = 2𝑛 −1
𝑆𝑎𝑙𝑖𝑑𝑎 𝐷𝑖𝑔𝑖𝑡𝑎𝑙 = 𝑅𝑒𝑠𝑜𝑙𝑢𝑐𝑖𝑜𝑛

Para mantener las cosas simples, consideremos que Vref es 5V,


Para 0v de Vin => valor = 0
Para 5v de Vin => valor =1023 (10 bits)
Para 2.5v de Vin => valor= 512 (10 bits)

Registros ADRESH y ADRESL

Ing. Luis Gutiérrez Magán 1


Ing. Electrónica – Microcontroladores

Los registros ADRESH (byte alto) y ADRESL (byte bajo) se utilizan en combinación para almacenar
los datos convertidos, es decir, los datos digitales. Pero los datos solo tienen un ancho de 10 bits, por
lo que los seis bits restantes no se utilizan.

Registro ADCON0

CHS4-CHS0 – Analog Channel Select bits (bits de selección de canal analógico)


selecciona un pin o un canal analógico para la conversión A/D, o sea para medir el voltaje:

CHS4 CHS3 CHS2 CHS1 CHS0 CANAL PIN


0 0 0 0 0 AN0 RA0
0 0 0 0 1 AN1 RA1
0 0 0 1 0 AN2 RA2
0 0 0 1 1 AN3 RA3
0 0 1 0 0 AN4 RA5
0 0 1 0 1 AN5 RE0
0 0 1 1 0 AN6 RE1
0 0 1 1 1 AN7 RE2
0 1 0 0 0 AN8 RB2
0 1 0 0 1 AN9 RB3
0 1 0 1 0 AN10 RB1
0 1 0 1 1 AN11 RB4
0 1 1 0 0 AN12 RB0
0 1 1 0 1 AN13 RB5
0 1 1 1 0 AN14 RC2
0 1 1 1 1 AN15 -
1 0 0 0 0 AN16 -
1 0 0 0 1 AN17 -
1 0 0 1 0 AN18 RC6
1 0 0 1 1 AN19 RC7
1 0 1 0 0 AN20 RD0
1 0 1 0 1 AN21 RD1
1 0 1 1 0 AN22 RD2
1 0 1 1 1 AN23 RD3
1 1 0 0 0 AN24 RD4
1 1 0 0 1 AN25 RD5
1 1 0 1 0 AN26 RD6
1 1 0 1 1 AN27 RD7

Ing. Luis Gutiérrez Magán 2


Ing. Electrónica – Microcontroladores

GO/DONE – A/D Conversion Status bit (bit de estado de la conversión A/D) determina
el estado actual de de la conversión:
• 1 – La conversión A/D está en progreso.
• 0 – La conversión A/D ha finalizado. El bit se pone a cero automáticamente por
hardware cuando la conversión A/D finaliza.
ADON – A/D On bit (bit de encendido A/D) habilita el convertidor A/D.
• 1 – Convertidor A/D está habilitado.
• 0 – Convertidor A/D está deshabilitado.

ADCS1, ADCS0 – A/D Conversion Clock Select bits (bits de selección de reloj de conversión A/D)
selecciona la frecuencia de reloj utilizada para sincronización interna del convertidor A/D. Asimismo
afecta a la duración de la conversión.

ADCS1 ADCS2 RELOJ

0 0 Fosc/2

0 1 Fosc/8

1 0 Fosc/32

1 1 RC *

* Señal de reloj se genera por el oscilador interno RC que está integrado en el


convertidor.

REQUERIMIENTOS DE ADQUISICIÓN A/D


Para que el convertidor A/D alcance su exactitud especificada, es necesario proporcionar un cierto
tiempo muerto entre seleccionar una entrada analógica específica y la medición misma. Este tiempo
se le denomina “tiempo de adquisición” y generalmente depende de la impedancia de la fuente. Se
utiliza una ecuación para hacer cálculo de tiempo de adquisición con precisión, cuyo valor mínimo
es de 20uS aproximadamente. Por consiguiente, para realizar una conversión con precisión, no se
olvide este detalle.

RELOJ PARA LA CONVERSIÓN A/D


El tiempo necesario para realizar una conversión A/D cuyo resultado es 1 bit se define en unidades
de TAD. Se requiere que sea como mínimo 1,6 uS. Para realizar una conversión completa de 10 bits
se requiere un poco más tiempo de lo esperado, son 11 TAD. Como la frecuencia de reloj así como
la fuente de conversión A/D son determinadas por software, es necesario seleccionar una de las
combinaciones de los bits disponibles ADCCS2, ADCS1 y ADCS0 antes de empezar a medir voltaje
en una de las entradas analógicas. Estos bits se almacenan en el registro ADCON0.

Ing. Luis Gutiérrez Magán 3


Ing. Electrónica – Microcontroladores

¿CÓMO UTILIZAR EL CONVERTIDOR A/D?

Para llevar a cabo una conversión A/D sin problemas, así como para evitar los
resultados inesperados, es necesario considerar lo siguiente:

• El convertidor A/D no hace diferencia entre señales digitales y analógicas. Para evitar
errores en medición o dañar el chip, los pines se deben configurar como entradas
analógicas antes de que empiece el proceso de conversión. Para este propósito se
usan los registros TRIS y ANSEL (ANSELH);
• Al leer el estado de puerto con las entradas analógicas, el estado de los bits
correspondientes se leerá como cero lógico (0), sin reparar en el valor del voltaje real
en el pin; y
• Hablando en términos generales, la medición de voltaje en el convertidor está basado
en comparar voltaje de entrada con una escala interna que tiene 1023 grados (210 – 1
=1023). El grado más bajo de esta escala representa el voltaje Vref-, mientras que el
grado más alto se refiere al voltaje Vref+. La siguiente figura muestra los voltajes de
referencia seleccionables así como sus valores máximos y mínimos.

Ing. Luis Gutiérrez Magán 4


Ing. Electrónica – Microcontroladores

Primera aplicación:
En nuestra primera aplicación leeremos un sensor de temperatura LM35 por el puerto analógico AN4.
El resultado de la conversión lo veremos en un display de 16x2. Usaremos un cristal interno de
16MHz. En la siguiente figura vemos el esquema

El código del programa

Ing. Luis Gutiérrez Magán 5


Ing. Electrónica – Microcontroladores

Ing. Luis Gutiérrez Magán 6


Ing. Electrónica – Microcontroladores

Segunda Aplicación
En este segundo programa usaremos 2 entradas analógicas que leerán cada una de ellas un sensor
LM35. Nuevamente veremos el resultado en un lcd de 16x2.

Ing. Luis Gutiérrez Magán 7


Ing. Electrónica – Microcontroladores

Ing. Luis Gutiérrez Magán 8


Ing. Electrónica – Microcontroladores

Tercera Aplicación:
En la tercera aplicación se leerá un LM35 mientras se va haciendo un corrimiento de leds por el puerto
D. Para esto hacemos uso de las interrupciones del ADC. Nuevamente poner un cristal interno de
8MHz.

Ing. Luis Gutiérrez Magán 9


Ing. Electrónica – Microcontroladores

Ing. Luis Gutiérrez Magán 10

Potrebbero piacerti anche