🛠️ToolsShed

Calculadora de Zona de Frequência Cardíaca

Calcule suas 5 zonas de treinamento de frequência cardíaca com base na idade e frequência cardíaca em repouso.

A Calculadora de Zona de Frequência Cardíaca identifica suas cinco zonas de treinamento com base na sua idade e, opcionalmente, na frequência cardíaca de repouso medida. Treinar em zonas específicas de frequência cardíaca permite atingir diferentes adaptações fisiológicas.

Insira sua idade e a ferramenta estima sua Frequência Cardíaca Máxima (FCM) usando a fórmula mais comum: 220 menos a idade. Se você sabe sua FCM real de um teste de fitness, insira-a para zonas mais precisas.

Para usar as zonas de FC de forma eficaz, use um monitor de FC durante os treinos e procure permanecer dentro da zona alvo. A maioria dos atletas recreativos se beneficia de passar a maior parte do tempo de treinamento (cerca de 80%) nas Zonas 1-2.

Perguntas Frequentes

Implementação 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.