Nivel: Medio. Construye una escalera resistiva para convertir señales binarias de 4 bits en niveles de voltaje analógicos precisos.
Objetivo y caso de uso
En esta sesión, construirás un Convertidor Digital a Analógico (DAC) de 4 bits utilizando una topología de escalera de resistencias R-2R. Este circuito suma entradas ponderadas binarias para producir una salida analógica proporcional al valor digital.
Por qué es útil:
* Síntesis de audio: Utilizado en generadores de funciones simples para crear ondas senoidales o triangulares desde microcontroladores digitales.
* Señales de video: Históricamente utilizado en adaptadores VGA para generar niveles de intensidad de color.
* Control rentable: Permite generar voltajes de control variables sin chips DAC dedicados.
* Educación en procesamiento de señales: Demuestra la superposición y el teorema de Thévenin de una manera práctica.
Resultado esperado:
* Un voltaje de salida estable (VOUT) que varía de 0 V a aproximadamente 4.68 V (dada una alimentación de 5 V).
* Dieciséis pasos de voltaje distintos (del binario 0000 al 1111).
* Relación lineal entre el valor de entrada binario y el voltaje analógico medido.
Público objetivo y nivel: Estudiantes de electrónica y aficionados familiarizados con las leyes básicas de circuitos.
Materiales
- V1: Fuente de CC de 5 V, función: Referencia de lógica alta y alimentación principal.
- R1: Resistencia de 10 kΩ, función: Resistencia en serie (R) en la columna de la escalera (Bit 0-1).
- R2: Resistencia de 10 kΩ, función: Resistencia en serie (R) en la columna de la escalera (Bit 1-2).
- R3: Resistencia de 10 kΩ, función: Resistencia en serie (R) en la columna de la escalera (Bit 2-3).
- R4: Resistencia de 20 kΩ, función: Resistencia en paralelo (2R) para Bit 0 (LSB).
- R5: Resistencia de 20 kΩ, función: Resistencia en paralelo (2R) para Bit 1.
- R6: Resistencia de 20 kΩ, función: Resistencia en paralelo (2R) para Bit 2.
- R7: Resistencia de 20 kΩ, función: Resistencia en paralelo (2R) para Bit 3 (MSB).
- R8: Resistencia de 20 kΩ, función: Resistencia de terminación (2R) conectada a Tierra.
- SW1: Interruptor SPDT (o cable puente), función: Entrada del Bit 0 (LSB), conmuta entre VCC y GND.
- SW2: Interruptor SPDT (o cable puente), función: Entrada del Bit 1, conmuta entre VCC y GND.
- SW3: Interruptor SPDT (o cable puente), función: Entrada del Bit 2, conmuta entre VCC y GND.
- SW4: Interruptor SPDT (o cable puente), función: Entrada del Bit 3 (MSB), conmuta entre VCC y GND.
Guía de conexionado
Esta guía utiliza nombres de nodos: VCC (5 V), 0 (GND), B0 (Entrada Bit 0), B1 (Entrada Bit 1), B2 (Entrada Bit 2), B3 (Entrada Bit 3), y nodos internos de la escalera N0, N1, N2. VOUT es la salida analógica.
- Conexión V1: Conecta el terminal positivo de
V1aVCCy el negativo a0. - Interruptores de entrada (Entradas digitales):
- SW1: Común a
B0, Posición 1 a0, Posición 2 aVCC. - SW2: Común a
B1, Posición 1 a0, Posición 2 aVCC. - SW3: Común a
B2, Posición 1 a0, Posición 2 aVCC. - SW4: Común a
B3, Posición 1 a0, Posición 2 aVCC.
- SW1: Común a
- Resistencias «R» de la escalera (Columna):
- R1: Se conecta entre el nodo
N0y el nodoN1. - R2: Se conecta entre el nodo
N1y el nodoN2. - R3: Se conecta entre el nodo
N2y el nodoVOUT.
- R1: Se conecta entre el nodo
- Resistencias «2R» de la escalera (Ramas):
- R8 (Terminación): Se conecta entre el nodo
N0y0. - R4: Se conecta entre el nodo
B0y el nodoN0. - R5: Se conecta entre el nodo
B1y el nodoN1. - R6: Se conecta entre el nodo
B2y el nodoN2. - R7: Se conecta entre el nodo
B3y el nodoVOUT.
- R8 (Terminación): Se conecta entre el nodo
- Salida: Monitorea el voltaje en el nodo
VOUTrelativo a0.
Diagrama de bloques conceptual

Esquemático
[ DIGITAL INPUTS ] [ R-2R LADDER NETWORK ] [ ANALOG OUTPUT ]
(Switches toggle VCC/GND) (Voltage Summing Logic)
+--> [ Multimeter ]
| (Measure V)
[ SW4: Bit 3 (MSB) ] --(High/Low)--> [ R7: 20k (2R) ] --(Bit 3 Weight)---->+--> [ VOUT Node ]
^
|
[ R3: 10k (R) ]
|
[ SW3: Bit 2 ] --(High/Low)--> [ R6: 20k (2R) ] --(Bit 2 Weight)---->+ (Node N2)
^
|
[ R2: 10k (R) ]
|
[ SW2: Bit 1 ] --(High/Low)--> [ R5: 20k (2R) ] --(Bit 1 Weight)---->+ (Node N1)
^
|
[ R1: 10k (R) ]
|
[ SW1: Bit 0 (LSB) ] --(High/Low)--> [ R4: 20k (2R) ] --(Bit 0 Weight)---->+ (Node N0)
|
v
[ R8: 20k (2R) ]
|
GND
Mediciones y pruebas
Para validar el DAC, configurarás los interruptores en códigos binarios específicos y medirás el voltaje resultante en VOUT. La fórmula para la salida es:
$VOUT = Vref × ((Decimal Value) / 16)$
- Comprobación de cero: Configura todos los interruptores (SW1-SW4) en
0(GND). MideVOUT. Debería ser exactamente 0 V. - Comprobación del LSB (Bit 0): Configura SW1 a
VCCy los otros a0(Binario 0001).- Cálculo: $5 V × (1/16) = 0.3125 V$.
- Verifica que
VOUTsea aprox 0.31 V.
- Comprobación del MSB (Bit 3): Configura SW4 a
VCCy los otros a0(Binario 1000).- Cálculo: $5 V × (8/16) = 2.5 V$.
- Verifica que
VOUTsea aprox 2.5 V.
- Comprobación de escala completa: Configura todos los interruptores a
VCC(Binario 1111).- Cálculo: $5 V × (15/16) = 4.6875 V. * Verifica que
VOUTsea aprox 4.69 V. <! – – SPICE_INSERT_POINT – – > ## Errores comunes y cómo evitarlos 1. Entradas flotantes: Dejar un interruptor abierto (desconectado) en lugar de conectarlo a Tierra para un «0» lógico. * Solución: Las escaleras R – 2R requieren que las entradas estén estrictamente enV_{ref}$ o $0 V$. Usa interruptores SPDT o verifica que tus cables puente se conecten a GND cuando estén «apagados».
- Cálculo: $5 V × (15/16) = 4.6875 V. * Verifica que
- Intercambiar R y 2R: Colocar una resistencia de 10 kΩ donde se requiere una de 20 kΩ (o viceversa).
- Solución: Verifica dos veces los códigos de colores. 10 kΩ es usualmente Marrón-Negro-Naranja; 20 kΩ es Rojo-Negro-Naranja.
- Cargar la salida: Conectar una carga de baja impedancia (como un altavoz o LED) directamente a
VOUT.- Solución: Este circuito tiene una impedancia de salida relativamente alta ($R$). Siempre usa un búfer con Op-Amp (seguidor de voltaje) si necesitas alimentar una carga.
Solución de problemas
- Síntoma: $V_{OUT}$ es 2.5 V cuando debería ser 1.25 V.
- Causa: El MSB (Bit 3) podría estar atascado en alto, o las resistencias están intercambiadas.
- Solución: Revisa la continuidad del interruptor y verifica la colocación de resistencias en el nodo
VOUT.
- Síntoma: Los voltajes de salida son no lineales o aleatorios.
- Causa: Conexión deficiente en las resistencias de la «columna» (R1, R2, R3).
- Solución: Reasienta las resistencias en la protoboard para asegurar que la cadena de la escalera esté intacta.
- Síntoma: La salida nunca llega cerca de 4.6 V.
- Causa: Acumulación de tolerancia de resistencias o bajo voltaje de la fuente de alimentación.
- Solución: Mide el voltaje real de V1. Usa resistencias de película metálica con tolerancia del 1% para una mejor precisión.
Posibles mejoras y extensiones
- Expansión a 8 bits: Agrega cuatro etapas más a la escalera (usando más resistencias R y 2R) para crear un DAC de 8 bits con 256 pasos de voltaje.
- Búfer activo: Conecta
VOUTa un Op-Amp LM358 configurado como un búfer de ganancia unitaria para alimentar un LED o un pequeño altavoz de audio de forma segura.
Más Casos Prácticos en Prometeo.blog
Encuentra este producto y/o libros sobre este tema en Amazon
Como afiliado de Amazon, gano con las compras que cumplan los requisitos. Si compras a través de este enlace, ayudas a mantener este proyecto.
Quiz rápido
Netlist SPICE y simulación
Netlist SPICE de referencia (ngspice) — extractoNetlist SPICE completo (ngspice)
* Practical case: R-2R Resistor Network (Simple DAC)
* --- Power Supply ---
* V1: 5 V DC supply, function: Logic high reference and main power
V1 VCC 0 DC 5
* --- Digital Inputs (Simulated Switches) ---
* Modeled as PULSE voltage sources to strictly simulate user input/switching.
* Generates a binary counting sequence (0000 to 1111) to test the full truth table.
* Logic High = 5V (VCC), Logic Low = 0V (GND).
* SW1 (Bit 0 LSB): Toggles every 100us (Period)
VB0 B0 0 PULSE(0 5 0 1u 1u 50u 100u)
* SW2 (Bit 1): Toggles every 200us (Period)
VB1 B1 0 PULSE(0 5 0 1u 1u 100u 200u)
* SW3 (Bit 2): Toggles every 400us (Period)
VB2 B2 0 PULSE(0 5 0 1u 1u 200u 400u)
* ... (truncated in public view) ...
Copia este contenido en un archivo .cir y ejecútalo con ngspice.
* Practical case: R-2R Resistor Network (Simple DAC)
* --- Power Supply ---
* V1: 5 V DC supply, function: Logic high reference and main power
V1 VCC 0 DC 5
* --- Digital Inputs (Simulated Switches) ---
* Modeled as PULSE voltage sources to strictly simulate user input/switching.
* Generates a binary counting sequence (0000 to 1111) to test the full truth table.
* Logic High = 5V (VCC), Logic Low = 0V (GND).
* SW1 (Bit 0 LSB): Toggles every 100us (Period)
VB0 B0 0 PULSE(0 5 0 1u 1u 50u 100u)
* SW2 (Bit 1): Toggles every 200us (Period)
VB1 B1 0 PULSE(0 5 0 1u 1u 100u 200u)
* SW3 (Bit 2): Toggles every 400us (Period)
VB2 B2 0 PULSE(0 5 0 1u 1u 200u 400u)
* SW4 (Bit 3 MSB): Toggles every 800us (Period)
VB3 B3 0 PULSE(0 5 0 1u 1u 400u 800u)
* --- R-2R Ladder Network ---
* -- Spine Resistors (R = 10k) --
* R1: Connects between node N0 and node N1
R1 N0 N1 10k
* R2: Connects between node N1 and node N2
R2 N1 N2 10k
* R3: Connects between node N2 and node VOUT
R3 N2 VOUT 10k
* -- Branch/Termination Resistors (2R = 20k) --
* R8 (Termination): Connects between node N0 and 0 (GND)
R8 N0 0 20k
* R4 (Bit 0 Input): Connects between node B0 and node N0
R4 B0 N0 20k
* R5 (Bit 1 Input): Connects between node B1 and node N1
R5 B1 N1 20k
* R6 (Bit 2 Input): Connects between node B2 and node N2
R6 B2 N2 20k
* R7 (Bit 3 Input - MSB): Connects between node B3 and node VOUT
R7 B3 VOUT 20k
* --- Simulation Directives ---
* Transient analysis to capture the full binary counting sequence (approx 1ms)
.tran 2u 1000u
* --- Output Printing ---
* Monitor the Input Bits and the Analog Output Voltage
.print tran V(B0) V(B1) V(B2) V(B3) V(VOUT)
.op
.end
Resultados de Simulación (Transitorio)
Show raw data table (1384 rows)
Index time v(b0) v(b1) v(b2) 0 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 1 1.000000e-08 5.000000e-02 5.000000e-02 5.000000e-02 2 2.000000e-08 1.000000e-01 1.000000e-01 1.000000e-01 3 4.000000e-08 2.000000e-01 2.000000e-01 2.000000e-01 4 8.000000e-08 4.000000e-01 4.000000e-01 4.000000e-01 5 1.600000e-07 8.000000e-01 8.000000e-01 8.000000e-01 6 3.200000e-07 1.600000e+00 1.600000e+00 1.600000e+00 7 6.400000e-07 3.200000e+00 3.200000e+00 3.200000e+00 8 1.000000e-06 5.000000e+00 5.000000e+00 5.000000e+00 9 1.064000e-06 5.000000e+00 5.000000e+00 5.000000e+00 10 1.192000e-06 5.000000e+00 5.000000e+00 5.000000e+00 11 1.448000e-06 5.000000e+00 5.000000e+00 5.000000e+00 12 1.960000e-06 5.000000e+00 5.000000e+00 5.000000e+00 13 2.984000e-06 5.000000e+00 5.000000e+00 5.000000e+00 14 4.984000e-06 5.000000e+00 5.000000e+00 5.000000e+00 15 6.984000e-06 5.000000e+00 5.000000e+00 5.000000e+00 16 8.984000e-06 5.000000e+00 5.000000e+00 5.000000e+00 17 1.098400e-05 5.000000e+00 5.000000e+00 5.000000e+00 18 1.298400e-05 5.000000e+00 5.000000e+00 5.000000e+00 19 1.498400e-05 5.000000e+00 5.000000e+00 5.000000e+00 20 1.698400e-05 5.000000e+00 5.000000e+00 5.000000e+00 21 1.898400e-05 5.000000e+00 5.000000e+00 5.000000e+00 22 2.098400e-05 5.000000e+00 5.000000e+00 5.000000e+00 23 2.298400e-05 5.000000e+00 5.000000e+00 5.000000e+00 ... (1360 more rows) ...




