2916| 2
|
[2019参赛作品] 【脑洞大赛】gada888+颈部血氧量测量仪 |
|
本来血氧传感MAX 30100测的好好的,都该写步骤了,它坏了。有换了一个,没用几次又坏了。看来某宝平台买的模块质量不如DF平台的。最后决定换成了pulse sensor心率传感来完成项目。 为了便携,项目模块都采用了最小封装的。项目以一个心率传感采集人体心率数据,并将数据反应在oled显示屏上。 项目使用的模块如下: 主要模块简介: 使用 PulseSensor 脉搏传感器测量心率 内容简介 对于 arduino 来说,网上有大量关于 PulseSensor 脉搏传感器的资料, 带你全方位玩转 PulseSensor,玩的,就是心跳! PulseSensor 脉搏传感器介绍 基本参数 供电电压:3.3~5V 检测信号类型:光反射信号(PPG) 输出信号类型:模拟信号 输出信号大小:0~VCC 电流大小:~4ma(5v 下) 功能原理 PulseSensor 是一款用于脉搏心率测量的光电反射式模拟传感器。将其佩戴于手指、 耳垂等处,利用人体组织在血管搏动时造成透光率不同来进行脉搏测量。传感器对光 电信号进行滤波、放大,最终输出模拟电压值。单片机通过将采集到的模拟信号值转换 为数字信号,再通过简单计算就可以得到心率数值。 引脚定义 传感器只有三个引脚,分别为信号输出 S 脚 、电源正极 VCC 以及电源负极 GND, 供电电压为 3.3V - 5V,可通过杜邦线与开发板连接。上电后, 传感器会不断从 S 脚输出采集到的电压模拟值。需要注意的是,印有心形的一面才是与手指接触面,在 测量时要避免接触布满元件的另一面,否则会影响信号准确性。 测试代码 程序烧录成功 [mw_shl_code=applescript,true]#include <SPI.h> #include <Wire.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> #define OLED_RESET 4 Adafruit_SSD1306 display(OLED_RESET); const byte heatPin=11; double alpha=0.75; int period=20; double refresh=0.0; void setup(void) { pinMode(A0,INPUT); pinMode(heatPin,OUTPUT); display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // initialize with the I2C addr 0x3C (for the 128x32) display.display(); delay(2000); // Clear the buffer. display.clearDisplay(); display.setTextSize(2); display.setCursor(0, 0); display.setTextColor(WHITE); } void loop(void) { static double oldValue=0; static double oldrefresh=0; int beat=analogRead(A0); //int y = 55; double value=alpha*oldValue+(0-alpha)*beat; refresh=value-oldValue; display.setCursor(0, 0); display.print("Heart Beat "); display.println(beat/10); display.display(); //you have to tell the display to...display delay(2000); display.clearDisplay(); oldValue=value; oldrefresh=refresh; delay(period*10); if (beat>y) { digitalWrite(11,LOW); } else digitalWrite(11,HIGH); } [/mw_shl_code] 连线图 实物测试图 |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed