This website requires JavaScript.
Cupones
Envie a
Blog

Cómo crear tu propia calculadora de ancho de pista de PCB con Python

Publicado originalmente Nov 03, 2026, Actualizado Nov 03, 2026

7 min

Tabla de contenidos
  • Parámetros que hay que tener en cuenta
  • Funciones de la calculadora de ancho de pista en Python
  • Cómo ejecutar la calculadora en un compilador de Python online
  • Código en Python
  • Conclusión

Las pistas de una PCB son clave para la capacidad de corriente, la integridad de señal y el comportamiento térmico de cualquier diseño. La IPC-2152 proporciona las fórmulas estándar, pero hacer los cálculos a mano lleva mucho tiempo. En este tutorial vas a crear una calculadora de ancho de pista ligera en Python basada en la IPC-2152. Puedes ejecutarla en cualquier compilador online y contrastar los resultados con la calculadora de impedancia online gratuita de JLCPCB para ajustarte a la fabricación real.

Empecemos con un ejemplo: si estoy diseñando una PCB de potencia y tengo una pista de 10 mm de largo por la que circulan 5 A, ¿qué ancho debe tener? Habría que calcularlo con la IPC, pero en la era de los ordenadores ya nadie hace las cuentas a mano. Claro, puedes usar cualquier calculadora online, pero ¿por qué depender de ellas? Vamos a programar nuestra propia calculadora.

Volviendo a la pregunta principal: ¿qué ancho debe tener tu pista de cobre? La respuesta depende de varios factores, como la corriente que tiene que llevar, el aumento de temperatura admisible, el espesor del cobre y si la pista va en una capa interior o exterior. Para agilizar el proceso, he desarrollado una calculadora de ancho de pista en Python basada en las pautas de la IPC-2152. En este artículo te explico cómo la he diseñado, qué parámetros tiene en cuenta y qué funciones ofrece. Y, por último, cómo puedes ejecutarla en cualquier compilador de Python online.

Parámetros que hay que tener en cuenta

Al diseñar la calculadora se incluyeron los siguientes parámetros clave (basados en la IPC-2152 y en las capacidades de JLCPCB):

1. Capacidad de corriente (A) : la corriente que la pista tiene que llevar de forma segura.

2. Aumento de temperatura (°C) : cuánto puede subir la temperatura de la pista por encima de la ambiente.

3. Tipo de capa : las pistas exteriores disipan mejor el calor que las interiores, así que sus fórmulas son distintas.

4. Peso del cobre (oz/ft²): normalmente 1 oz o 2 oz; influye en el espesor y en la resistencia.

5. Longitud de la pista (mm): importante para calcular la resistencia y la caída de tensión.

6. Ancho de pista (mm): se usa para calcular la corriente máxima a partir de un ancho dado.

El ancho y la separación mínimos de pista en JLCPCB son de 0,10 mm (4 mil) con cobre estándar de 1 oz.

Funciones de la calculadora de ancho de pista en Python

El código es muy ligero y no tiene interfaz gráfica, así que puedes ejecutarlo online en cualquier compilador de Python. Esto es lo que hace la calculadora:

Dos modos:
1)  
Ancho a partir de la corriente: introduces la corriente y obtienes el ancho de pista necesario.
2)
Corriente a partir del ancho: introduces el ancho y obtienes la corriente máxima que admite.

Cálculos adicionales:

  • Resistencia de la pista (Ω)
  • Caída de tensión (V) para una carga dada
  • Pérdida de potencia en la pista (W)

Después de calcular, contrasta siempre los resultados con la calculadora de impedancia online gratuita de JLCPCB y, al pedir presupuesto, selecciona «Impedancia controlada» para que se verifique con una tolerancia de ±10 %.

Cómo ejecutar la calculadora en un compilador de Python online

No necesitas tener Python instalado en tu ordenador para usar esta herramienta. Solo tienes que copiar el código de más abajo y seguir estos pasos:

calculadora de ancho de pista en un compilador de Python online

1. Entra en cualquier compilador de Python online y pega el código. Yo uso Programiz solo como ejemplo; puedes usar el que prefieras.

2. Pulsa «Run».

3. Sigue las indicaciones de la ventana del terminal para introducir tus parámetros.

Primero te pedirá que elijas entre los dos modos: ancho a partir de la corriente o corriente a partir del ancho. Estas son las preguntas y los resultados de cada uno:

Ancho a partir de la corriente:

resultado del modo ancho a partir de la corriente

Corriente a partir del ancho:

resultado del modo corriente a partir del ancho

Así puedes usar la calculadora desde cualquier dispositivo, incluso sin instalar Python.

Código en Python

import math
def calculate_trace_width(current, temp_rise=10, is_external=True):
    # IPC-2152 constants
    if is_external:
        k = 0.048
        b = 0.44
        c = 0.725
    else:
        k = 0.024
        b = 0.44
        c = 0.725

    width_mils = (current / (k * (temp_rise ** b))) ** (1 / c)
    width_mm = width_mils * 0.0254
    return width_mm

def calculate_trace_properties(width_mm, length_mm, copper_oz):
    # Constants
    copper_thickness_mm = {1: 0.035, 2: 0.07}  # in mm
    resistivity = 1.68e-8  # Ohm-meter for copper

    # Get thickness
    thickness_mm = copper_thickness_mm.get(copper_oz, 0.035)
    cross_section_mm2 = width_mm * thickness_mm

    # Convert to meters
    length_m = length_mm / 1000
    area_m2 = cross_section_mm2 * 1e-6

    # Resistance
    resistance = resistivity * length_m / area_m2
    return resistance

# --- Main Program ---

mode = input("Choose mode (1 = Width from Current, 2 = Current from Width): ")

if mode == '1':
    current = float(input("Enter current (A): "))
    temp_rise = float(input("Enter temperature rise (°C, default 10): ") or 10)
    layer = input("Is it external layer? (y/n): ").lower() == 'y'
    length_mm = float(input("Enter trace length (mm): "))
    copper_oz = int(input("Copper weight (1 or 2 oz): "))

    width_mm = calculate_trace_width(current, temp_rise, layer)
    resistance = calculate_trace_properties(width_mm, length_mm, copper_oz)
    voltage_drop = current * resistance
    power_loss = current ** 2 * resistance

    print(f"\n--- Results ---")
    print(f"Required trace width: {width_mm:.3f} mm")
    print(f"Trace resistance: {resistance:.4f} Ω")
    print(f"Voltage drop: {voltage_drop:.4f} V")
    print(f"Power loss: {power_loss*1000:.2f} mW")

elif mode == '2':
    width_mm = float(input("Enter trace width (mm): "))
    temp_rise = float(input("Enter temperature rise (°C, default 10): ") or 10)
    layer = input("Is it external layer? (y/n): ").lower() == 'y'
    length_mm = float(input("Enter trace length (mm): "))
    copper_oz = int(input("Copper weight (1 or 2 oz): "))

    width_mils = width_mm / 0.0254
    if layer:
        k = 0.048
    else:
        k = 0.024
    b = 0.44
    c = 0.725

    current = k * (temp_rise ** b) * (width_mils ** c)
    resistance = calculate_trace_properties(width_mm, length_mm, copper_oz)
    voltage_drop = current * resistance
    power_loss = current ** 2 * resistance

    print(f"\n--- Results ---")
    print(f"Maximum supported current: {current:.2f} A")
    print(f"Trace resistance: {resistance:.4f} Ω")
    print(f"Voltage drop: {voltage_drop:.4f} V")
    print(f"Power loss: {power_loss*1000:.2f} mW")

else:
    print("Invalid option.")

Conclusión

fabricación de PCB con JLCPCB

Este es un proyecto de Python sencillo pero potente basado en la IPC-2152. Para que funcione bien, tienes que contar con los parámetros correctos y repasar las pautas de la IPC sobre el cálculo de pistas. Los resultados pueden diferir de los de algunas calculadoras online, porque algunas usan una versión anterior de las fórmulas.

Para fabricar de verdad con JLCPCB:

- Usa la calculadora para prototipar rápidamente.

- Comprueba los valores finales con la calculadora de impedancia gratuita de JLCPCB.

- Al hacer el pedido, selecciona «Impedancia controlada» para tener una tolerancia de ±10 % (o ±5 % opcional) y pruebas TDR.

Puedes ampliar fácilmente el código con una interfaz gráfica usando Tkinter o Streamlit. Comparte tu versión y etiqueta a JLCPCB: ¡nos encanta ver las herramientas que crea la comunidad!

presupuesto pcb

Siga aprendiendo