Conversor Digital -> Analógico con resistencias

Como continuación de nuestro artículo anterior (Dotando de salida analógica a nuestro PIC) mostramos hoy cómo conseguir un preciso y barato método para obtener una señal analógica a partir de un dato digital con una fidelidad extraordinaria: mediante un conversor R-2R Ladder.


En este esquema vemos el diagrama de un conversor Digital Analógico de 8 bits.

Se puede fácilmente configurar un DAC de más bits simplemente añadiendo más parejas R-2R como la marcada en la zona verde, teniendo siempre la precaución de dejar una resistencia 2R conectada a masa (ver zona sombreada en rojo).

Las resistencias que yo he usado en mi circuito son de 3K3 ohmios, por la sencilla razón de que las tenía a mano. Estas resistencias en paralelo representan un R=1,650K, mientras que individualmente representan un 2R = 3K3.
Obviamente a mayor valor menor será el consumo de nuestro DAC, por lo que lo ideal es hacerlo con un valor bastante más alto.

 

Conviene que la salida del DAC vaya a un dispositivo con entrada de alta impedancia, como un operacional por ejemplo, porque cualquier carga en la salida alterará el valor de la señal analógica obtenida.

 

Aquí dejo unas fotos de mi DAC (no vale reírse, porque lo hice en 15 minutitos) y de algunas pruebas de generación de señales analógicas con un PIC24F.


DAC R-2R de 16 bits construido con 49 resistencias SMD 0805 de 3K3

Usando nuestro DAC


Onda triangular

Para generar esta onda usé este programa:

while (1) {
LATB++;
}


Onda senoidal

 

Y para generar esta otra usé este programa:

while (1) {
for (angulo=0;angulo<360;angulo++)
LATB = sin (angulo*3.1416/180.0)*0x7FFF+0x8000;
}

Cuando os enfrentéis a la necesidad de un DAC, si tenéis pines disponibles y no queréis recurrir a un chip adicional, os recomiendo este método por su sencillez y economía.

Share