—设计完整,功能可全部实现,有完整报告文档说明、程序以及pcb文件—
可作为:课程设计,STM32实践学习,电子制作等

设计所实现的功能:
利用STM32的AD采集功能实时采集心率传感器信号输出引脚输出的模拟电压,通过将采集到的模拟信号在STM32内部进行运算处理,将数据波形实时显示到OLED显示屏上。并且按下测量键可以进行心率测量,在OLED显示屏上面显示一分钟脉搏数。
1.使用STM32对心率传感器输出模拟电信号来进行模数转换;
2.采集回的数据以波形的形式显示在OLED显示屏上;
3.当按下测量按键时会进行一分钟脉搏次数计算,然后显示在OLED显示屏上;
4.在心率检测仪工作时,心型流水灯会发生相应的流动变化。

设计内容

本文所设计的基于STM32的心率检测仪是利用STM32的AD采集功能实时采集心率传感器信号输出引脚输出的模拟电压,通过将采集到的模拟信号在STM32内部进行运算处理,将数据波形实时显示到OLED显示屏上。并且按下测量键可以进行心率测量,在OLED显示屏上面显示一分钟脉搏数。其中主要实现了使用STM32对心率传感器输出模拟电信号来进行模数转换,并且实时将采集回的数据以波形的形式显示在OLED显示屏上,当按下测量按键时会进行一分钟脉搏次数计算,然后显示在OLED显示屏上,及时了解到自己的心跳次数。

系统总体设计
系统的硬件组成中以STM32为主控制芯片,利用STM32内部自带的AD采集模块进行实时采集心率传感器输出引脚输出的模拟信号,并且将采集到的数据以波形的形式实时显示到OLED显示屏上,其中心型流水灯可以显示测量状态。系统的基本硬件结构图如图2.1所示。

Pulse Sensor 是一款用于心率测量、脉搏波形测量和HRV分析的光电反射式模拟传感器。将其佩戴于手指、耳垂等处,通过导线连接可将采集到的模拟信号传输给Arduino、STM32和STC12C5A等具有模拟采集功能的单片机并转换为数字信号,再通过单片机的简单计算后就可以得到心率数值,此外还可将脉搏波形和心率数值通过串口上传到电脑进行显示。Pulse Sensor心率传感器如图2.2所示。

OLED显示屏是利用有机电致发光二极管制成的显示屏。由于同时具备自发光,不需背光源、对比度高、厚度薄、视角广、反应速度快、可用于挠曲性面板、使用温度范围广、构造及制程较简单等优异之特性,被认为是下一代的平面显示器新兴应用技术。实验中所采用的OLED 显示屏如图2.3所示。

系统总体硬件搭建
将STM32、Pulse Sensor心率传感器、OLED
屏幕模块以及按键等部分的硬件设计好之后,根据设计中的需求,先是AD采集模块采集到的信号到STM32控制器中,然后通过STM32将数据实时输出到OLED显示屏上,按键可以实时进行控制是否进行心率值显示,并且可以用流水灯进行测量状态显示。按照这几个步骤便可以设计电路图,将系统搭建起来。

主程序设计
将Pulse Sensor心率传感器采集函数、OLED
屏幕显示函数以及按键函数等软件程序在Keil5上设计好之后,根据总体设计要求,先是将所有需要初始化的模块进行初始化处理,然后AD采集函数进行实时运行,将采集到的数据传递到OLED显示波形的函数中,OLED显示函数将实时得到的数据存到一个数组里面,不断地去刷新,然后硬件上面便能够实现在OLED显示屏上显示波形曲线,然后通过也不断检测按键中断是否被触发,如果按键函数传递出的按键值是被按下的状态,则立马启动心率计算的函数,将一分钟的脉搏计算出来并且显示到液晶屏幕上面去。

OLED波形显示测试

OLED显示屏显示波形这部分是AD转化不断将心率传感器输出的模拟量转化成数字量,因为AD的采集速度很快,就可以近似将采集的数字量给连续化,形成在时间点上很密集的数据,在这种情况下就可以在OLED显示屏上近似地显示成一条连续的脉搏线,能够形成示波器显示一条连续的脉搏线在不断的变化的效果。测试时通过手指接触心率传感器来让心率传感器采集数据,其中OLED显示屏显示脉搏波形的测试如图4.2所示。

心率值测试

最后一部分就是能够将一分钟的心率值给准确测试出来,测试中通过手指按压心率传感器,等到OLED显示屏上面的波形稳定之后就按下按键进行心率值的测试,在经过一段时间之后,STM32就将计算的心率值显示在OLED显示屏上,
OLED显示屏显示心率值的测试如图4.3所示。

本文只摘取了设计中的部分文档内容,文档中所设计硬件系统好用,可作为课程设计以及其他电子制作,想要整体设计报告以及PCB文件和程序需要私信,QQ:2859340499。
提供:
(程序:STM32的AD采集,控制OLED显示屏显示波形)
(文档:内容详细,按照课程设计要求编写)
(pcb:整套板子的pcb设计)

基于STM32的脉搏心率检测仪(OLED可以实时显示脉冲波形)的更多相关文章

  1. 给基于对话框的MFC程序添加状态栏并实时显示时间

    转载自丝雪儿 1.首先在string table 里添加两个字串,ID分别为IDS_INDICATOR_MESSAGE and IDS_INDICATOR_TIME 2.在你的 dlg.h 类里面加个 ...

  2. 嵌入式系统及应用课程设计——基于STM32的温湿度监测系统

    大三上学期期末总结,嗯,没错上学期,写在新学期开始,hhh. 上学期学了一门嵌入式系统及应用的课程,期末的课程设计题目是基于STM32的温湿度监测系统. 记得刚开始做课程设计的时候,听说先设计画出原理 ...

  3. 单片机DIY制作-基于STM32单片机甲醛二氧化碳温度湿度采集系统

    基于STM32单片机甲醛二氧化碳温度湿度采集系统 实践制作DIY-GC008-甲醛二氧化碳温度湿度采集系统 一.功能说明: 基于STM32单片机设计-甲醛二氧化碳温度湿度采集系统 二.功能介绍: 1. ...

  4. 基于STM32+华为云IOT设计智能称重系统

    摘要:选择部署多个重量传感器和必要的算法.通过WiFi 通信模块.GPS定位模块,采集车辆称重数据一地理位置信息,并通过网络发送至云平台,设计图形化UI界面展示称重.地图位置等重要信息,实现对称重系统 ...

  5. 基于STM32的uCOS-II移植详解

    百度:基于STM32的uCOS-II移植详解 源:基于STM32的uCOS-II移植详解

  6. 基于STM32的USB枚举过程学习笔记

    源:基于STM32的USB枚举过程学习笔记 基于STM32的USB枚举过程学习笔记(一) 基于STM32的USB枚举过程学习笔记(二) 基于STM32的USB枚举过程学习笔记(三) 基于STM32的U ...

  7. ARM开发(2)基于STM32的蜂鸣器

    基于STM32的蜂鸣器 一 蜂鸣器原理:  1.1 本实验实现1个蜂鸣器间隔1S鸣叫.  1.2 实验思路:根据电路图原理,给蜂鸣器相关引脚赋予高低电平,实现电路的导通,使蜂鸣器实现鸣叫或不鸣.  1 ...

  8. 【安富莱专题教程第1期】基于STM32的硬件RGB888接口实现emWin的快速刷新方案,32位色或24

    说明:1. 首先感谢ST终于推出了ARGB格式的emWin库,可谓千呼万唤始出来,使用STM32的硬件RGB888接口刷新图片慢的问题终于得到解决.2. 这个问题由来已久,是之前为我们的STM32-V ...

  9. 基于stm32的水质监测系统项目基础部分详细记录

    基于stm32的水质监测系统项目基础部分详细记录 软件环境:MDK5 硬件环境:STM32F103ZET6 开发板.颜色传感器.串口屏.串口打印机 搭建工程模板 在进行项目软件的撰写时,首先新建一个基 ...

随机推荐

  1. PYTHON实战完整教程1-配置VSCode开发环境

    一.安装 为降低学习门槛,保证学习目标的聚焦,我们在windows(使用WinServer2019虚拟机)上搭建开发环境.(系列教程最后结束时,也会部署到linux上) 打开Python官网 http ...

  2. SSH config语法关键字

    1.SSH config 语法关键字 host 别名 HostName 主机名(ip) User    用户(root就是一个用户) Port 端口(默认22) IdentityFile 密钥文件的路 ...

  3. Escalate_my_privilege 靶机

    1:扫描主机ip 2:扫描端口发现 22 80 111 3:目录扫描,发现一些平常的页面 4:进入robots.txt发现一个类型命令行的界面,查看是个低权限,但是在home目录下的armour发现密 ...

  4. Mybatis-02-CRUD及配置解析

    CRUD 1.namespace namespace中的包名要和Dao/Mapper接口的包名一致! 2.select 选择,查询语句; id:对应的namespace中的方法名 resultType ...

  5. c# Attribute会不会影响性能

    Attribute很方便,标记一个类,设置这个类的额外信息,而不用另外设计存储这个信息. 那么频繁大量使用Attribute会不会影响类的性能. 为此,简单测试. 代码: 略............. ...

  6. 【USACO13DEC】 最优挤奶 - 线段树

    题目描述 FJ最近买了1个新仓库, 内含N 个挤奶机,1 到N 编号并排成一行. 挤奶机i 每天能产出M(i) 单位的奶.不幸的是, 机器装得太近以至于如果一台机器i 在某天被使用, 那与它相邻的两台 ...

  7. Java中对象和对象引用的区别,引用、指向是什么意思

    Java的变量分为两大类:基本数据类型和引用数据类型. 其中基本类型变量有四类8种:byte short int long float double char boolean,除了8种基本数据类型变量 ...

  8. badger 一个高性能的LSM K/V store

    原文:https://colobu.com/2017/10/11/badger-a-performant-k-v-store/ github地址:https://github.com/dgraph-i ...

  9. MySQL遇见SELECT list is not in GROUP BY clause and contains nonaggre的问题

    目录 报错现象 原因 解决方法 报错现象 执行SQL报错如下: SELECT student.s_no,student.s_name,SUM(result.mark) FROM student,res ...

  10. Erlang中的宏定义应该在什么时候用

    读<Erlang OTP并发编程实战>中看到这么一句话,遂做笔记以记录: 宏不是函数的替代品,当你所需的抽象无法用普通函数来实现时,宏给出了一条生路,比如,必须确保在编译期展开某些代码的时 ...