🛠️ToolsShed

Calculadora de Zonas de Frecuencia Cardíaca

Calcula tus 5 zonas de entrenamiento de frecuencia cardíaca según tu edad y frecuencia cardíaca en reposo.

La calculadora de zonas de frecuencia cardíaca identifica tus cinco zonas de entrenamiento basándose en tu edad y opcionalmente tu frecuencia cardíaca en reposo medida. Entrenar en zonas específicas permite orientar diferentes adaptaciones fisiológicas: desde la recuperación hasta la maximización del VO2 máx.

Introduce tu edad y la herramienta estima tu Frecuencia Cardíaca Máxima (FCM) usando la fórmula más común: 220 menos edad. Si conoces tu FCM real de una prueba de fitness, introdúcela para obtener zonas más precisas.

Para usar las zonas de FC de manera efectiva, usa un monitor de FC durante los entrenamientos y trata de mantenerte dentro de la zona objetivo. La mayoría de los atletas recreativos se benefician de pasar la mayor parte del tiempo de entrenamiento (alrededor del 80%) en las zonas 1-2.

Preguntas Frecuentes

Implementación de Código

def calculate_hr_zones(age: int, resting_hr: int = 60, method: str = "fox") -> dict:
    """
    Calculate heart rate training zones.
    method: 'fox' (220 - age), 'tanaka' (208 - 0.7 * age), 'karvonen' (uses resting HR)
    """
    if method == "tanaka":
        max_hr = 208 - 0.7 * age
    else:
        max_hr = 220 - age

    if method == "karvonen":
        hrr = max_hr - resting_hr  # Heart Rate Reserve
        zones = {
            "Zone 1 (Recovery)":  (resting_hr + 0.50 * hrr, resting_hr + 0.60 * hrr),
            "Zone 2 (Aerobic)":   (resting_hr + 0.60 * hrr, resting_hr + 0.70 * hrr),
            "Zone 3 (Tempo)":     (resting_hr + 0.70 * hrr, resting_hr + 0.80 * hrr),
            "Zone 4 (Threshold)": (resting_hr + 0.80 * hrr, resting_hr + 0.90 * hrr),
            "Zone 5 (Max)":       (resting_hr + 0.90 * hrr, max_hr),
        }
    else:
        zones = {
            "Zone 1 (Recovery)":  (0.50 * max_hr, 0.60 * max_hr),
            "Zone 2 (Aerobic)":   (0.60 * max_hr, 0.70 * max_hr),
            "Zone 3 (Tempo)":     (0.70 * max_hr, 0.80 * max_hr),
            "Zone 4 (Threshold)": (0.80 * max_hr, 0.90 * max_hr),
            "Zone 5 (Max)":       (0.90 * max_hr, max_hr),
        }

    print(f"Age: {age}, Max HR: {max_hr:.0f} bpm, Method: {method}")
    for name, (lo, hi) in zones.items():
        print(f"  {name}: {lo:.0f} - {hi:.0f} bpm")
    return zones

calculate_hr_zones(age=30, resting_hr=65, method="karvonen")

Comments & Feedback

Comments are powered by Giscus. Sign in with GitHub to leave a comment.