نطاقات معدل ضربات القلب
في سن 30 ومع نبض راحة قدره 60 يمتد نطاق التحمل لديك من 138 إلى 151 نبضة في الدقيقة. وتحصل على نطاقات كارفونين الخمسة كلها، من التعافي إلى الجهد الأقصى، محسوبة من احتياطي قلبك أنت. مجاني في متصفحك.
- مجاني
- يعمل في متصفحك
- دون تسجيل
- بياناتك لا تغادر جهازك
شغّل الأداة مجانًا
مثال محلول
- العمر
- 30
- نبض الراحة
- 60
- النبض الأقصى
- 190
- احتياطي معدل النبض
- 130
تحسب خمسة نطاقات تدريبية من عمرك ومعدل ضربات قلبك أثناء الراحة باستخدام طريقة Karvonen القائمة على احتياطي معدل ضربات القلب، وتعيد الحدَّين الأدنى والأعلى بوحدة نبضة في الدقيقة لنطاقات التعافي والتحمُّل والإيقاع والعتبة والجهد الأقصى.
كيف يحدد احتياطي القلب نطاقاتك
احتياطي معدل ضربات القلب هو معدلك الأقصى ناقص معدلك في الراحة. وإن لم تُدخل حدًا أقصى مقيسًا فإنه يُقدَّر بطرح عمرك من 220، ففي سن 30 يكون الحد الأقصى 190، ومع نبض راحة قدره 60 يكون الاحتياطي 130 نبضة. وكل حد من حدود النطاقات هو نبض الراحة مضافًا إليه جزء من هذا الاحتياطي، مقرّبًا إلى أقرب نبضة كاملة. ولهذا يحصل شخصان في العمر نفسه بنبض راحة مختلف على نطاقات مختلفة.
النطاقات الخمسة وكيف تستخدمها
يغطي التعافي من 50 إلى 60 بالمئة من الاحتياطي، والتحمل من 60 إلى 70، والإيقاع من 70 إلى 80، والعتبة من 80 إلى 90، والجهد الأقصى من 90 إلى 100. وفي المثال السابق يعطي ذلك 125 إلى 138، و138 إلى 151، و151 إلى 164، و164 إلى 177، و177 إلى 190 نبضة في الدقيقة. استخدم هذه الحدود أهدافًا للتمارين المتقطعة وتمارين التحمل، أو اضبطها في ساعتك لتنبهك حين تخرج من النطاق.
حالات الاستخدام
خطط التدريب
ولِّد أهدافًا مخصَّصة بوحدة نبضة في الدقيقة لتمارين الفترات والتحمُّل انطلاقًا من إدخالين.
تطبيقات الأجهزة القابلة للارتداء
حدِّد حدود نطاق لكل مستخدم كي تتمكن الساعة من التنبيه عندما تخرج الجلسة من النطاق المستهدف.
الأسئلة الشائعة
كم عدد النطاقات المُعادة؟
خمسة: التعافي والتحمُّل والإيقاع والعتبة والجهد الأقصى، لكلٍّ منها زوج lo/hi بوحدة نبضة في الدقيقة.
ما طريقة كارفونين؟
تبني النطاقات من احتياطي معدل ضربات القلب، أي الفرق بين معدلك الأقصى ومعدلك في الراحة، بدل نسبة ثابتة من الحد الأقصى. فكل حد هو نبض الراحة مضافًا إليه نسبة من هذا الاحتياطي.
هل يمكنني استخدام معدل أقصى قسته بنفسي؟
نعم. يُقدَّر الحد الأقصى افتراضيًا بطرح عمرك من 220، لكن يمكنك إدخال قيمة مقيسة في مختبر أو في اختبار ميداني، فتُعاد حسابات النطاقات كلها على أساسها.
لماذا يتشارك نطاقان متجاوران النبضة نفسها؟
هذا مقصود: فالحد الأعلى لنطاق هو الحد الأدنى للنطاق التالي، حتى لا تبقى فجوات بينهما. ففي المثال ينتهي نطاق التحمل عند 151 ويبدأ نطاق الإيقاع عند 151 نبضة في الدقيقة.
لماذا يغيّر نبض الراحة النطاقات؟
لأن كل نطاق يُبنى فوق نبض راحتك. فشخصان لهما الحد الأقصى نفسه ونبض راحة مختلف يحصلان على أهداف مختلفة، وهو ما يغفله نموذج النسبة البسيطة من الحد الأقصى.
أدوات ذات صلة
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
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)مثال على الطلب
{
"age": 30,
"resting_hr": 60
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.heart_rate_zones",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |
ملاحظات تقنية
صيغة Karvonen القائمة على احتياطي معدل ضربات القلب
تستخدم الحاسبة طريقة Karvonen التي تبني النطاقات من احتياطي معدل ضربات القلب (HRR) بدلًا من نسبة مئوية ثابتة من معدل ضربات القلب الأقصى. تأخذ age وresting_hr كعددين صحيحين مطلوبين؛ أما max_hr فاختياري وقيمته الافتراضية 220 ناقص العمر. وHRR هو max_hr ناقص resting_hr، ويُحسب كل حد من حدود النطاق بالصيغة resting_hr + intensity × HRR، ثم يُقرَّب إلى أقرب نبضة كاملة. تُعاد خمسة نطاقات: z1_recovery (50-60% من HRR)، وz2_endurance (60-70%)، وz3_tempo (70-80%)، وz4_threshold (80-90%)، وz5_max (90-100%)، كلٌّ منها زوج lo/hi بوحدة نبضة في الدقيقة. كما تعيد الاستجابة أيضًا age وresting_hr وmax_hr وhrr. فمع age بقيمة 30 وresting_hr بقيمة 60، يكون max_hr هو 190، وHRR هو 130، ويمتد z2_endurance من 138 إلى 151 نبضة في الدقيقة.
لماذا تكون النطاقات مخصَّصة، وكيف تُقرَّب
يُقرَّب كل حد إلى صفر أرقام عشرية بقاعدة half-up صريحة — sign * Math.floor(abs(x) + 0.5) — فتصبح القيمة المحسوبة 137.5 هي 138 بدلًا من التقريب المصرفي نزولًا، ويتشارك النطاقان المتجاوران حدَّهما الفاصل عن قصد (فحدّ z1 الأعلى يساوي حدّ z2 الأدنى). لأن صيغة Karvonen تضيف كل نطاق شدة فوق نبض راحتك، تكون النطاقات مخصَّصة: فرياضيّان لهما max_hr نفسه لكن بمعدلَي راحة مختلفين يحصلان على أهداف مختلفة، وهو ما يُغفله كليًّا نموذج النسبة المئوية البسيطة من الأقصى. وتتيح لك max_hr الاختيارية تجاوز تقدير العمر بقيمة مقيسة في المختبر أو الميدان، بينما توثِّق المعلمة method الخوارزمية؛ وقيمتها الافتراضية 'karvonen'.
التحقق من الصحة والمجالات والأخطاء المصنَّفة
تُفحص المدخلات ضمن مجالاتها قبل بناء أي نطاق. ويُرفض كذلك أي إدخال في المستوى الأعلى ليس كائنًا. يجب أن تكون age عددًا صحيحًا من 10 إلى 100 وresting_hr عددًا صحيحًا من 30 إلى 120؛ وأي قيمة خارج هذه الحدود، أو غير صحيحة عدديًّا، تطلق خطأ invalid_input مصنَّفًا مثل 'age inválido' أو 'resting_hr inválido'. وعند تمرير max_hr يجب أن تكون عددًا صحيحًا أكبر تمامًا من resting_hr، وإلا أُطلق 'max_hr inválido' — وهذا يمنع HRR سالبًا أو صفريًّا من شأنه أن يقلب النطاقات. القصد من رموز الأخطاء الثابتة هذه إبراز حقول النموذج وإعادة المحاولة الآلية في المشغِّل لا تتبُّعات المكدس الخام، ولأن مهام الواجهة البرمجية المخفقة لا تُحتسب قط، يمكنك اختبار أعمار خارج المجال أو نبض راحة غير معقول على الطرف الحي دون إنفاق أي رصيد مدفوع مسبقًا.
حالات التكامل
أدوات التدريب الرياضي
مرِّر الرياضيين بالجملة عبر الواجهة البرمجية لبناء مخططات النطاقات بمعدلات ضربات قلب قصوى مقيسة.
أسئلة تقنية
أي طريقة تستخدمها؟
صيغة Karvonen: resting_hr + intensity × (max_hr - resting_hr).
هل يلزمني معرفة معدل ضربات قلبي الأقصى؟
لا. القيمة الافتراضية لـ max_hr هي 220 ناقص العمر، لكن يمكنك تجاوزها بقيمة مقيسة.
لماذا يعتمد حد النطاق على resting_hr؟
تضيف Karvonen كل نطاق فوق نبض راحتك، فتكون النطاقات مخصَّصة لا نسبة مئوية ثابتة من الأقصى.
هل هي مجانية؟
نعم في الأداة التفاعلية بالمتصفح؛ وتشغِّل الواجهة البرمجية النواة نفسها بدءًا من $0.002 لكل استدعاء.