下图展示的模块就是我买的37款传感器中的手指测心跳模块,通过查阅资料和目测,上面应该是一个红外线发射器,商家给的资料中说下面的是一个红外光敏三极管。
原理大概是手指放在红外线发射器和红外光敏三极管之间后,随着心脏跳动,红外光敏三极管的输出也在不断变化,通过这种变化来检测心跳。为防止外界红外线对数据造成影响,最好将手指测心跳模块放在一个封闭的盒子里面,然后进行心跳检测。
Arduino的代码是采用的商家给的示例代码代码如下:
int ledPin = 13;int sensorPin = 0;

double alpha = 0.75;int period = 20;double change = 0.0;

void setup()                   {  pinMode(ledPin, OUTPUT);  Serial.begin(115200);}

void loop()                    {    static double oldValue = 0;    static double oldChange = 0;    int rawValue = analogRead(sensorPin);    double value = alpha * oldValue + (1 - alpha) * rawValue;//这个平滑就是取本次和上一次测量数据的加权平均值    Serial.println(value);    oldValue = value;    delay(period);}

我把实际检测到的数据导入到matlab里面画了一个图,可以看到数据还是有一定的规律,只是最大值和最小值之间相差的不是很大。

最后是实际的接线图。
然后是手指放在上面测数据,最后一个图中的是我找了一个纸盒子,把测心跳模块放在里面,然后手指伸进去进行测量,matlab图形中使用的数据就是最后这幅图中的方式获得的。
 
最后是一个Processing程序,这个程序从串口中读取数据,然后实时显示曲线,但是由于心跳数据幅度不大,看着很像水平线,没有matlab图形看着那么直观,还需要进一步处理才行。
import processing.serial.*;

Serial port;float val;float[] receiveDatas=new float[440];int arrayLength=440;int startIndex=0;int dataLength=0;

void setup(){  size(440,440);    frameRate(30);  strokeWeight(2);  smooth();    port=new Serial(this,"COM3",115200);  background(0);}

void draw(){  background(0);

  if(port.available()>0)  {    String inString = port.readStringUntil('\n');    val=int(trim(inString));    receiveDatas[startIndex]=map(val,0,1023,0,height);    startIndex=(startIndex+1)%arrayLength;    dataLength=min(dataLength+1,arrayLength);  }

  stroke(0,255,0);  //beginShape();  for(int i=0;i<dataLength-1;i++)  {    line(i,receiveDatas[(startIndex+i)%arrayLength],i+1,receiveDatas[(startIndex+i+1)%arrayLength]);    //vertex(i,receiveDatas[(startIndex+i)%arrayLength]);    println(receiveDatas[(startIndex+i)%arrayLength]);  }  //endShape();}
最后还有一个疑问,把心跳检测模块放在盒子里是为了防止外部红外线对检测造成影响,但是人体本身也有红外线,这个难道不影响检测数据?

参考文献:

1)http://www.makezine.com.tw/make2599131456/arduino16  

Arduino使用手指测心跳模块相关推荐

  1. Arduino集成手指侦测心跳模块监控脉搏

    Arduino集成手指侦测心跳模块监控脉搏 我是代码小白,一个正在做毕设的秃头少年.鄙人拙作,有不当之处,还请指教. 正文 毕业设计已经OK啦,但是买的很多传感器都没用上,现在工作之余一个一个测试下, ...

  2. 「雕爷学编程」Arduino动手做(15)——手指侦测心跳模块

    37款传感器和模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器与模块,依照实践出真知(动手试试)的理念,以学习和交流为目的,这里准备 ...

  3. 红外测温枪,超进化 -- 智能温度传感器 基于 arduino 的智能测温模块

    红外测温枪,超进化!--智能温度传感器!基于 arduino 的智能测温模块. 前言 硬件选择 代码讲解 通过 SDDC 协议接入 Spirit 1 部分 配置设备信息 数据获取与发送流程 融合!特殊 ...

  4. STM32单片机使用ADC功能驱动手指检测心跳模块

    一.模块简介 某宝或某多,两三块钱一个,如下图. 该模块采用超亮红外LED和光敏晶体管来探测手指的脉搏,将手指放在发射和接收端之间,血压随着脉搏变化,接收端收到的光会发生相应的变化,因此可用来检测心跳 ...

  5. arduino loar_「雕爷学编程」Arduino动手做(15)---手指侦测心跳传感器

    37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的 ...

  6. 【雕爷学编程】Arduino动手做(78)---槽型光耦测速模块

    37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的.鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为 ...

  7. 手指检测心跳设计——传感器制作篇

    有一个红外发射管,一个红外接收管,人脉搏跳动的时候,血液的透光性不一样会导致接收器那边接收的信号强弱不一样,因此可以把变化的信号滤波.放大.整形等系列处理后 ,单片机利用外部中断对其进行计数. 这是手 ...

  8. Mind+上传模式自定义用户库实现光电测速模块测速

    文章目录 前言 一.实施过程 1.获取模板库 2.修改config.json 3.编辑资源文件 4.修改-main.ts描述文件 二.测试 1.导入用户库 2.连接硬件测试 导出分享 前言 Mind+ ...

  9. 脂肪秤方案中测脂模块如何实现BIA测量法功能?

    我们知道测量体脂最重要的是BIA测量法.而BIA测量法的主要原理是将身体简单分为导电的体液.肌肉等,以及不导电的脂肪组织,测量时由电极片发出极微小电流经过身体,若脂肪比率高,则所测得的生物电阻较大,反 ...

最新文章

  1. DataTable中数据记录的统计
  2. sublime text 2用package control安装插件时显示成功安装但实际没装上的问题
  3. [C++11]final关键字的使用
  4. RuntimeError: [enforce fail at inline_container.cc:145] . PytorchStreamReader failed reading zip arc
  5. php十六进制字符串转成字节数组_PHP中的数据类型及实例演示
  6. java性能检测工具_老李分享:JAVA性能监控工具
  7. AMS Audio Converter如何编辑音频/ MP3的ID3信息?
  8. GridView控件 Reapter控件 DataList控件 的区别和用法
  9. [洛谷1681]最大正方形II
  10. 音视频学习(五)——H.264视频码流
  11. 戴尔云客户端:三大发力点实现高速增长
  12. Android kotlin let函数学习
  13. 关于Gary Marcus与Yann LeCun讨论AI现状及发展
  14. FIX协议教程1-什么是FIX会话和管理消息
  15. Python练习——基础练习题1
  16. 超兔指纹浏览器(TO12345)是什么?
  17. 类似搜狐新闻的栏目定制
  18. String 翻转字符串
  19. 写出林俊杰《黑夜问白天》歌词
  20. 域名,主机名,网站名,URL

热门文章

  1. ORA-3136错误分析——WARNING Inbound Connection Timed Out
  2. 利用python中basemap库绘制地图
  3. android Bluetooth连接方式 SCO ACL
  4. SimAM: A Simple, Parameter-Free Attention Module for Convolutional Neural Networks
  5. 有没有python搜题_python搜题公众号
  6. eDP vs MIPI DSI区别
  7. 高清电影播放机选购知识——附30余款播放机资料(1)
  8. gethostbyname和gethostbyaddr
  9. 不一样的视角,不一样的VR
  10. 石墨文档支持的几种markdown格式