最近在做一个stm32的血氧检测程序,但搞了好久,最终发现回到了原点,本人菜鸟一枚刚毕业也不久,现在也真的很无助要不然也不会跑到这里来丢脸,但关键是我已经答应了做这个东西也搞了这么久,不可能就这么随便说做不了,所以有哪位大神在能给予帮助的范围指点一下也行。 下面是我自己做血氧检测的思路:首先我这血氧检测模块是网上购买的(用示波器看了输出信号能单独显示红光和红外的波形)。然后我根据网上收集的信息,用定时器发射红光跟红外的波形我设置的是500us,通过stm内置的adc一直采集输入的信号,由于定时了500us,所以在红光亮500us时我将采集的数据开辟一个数组装起来,然后红外也同红光一样进行数据操作,每过一秒对采集的数据做最大值最小值比较,然后放入定义的最大值最小值数组当中,这样连续采集8s,因为装最大值最小值的数组最大长度就是8,然后取平均值最终获取红光信号,红外信号的最大值最小值,最后根据公式算出R,后面采集的数据我也是进行位移操作,然后重复更新采集的数据。 以上是我能想到的全部,但我按照这个思路得出的数据完全不是我想要的,真的有种泪奔的感觉,也不知道哪里出了 问题,所以希望哪位大神能给点关于这方面的任何帮助都行,谢谢!!! |
抛砖引玉,看楼下怎么说
这方面了解的比较少,感谢提出!
说明书一份!哈哈
https://wenku.baidu.com/link?url ... hzdg15o1NXgtr3RSH-G
原理一份!哈哈
谢谢!!
检测原理就是血液会吸光,但根据不同的光线,吸光程度是不同的,这样就可以通过光敏二极管转换成模拟电信号,由于人体脉博的跳动,血液吸光会不断变化,这样二极管接收的光电信号也就不一样,就会出现二种信号的最大值跟最小值,通过最大值最小值就能求出一个系数,在通过经验公式就可以求出血液中的含氧量。原理就是这么简单!
不好意思我没有保密的意思,首先我发这个贴是,主要是看看有哪位前辈做过,然后指点下我的思路,没有考虑到论坛很多朋友没接触过,毕竟这里涉及和考虑的问题比较多,如果你感兴趣我可以吧我的思路,电路图已经写好的代码发给你,但如果只是看看我觉得就没必要了!