完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本帖最后由 hehung 于 2018-6-16 08:37 编辑 最近做了一个机遇STM32的心率监测装置,使用了一块OLED屏幕进行检测到的心率的波形的显示。 心率监测传感器使用的传感器是pulse sensor,是一款比较便宜的传感器。显示屏采用的是128X64的OLED显示器。 首先放上成品图,不然你们是没有兴趣看的。^_^ 接下来讲讲制作过程: 开发环境:win10 +MDK KEIL5.24 ST-LINK下载器(不一定需要这个,J-LINK和串口下载都是可以的) 我是用的是STM32F103C8T6最小系统板,价格比较便宜并且功能足够强大。 元器件有: pulse sensor心率传感器 IIC OLED显示屏 按键2个 LED1个 蜂鸣器1个 在硬件结构方面还是比较简单的,连线比较简单,就是在软件方面花费了我一些时间,算法处理和波形系那是还是花了一些时间采写好的。 放上电路连接图:引脚接线一目了然: OLED我采用的是IIC操作的OLED,因为IIC操作简单,只需要两根线(我直接使用的PA7和PA8)。使用了软件IIC,直接移植的正点原子的官方例程的IIC,OLED显示也是移植的正点原子的程序,只是做了改进,可以显示汉字(正点原子的官方例程中OLED程序不能显示汉字),还可以自动在数字前面补0. 由于程序比较大,我在后面会一起发送源码。
pulse sensor心率传感器采用ADC进行数据采集,使用到了ADC0(PA0)。通过配置ADC引脚完成ADC的采集,通过实验,可以正常的采集到数据。当人的手指放上之后用示波器可以看到心跳的电压变化。 操作说明书:
Pulse Sensor使用说明书V5.5(密码xinghuidianzi).pdf
(4.91 MB, 下载次数: 206
)
心率算法就是检测心率波形的峰值,检测到 有60000ms 除以两个峰值时间(ms)就是心率值,说起来比较简单,但是操作起来有各种干扰,通过官方的例程上进行修改,最终成功测出心率值,还是比较准确的
我将采集工作与算法处理都放在了定时器里面,初始化了一个2ms的定时器中断,这个工作都是没2ms进行一次 LED、按键和蜂鸣器就不用多说了,很简单,蜂鸣器需要一个三极管进行信号放大,不然的话是驱动不了的。 最后说一下我所完成的工作的内容: 1、按下按键1,可以进行界面的切换,在界面1的时候回显示西女排的数据值,ADC值等信息。 2、在界面2的时候就是显示波形,在人的手没有放上的时候一般不会显示,手放上之后就会显示心率(人的手放上之后,芯片会有一段时间的空白期(采集到的数据为0),我就是根据这段时间来判断时候有手放上) 3、当采集到的心率值不在规定的范围之内时蜂鸣器就会报警 4、按下按键2之后蜂鸣器停止报警,知道再次检测到人手放在传感器上面。 |
|
相关推荐
7 个讨论
|
|
为啥我测出的一直都是两百多呀
|
|
|
|
6 条评论
|
|
2136 浏览 1 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
1970 浏览 3 评论
4566 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
2116 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
2629 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 20:18 , Processed in 0.614665 second(s), Total 57, Slave 50 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号