飞翔的红猪 发表于 2012-6-8 22:06:35

来一个心跳测量模块~~


   这个心跳测量模块原来是使用89C2051为主控,数码管做显示输出来实现的,因为不想去打版,自己用单面板又嫌布线麻烦,所以在面包板上测试完成后就搁置在一边,现在学了ARDUINO后,控制电路和程序都简单了,而且做成成品的迫切性也不强了,所以用了半天时间把它变成了一个ARDUINO模块~~。
模块使用红外对管做指尖的血液脉搏检测,用一个单电源双运放做大倍数放大,放大后的脉冲信号再经过一个555电路做的施密特电路整形后输出,ARDUINO使用pulseIn函数测试脉冲的周期,然后再转换成(次数/分钟)显示出来。目前的测量结果比实际的心跳次数要多10次左右,不过在用单片机做的时候,数据跟实际基本是吻合的,原因不明~。
当然最好的方法就是定时测量次数,比如测试15秒内的次数,然后再乘4就可以了,那样就需要增加一个启动的按钮了,但是可以省掉一个555。
注:电路非原创,大家可以去爱折腾上看原文。

原理图:



演示程序:const int pulsePin = 2;
float pulsetime;
void setup()
{
Serial.begin(9600);
pinMode(pulsePin,INPUT);
}

void loop()
{
int pulse=0;
pulsetime=pulseIn(pulsePin,HIGH);
if(pulsetime>0)
{
    pulse=(1000000/pulsetime)*60;
    Serial.print(pulsetime,0);
    Serial.print("-");
    Serial.println(pulse,DEC);
}
delay(1000);
}

Randy 发表于 2012-6-9 09:40:57

这样貌似不是很准确的说哦!

Ansifa 发表于 2012-6-9 21:47:51

容易受震动干扰哦。。不过也是一个不错方法

飞翔的红猪 发表于 2012-6-9 22:09:54

其实没这么多问题的,只要把手指头按到光电模块上,从输出端就可以输出脉冲了,同时还能看到一只发光管跟着你的心跳闪动,很稳定的,可以测量脉冲宽度,也可对脉冲进行计数,再说测心跳不比测高频的电信号,精度无需很高的,当然需要避开强干扰,比如手机~~

rose311 发表于 2012-8-22 10:21:15

pulseIn函数是库里面的函数吗?

弘毅 发表于 2012-8-22 10:27:26

rose311 发表于 2012-8-22 10:21 static/image/common/back.gif
pulseIn函数是库里面的函数吗?

可以看这个语法手册里的介绍
http://wiki.geek-workshop.com/doku.php?id=arduino:arduino_language_reference:pulsein

rose311 发表于 2012-8-22 10:40:21

弘毅 发表于 2012-8-22 10:27 static/image/common/back.gif
可以看这个语法手册里的介绍
http://wiki.geek-workshop.com/doku.php?id=arduino:arduino_language_ref ...

:loveliness:多谢

lmaq 发表于 2012-8-23 16:11:41

来个视频看看呗?

rose311 发表于 2012-11-3 11:16:32

求指导,市场有这个买吗

沐~洛~沁~弦 发表于 2012-11-16 14:13:59

pulse=(1000000/pulsetime)*60;
这句的1000000是什么意思

Saint 发表于 2012-11-26 13:53:59

不知道LZ有没有知道有人把这个电路做成模块出售啊?想买个现成模块

幻缘 发表于 2013-1-17 17:09:02

:@:L:funk::L:funk::funk::funk:

樱满集 发表于 2014-8-1 10:20:49

当然最好的方法就是定时测量次数,比如测试15秒内的次数,然后再乘4就可以了   这个应该怎样实现??? 急啊!
页: [1]
查看完整版本: 来一个心跳测量模块~~