Ago 312013

 

Muchos microcontroladores o PIC tienen un periférico llamado Conversor Análogico Digital, también es conocido como ADC por las siglas de su nombre en inglés, Analog to Digital Converter. Este dispositivo sumamente útil convierte un voltaje análogico, ésto es un cierto nivel de voltaje común y corriente, en un número binario que puede ser manipulado en un programa.

Debido a que muchos sensores entregan los valores que leen como voltajes análogicos el uso de conversores análogicos digital es algo muy común, por no mencionar el hecho que vivimos en un mundo analógico y es nuestra lógica digital la que constituye una abstracción que nos permite manipular información obtenida muchas veces por ADCs.

Si por ejemplo se quiere saber el valor de un nivel leído por un sensor, primero debe buscarse la relación entre la lectura y el voltaje entregado por el sensor en el datasheet del mismo, luego este voltaje análogico debe ser convertido a bits usando el conversor análogico digital, pero para saber que valor de voltaje significa este número binario debemos hacer un pequeño cálculo para convertir este número binario en un voltaje.

Como se calcula el valor analógico

Para realizar el cálculo del que hemos hablado primero debemos conocer dos números que dependen de cómo estemos haciendo nuestro circuito, éstos son el voltaje a que corre el sistema, normalmente 3.3V o 5V y el rango de valores que puede entregar nuestro conversor, esta última cantidad es algo mas extraña, pero es simple de comprender si vamos a la naturaleza de un número binario: Si se tiene por ejemplo un número binario de 4 bits, se ve que puede tener por cada dígito dos valores, luego como son 4 dígitos el número total de valores será:

2 * 2 * 2 * 2 = 24

Puede verse que esto sirve para cualquier número binario, por lo que si se tiene un conversor de, por ejemplo 8 bits, se podrán representar 256 valores distintos (2 elevado a 8).

Ahora que comprendemos las cantidades que necesitamos, sabemos también que son sumamente fáciles de obtener y podremos calcular de manera simple el voltaje medido usando la ecuación que describe el funcionamiento de un conversor análogico digital.

Nbinario = (Vanalógico * Tvalores) / Vsistema

En esta ecuación Nbinario es el número binario que puede ser leído del conversor, Vanalogo es el voltaje análogico existente en el pin de entrada al conversor, Tvalores el total rango de valores que se puede representar con el conversor y Vsistema es el voltaje de funcionamiento del circuito. Si por ejemplo queremos saber la relación para un sistema corriendo a 5V y con un conversor digital-análogico de 8 bits, tendremos:

Nbinario = (Vanalógico * 256) / 5000

¿Porqué utilizamos 5000 en lugar de 5 en el voltaje de operación? Porque es mejor expresar el voltaje en milivolts, de esta manera los voltajes leídos serán números enteros con una buena precisión.

Veamos finalmente como obtener el voltaje análogo leído si se tiene la lectura del número binario entregado por el conversor, para ello primero recordamos que un número binario puede ser visto también como un número decimal, entonces lo ocuparemos de esta manera para evitarnos enredos innecesarios. Además debemos “dar vuelta” nuestra ecuación para expresar el voltaje análogico en función del número binario leído. Con ello la ecuación queda:

Vanalógico = (Vsistema * Nbinario) / Tvalores

Supongamos entonces que nuestro conversor anterior nos entrega un valor de 148, se tendrá entonces que el voltaje análogico existente en ese momento en el pin de entrada es:

Vanalógico = (Vsistema * Nbinario) / Tvalores = (5000 * 148) / 256 = 2890.625 V

Como nota final notemos que el voltaje resultó fraccionario y de hecho es mas cercano a 2891, pero nosotros lo truncamos a 2890. Esto se ha hecho deliberadamente para recordar que la aritmética entera de los computadores siempre trunca un número, no lo redondea.

ADC0804 pins

ADC0804 pins

En los microcontroladores o microprocesadores que no disponen de un convertidor analógico/digital pero si disponen de un bus de datos exterior, se puede usar el ADC0804, un circuito integrado que nos ofrece un convertidor de 8 bits y un tiempo de acceso de unos 135 nS.

Este convertidor es de los mas usados para aplicaciones de conversión analógica a digital.



Contenido relacionado




 Deja un Comentario

(Requerido)

(Requerido)