🛠️ToolsShed

Calcolatore Zone di Frequenza Cardiaca

Calcola le tue 5 zone di allenamento della frequenza cardiaca in base all'età e alla FC a riposo.

Il calcolatore delle zone di frequenza cardiaca identifica le tue cinque zone di allenamento in base alla tua età e, opzionalmente, alla tua frequenza cardiaca a riposo misurata. Allenarsi in zone specifiche di frequenza cardiaca ti consente di mirare a diverse adattazioni fisiologiche.

Inserisci la tua età e lo strumento stima la tua Frequenza Cardiaca Massima (FCM) usando la formula più comune: 220 meno età. Se conosci la tua FCM reale da un test di fitness, inseriscila per zone più precise.

Per usare efficacemente le zone di FC, indossa un monitor di FC durante gli allenamenti e cerca di rimanere nella zona target. La maggior parte degli atleti ricreativi beneficia di trascorrere la maggior parte del tempo di allenamento nelle zone 1-2.

Domande Frequenti

Implementazione del Codice

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.