Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
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
𝑆𝑎𝑙𝑖𝑑𝑎 𝐷𝑖𝑔𝑖𝑡𝑎𝑙 = 𝑅𝑒𝑠𝑜𝑙𝑢𝑐𝑖𝑜𝑛
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
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.
0 0 Fosc/2
0 1 Fosc/8
1 0 Fosc/32
1 1 RC *
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.
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
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.
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.