Zone di frequenza cardiaca
A 30 anni con un battito a riposo di 60, la sua zona di resistenza va da 138 a 151 battiti al minuto. Ottiene tutte e cinque le zone Karvonen, dal recupero allo sforzo massimo, calcolate sulla sua riserva cardiaca. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Esempio risolto
- Età
- 30
- Frequenza cardiaca a riposo
- 60
- Frequenza cardiaca massima
- 190
- Riserva di frequenza cardiaca
- 130
Calcola cinque zone di allenamento a partire dalla sua età e dalla frequenza cardiaca a riposo usando il metodo della riserva di frequenza cardiaca di Karvonen, restituendo i limiti inferiore e superiore in battiti al minuto per recupero, resistenza, tempo, soglia e sforzo massimo.
Come la riserva cardiaca definisce le sue zone
La riserva cardiaca è la frequenza massima meno la frequenza a riposo. Se non inserisce una massima misurata, viene stimata come 220 meno l'età: a 30 anni la massima è 190 e, con un battito a riposo di 60, la riserva è di 130 battiti. Ogni limite di zona è il battito a riposo più una parte di quella riserva, arrotondato al battito intero più vicino. Per questo due persone della stessa età con battiti a riposo diversi ottengono zone diverse.
Le cinque zone e come usarle
Il recupero copre dal 50 al 60% della riserva, la resistenza dal 60 al 70%, il tempo dal 70 all'80%, la soglia dall'80 al 90% e lo sforzo massimo dal 90 al 100%. Per l'esempio sopra si ottengono 125-138, 138-151, 151-164, 164-177 e 177-190 battiti al minuto. Usi i limiti come obiettivi negli allenamenti a intervalli e di resistenza, oppure li imposti su un orologio perché segnali quando esce dalla fascia. Una massima misurata in laboratorio o sul campo rende ogni zona più personale della stima basata sull'età.
Casi d'uso
Piani di allenamento
Generi obiettivi di bpm personalizzati per gli allenamenti a intervalli e di resistenza a partire da due input.
App per dispositivi indossabili
Imposti i limiti di zona per ogni utente così che un orologio possa segnalare quando una sessione esce dalla fascia obiettivo.
Domande frequenti
Quante zone vengono restituite?
Cinque: recupero, resistenza, tempo, soglia e massimo, ciascuna con una coppia lo/hi in bpm.
Che cos'è il metodo Karvonen?
Costruisce le zone a partire dalla riserva cardiaca, cioè la differenza tra frequenza massima e frequenza a riposo, invece di usare una percentuale fissa della massima. Ogni limite è il battito a riposo più una percentuale di quella riserva.
Posso usare una frequenza massima misurata da me?
Sì. Per impostazione predefinita la massima è stimata come 220 meno l'età, ma può inserire un valore misurato in laboratorio o con un test sul campo, e tutte le zone vengono ricalcolate.
Perché due zone vicine condividono lo stesso battito?
È voluto: il tetto di una zona è il pavimento della successiva, così non restano buchi tra loro. Con i valori dell'esempio, la resistenza finisce a 151 e il tempo inizia a 151 battiti al minuto.
Perché il battito a riposo cambia le zone?
Perché ogni fascia si aggiunge al battito a riposo. Due persone con la stessa massima ma battiti a riposo diversi ottengono obiettivi diversi, cosa che una semplice percentuale della massima trascura.
Strumenti correlati
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo stack
curl -X POST https://api.kit.forhosting.com/dev/heart-rate-zones \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"age":30,"resting_hr":60}'const res = await fetch("https://api.kit.forhosting.com/dev/heart-rate-zones", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"age": 30,
"resting_hr": 60
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/heart-rate-zones",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"age": 30,
"resting_hr": 60
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/heart-rate-zones", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"age":30,"resting_hr":60}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"age":30,"resting_hr":60}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/heart-rate-zones", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Esempio di richiesta
{
"age": 30,
"resting_hr": 60
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.heart_rate_zones",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |
Note tecniche
La formula della riserva di frequenza cardiaca di Karvonen
Il calcolatore usa il metodo di Karvonen, che costruisce le zone a partire dalla riserva di frequenza cardiaca (HRR) anziché da una percentuale fissa della frequenza cardiaca massima. Prende age e resting_hr come interi obbligatori; max_hr è facoltativo e vale 220 meno l'età per impostazione predefinita. La HRR è max_hr meno resting_hr, e ogni limite di zona si calcola come resting_hr + intensità × HRR, poi arrotondato al battito intero più vicino. Vengono restituite cinque zone: z1_recovery (50-60% della HRR), z2_endurance (60-70%), z3_tempo (70-80%), z4_threshold (80-90%) e z5_max (90-100%), ciascuna come coppia lo/hi in battiti al minuto. La risposta riporta anche age, resting_hr, max_hr e hrr. Per un'età di 30 e resting_hr 60, max_hr è 190, la HRR è 130, e z2_endurance va da 138 a 151 bpm.
Perché le zone sono personalizzate e come vengono arrotondate
Ogni limite viene arrotondato a zero decimali con una regola esplicita half-up — sign * Math.floor(abs(x) + 0.5) — così che un valore calcolato di 137.5 diventi 138 anziché arrotondare verso il basso, e le zone adiacenti condividono per scelta progettuale il loro battito di confine (l'hi di z1 è uguale al lo di z2). Poiché la formula di Karvonen aggiunge ogni fascia di intensità sopra il suo battito a riposo, le zone sono personalizzate: due atleti con la stessa max_hr ma diverse frequenze a riposo ottengono obiettivi diversi, cosa che un semplice modello a percentuale-del-massimo manca del tutto. Il facoltativo max_hr le permette di sovrascrivere la stima basata sull'età con un valore misurato in laboratorio o sul campo, e il parametro method documenta l'algoritmo; il valore predefinito è 'karvonen'.
Validazione, intervalli ed errori tipizzati
Anche un input di livello superiore non-oggetto viene rifiutato. Gli input vengono controllati per intervallo prima di costruire qualsiasi zona. age deve essere un intero da 10 a 100 e resting_hr un intero da 30 a 120; qualsiasi valore fuori da quei limiti, o non intero, solleva un errore tipizzato invalid_input come 'age inválido' o 'resting_hr inválido'. Quando max_hr viene fornito deve essere un intero strettamente maggiore di resting_hr, altrimenti viene sollevato 'max_hr inválido' — questo impedisce una HRR negativa o pari a zero che invertirebbe le zone.
Casi di integrazione
Strumenti di coaching
Elabori in blocco gli atleti tramite l'API per costruire tabelle di zone con le frequenze cardiache massime misurate.
Domande tecniche
Quale metodo usa?
La formula di Karvonen: resting_hr + intensità × (max_hr - resting_hr).
Devo conoscere la mia frequenza cardiaca massima?
No. max_hr vale 220 meno l'età per impostazione predefinita, ma può sovrascriverlo con un valore misurato.
Perché il limite di zona dipende da resting_hr?
Karvonen aggiunge ogni fascia sopra il suo battito a riposo, quindi le zone sono personalizzate, non una percentuale fissa del massimo.
È gratuito?
Sì nel widget del browser; l'API esegue lo stesso motore a partire da $0.002 per chiamata.