• 回复
  • 收藏
  • 点赞
  • 分享
  • 发新帖

MAX30100心率传感器程序

         最近买了一个心率传感器,MAX30100但是这个传感器读出来的是原始数据,需要大量的处理,所以就网上找资料,找到很多资料;

先说说这个测量心跳和血氧的原理,大概就是,使用特定红光发射一定波长的光,然后使用接收管接收,接收都是16位原始数据;

因为血液含氧量对发的红光比较敏感,所以就可以靠,接收反射光的强弱来判定血氧含量;

    

     最终的接收数据就是一个几乎直流的信号加上一个很小的脉冲信号,那个脉冲信号就是心率信号了,所以面对的问题就是怎么把脉冲信号提取出来;

重点就在这里;

网上很多人使用STM单片机做这个,使用FFT,还有很多阶滤波算法,我想是用51单片机来弄,但是就一个1024阶FFT就让这个单片机望而却步了,占用内存都19K怎么都跑不动啊 ,

最后就是用了一阶RC滤波就搞定了,

不过在写RC滤波的时候出现一个插曲,就是网上找的资料10个9个都是错的,

这个是最后使用RC滤波,然后再减去自身得到的心跳数据,所以为什么那些人要FFT那么麻烦呢 ;

这个是最终的效果图;

全部回复(1)
正序查看
倒序查看
2018-10-15 10:34

心跳可以计算出来了 ,但是血氧好像计算起来比较麻烦;

网上是说使用RED光和IR光的交流有效值除以直流有效值,得到R然后查表计算,好麻烦啊 ;

0
回复