安卓机器人 发表于 2016-12-7 13:54:01

【心率传感器试用】有氧运动达标指示器

本帖最后由 安卓机器人 于 2016-12-7 15:35 编辑

【心率传感器试用】有氧运动达标指示器

【有氧运动~~~?】{:5_156:}强度较低、持续时间较长、节奏较缓。那些在高强度和短时间内完成的运动,人体吸入的氧气量远不能满足机体的消耗,体内的氧气处于入不敷出的状态。而在有氧运动过程中,身体所消耗的氧气大致等于吸入的氧气量,这样可使身体的肌肉细胞在运动过程中不致缺氧,从而起到更好的增进健康的作用。
【常见的有氧运动】 {:5_180:}散步、慢跑、做操、骑车、健身舞等慢运动的范畴。
【达标要求】 1、每次必须达到一定的时间。如:每周3次,每次30min;每周4次,每次20min;每周5次,每次20min。
                         2、各年龄段的运动者心脏每分钟的搏动要达到一定的次数(心率)。安静心率为15秒的脉搏数乘以4。按年龄Y计算自己的最高心率公式为:男为205-Y/2;女为220-Y/2;最高心率的60 %~80%为适合的有效的有氧运动的心率范围。例:一位40岁男性,计算为:205-40/2= 185(最高心率)。他的有氧运动的适合心率为:185*(60 %~80%)即111~148。该男性的运动心率为135~145最佳。
                         3、运动之前准备活动5~10min,运动之后3~5min 放松,锻炼一下腰腹部等运动中未得到充分锻炼的部位。
DIY【有氧运动达标指示器】健身过程中随时自测一下心率,做到眼前出彩、心中有数。全图

DF~心率传感器(点击查看详情)
数码管
RGB~LED
DF~UNO与传感器接线图(心率传感器拔到D)
【Arduino 代码】//2016/11/23
//利用DF的心率传感器模块测出数字信号-->DF_UNO处理-->数码管显示数值同时RGB_LED灯显示数值相应范围的颜色
/*******************************************************************************/
#include <TimerOne.h>
#include "TM1637.h"
#include "DFRobot_Heartrate.h"
#define ON 1
#define OFF 0

#define CLK 3 //pins definitions for TM1637 and can be changed to other ports   
#define DIO 2

#define LED_R 8
#define LED_G 9
#define LED_B 10

#define heartratePin A1
DFRobot_Heartrate heartrate(DIGITAL_MODE); ///< ANALOG_MODE or DIGITAL_MODE
TM1637 tm1637(CLK,DIO);
int heartRate =0;
int8_t TimeDisp[] = {0x00,0x00,0x00,0x00};
unsigned char ClockPoint = 1;
unsigned char Update;
unsigned char halfsecond = 0;
unsigned char second;
unsigned char minute = 0;
unsigned char hour = 0;
//////////////////////////////////////////////////////
void setup()
{
pinMode(LED_R,OUTPUT);
pinMode(LED_G,OUTPUT);
pinMode(LED_B,OUTPUT);

Serial.begin(115200);
tm1637.set();
tm1637.init();
Timer1.initialize(500000);//timing for 500ms
Timer1.attachInterrupt(TimingISR);//declare the interrupt serve routine:TimingISR
}
//////////////////////////////////////////////////
void loop()
{
if(Update == ON)
{
    uint8_t rateValue;
    heartrate.getValue(heartratePin); ///< A1 foot sampled values
    rateValue = heartrate.getRate(); ///< Get heart rate value
    if(rateValue){
       Serial.println(rateValue);
       heartRate = rateValue;
       LED_RGB(heartRate);
       heartRateUpdate();
    }
    tm1637.display(TimeDisp);
}
delay(20);
}
////////////////////////////////////////////////
void TimingISR()
{
halfsecond ++;
Update = ON;
if(halfsecond == 2){
    second ++;
    if(second == 60)
    {
      minute ++;
      if(minute == 60)
      {
      hour ++;
      if(hour == 24)hour = 0;
      minute = 0;
      }
      second = 0;
    }
    halfsecond = 0;
}
// Serial.println(second);
ClockPoint = (~ClockPoint) & 0x01;
}
/////////////////////////////////////////////////////
void heartRateUpdate(void)//    处理心率数值准备在数码管上显示出来
{
TimeDisp = 0;
TimeDisp = heartRate/ 100;
TimeDisp = heartRate /10 % 10;
TimeDisp = heartRate % 10;

Update = OFF;
}
//////////////////////////////////////////////////
void LED_RGB( int value)// 根据不同范围【把年龄代入公式计算确定】的心率数值决定LED灯的颜色
{
if(value < 55)                  // 心率数值过低时,LED灯不亮
{
      digitalWrite(LED_R,HIGH);
      digitalWrite(LED_G,HIGH);
      digitalWrite(LED_B,HIGH);         
    }
    else if(value>= 55&& value < 72 ) // 一般情况下,显蓝色
    {
      digitalWrite(LED_R,HIGH);
      digitalWrite(LED_G,HIGH);
      digitalWrite(LED_B,LOW);   
      }
      else if(value >= 72 && value <= 110)// 中度时显白色
      {
      digitalWrite(LED_R,LOW);
      digitalWrite(LED_G,LOW);
      digitalWrite(LED_B,LOW);      
      }
      else if(value >=111 && value <=147)// 达标时显绿色
      {
      digitalWrite(LED_R,HIGH);
      digitalWrite(LED_G,LOW);   
      digitalWrite(LED_B,HIGH);               
      }
      else if (value > 147) // 过度时,显红色以警示
      {
      digitalWrite(LED_R,LOW);
      digitalWrite(LED_G,HIGH);
      digitalWrite(LED_B,HIGH);
      }
      delay(20);      
}
手指头容易且方便测,稳定不动,通常十秒过后数字就会出现并实时改变~
一般情况下显蓝色(不运动)

开始运动后逐渐增高过程显白色


达标(优)显绿色
超标(过度)显红色
【附:每日四个三分钟】(祖国医学健身的精髓哟)1.腹式呼吸(睡前平躺进行,目的是推动内脏运动)2.头低位运动(站立->头向下接近膝部,重复。目的增强脑血管抗压力)3.晨冷水浴(全身皮肤微循环血管操)4.搓手(五指相对应的反射区就是人体五脏,搓手心手背相当于在按摩刺激内脏)


luna 发表于 2016-12-8 10:19:20

健康是1,其他都是0!

安卓机器人 发表于 2016-12-8 18:29:12

:time:有人问我:“四年来感冒过几次?”答:“三次吧,每次仅仅几元的感冒药立马解决了。“
       {:5_178:}其实我最坚持的是”四个三分钟“中的1和3和每周3次以上慢跑。每当21:00左右,我一个人在校园主干道上来回30分钟左右,最后用手指按脉搏15秒再乘以4得出心率,记录在QQ空间说说里。
      {:5_155:} 冬季里一定要进行冷水浴,每周3次以上,每次3-5分钟淋最冷的水(除头发外),第一分钟冰凉,接着就舒服多多了,体温加热冰水致热气腾腾的爽爽啊,净电荷也消失得干干净净的,哈哈

砖头墙 发表于 2017-1-6 21:18:52

叼                     牛                     膜拜大神

安卓机器人 发表于 2016-12-7 13:57:44

我抛出了一块砖头{:5_159:}

hnyzcj 发表于 2016-12-7 14:40:49

8错

dsweiliang 发表于 2016-12-8 16:37:35

感谢分享

安卓机器人 发表于 2016-12-8 18:12:11

dsweiliang 发表于 2016-12-8 16:37
感谢分享

感谢DF平台,乐趣源头

安卓机器人 发表于 2016-12-8 18:13:22

luna 发表于 2016-12-8 10:19
健康是1,其他都是0!

健康了才能快快乐乐~

安卓机器人 发表于 2016-12-8 18:15:29

hnyzcj 发表于 2016-12-7 14:40
8错

{:5_190:}感谢把试用机会留给他人

hnyzcj 发表于 2016-12-8 19:05:55

安卓机器人 发表于 2016-12-8 18:29
有人问我:“四年来感冒过几次?”答:“三次吧,每次仅仅几元的感冒药立马解决了。“
       {:5_17 ...

你说的是我上大学的时候,:lol

安卓机器人 发表于 2016-12-9 09:03:55

hnyzcj 发表于 2016-12-8 19:05
你说的是我上大学的时候,

:handshake

luna 发表于 2016-12-9 09:53:31

安卓机器人 发表于 2016-12-8 18:29
有人问我:“四年来感冒过几次?”答:“三次吧,每次仅仅几元的感冒药立马解决了。“
       {:5_17 ...

非常健康的生活方式~~冷水浴实在是没有勇气尝试~:'(

孤龙破晓 发表于 2016-12-24 21:59:45

好简陋呀………………不过能做出来,也是人才呀

安卓机器人 发表于 2016-12-26 10:45:07

孤龙破晓 发表于 2016-12-24 21:59
好简陋呀………………不过能做出来,也是人才呀

是的哟:L,备个3D打印机,一切就好办了{:5_173:}

阿斗 发表于 2016-12-27 15:35:19

luna 发表于 2016-12-9 09:53
非常健康的生活方式~~冷水浴实在是没有勇气尝试~

那你可以试试开水浴

luna 发表于 2016-12-27 16:03:57

阿斗 发表于 2016-12-27 15:35
那你可以试试开水浴

{:5_121:} 护驾!!有人要谋害朕!!{:5_138:}

凌风清羽 发表于 2017-1-27 14:27:24

大家做的帖子真是越来越有逼格了~~~~

面包板 发表于 2017-3-29 22:37:12

焕然一新的页面

安卓机器人 发表于 2017-3-31 08:06:04

面包板 发表于 2017-3-29 22:37
焕然一新的页面

哈哈,每周进一步一点点~

安卓机器人 发表于 2017-6-4 22:35:15

TIMEONE库文件
页: [1] 2
查看完整版本: 【心率传感器试用】有氧运动达标指示器