心率监测器DIY图解

电子说

1.2w人已加入

描述

第1步:设置传感器。

这是简单的部分。

只需找到一根大致与手指大小相同的管即可。

在相对的“墙壁”上开两个孔。

将LDR电阻器热胶并插入孔中。

然后将电阻器焊接到LED上以确保其不会燃烧。我用了220欧姆的电阻器,这很好。

然后将GND接地焊接到LED的阴极,将+5 Vcc焊接到阳极。

然后从LED的vcc焊接短线(电阻之前)连接到第一个LDR电阻分支。

最后将信号电缆焊接到最后一个LRD电阻分支。

就是这样。传感器的基本功能已经完成。

我用黑色电子胶带将传感器的外部胶带粘上了。只是为了确保从底部进入LDR的光最少。另外,我在里面放了一些黑色泡沫状的东西,并为LDR切了一个洞。

步骤2:只是快速测试。

设置非常简单。 GND和Vcc转到爱迪生自己的输出,来自传感器的数据信号电缆连接到模拟0(A0)。

像我以后所做的那样,LCD屏幕转到屏蔽板上的I2C端口。 .witch,您将在下一步中看到。。..

首先。下载处理2 以图形方式查看读数的结果,甚至可能看到自己的心跳。

这在校准时将为您提供很多帮助

但是您将需要该程序的代码。从下面下载。

然后将一个简单程序加载到Edison,该程序将模拟传感器值打印到串行,然后运行处理2。

如果不起作用,请检查串行

第3步:编码。

这是项目中最棘手的部分。当心脏跳动传感器时,您将必须向下映射。

基本思想是,当LED点亮并照向LDR时,读数约为1020。当手指插入LDR时,值在980-995之间变化。这是处理2方便的地方。当血液在您的手指中碰碰时,手指所经过的光会稍微改变。当光线最亮和最暗时,映射正确的时刻。您的阅读内容可能与我的不同。

好。所以这是代码。

几乎不需要什么。

计时器将在开始时设置为0,并在10秒后停止。计数器会计算节拍并将其乘以六。

const int analogInPin = A0;

int Led = 13;

int sensorValue = 0;

int count=0;

unsigned long time1=0;

unsigned long time2;

#include

#include “rgb_lcd.h”

rgb_lcd lcd;

const int colorR = 255;

const int colorG = 0;

const int colorB = 0;

设置主要是在基本设置中进行。

void setup() {

Serial.begin(115200);

pinMode(Led, OUTPUT);

pinMode(Led, HIGH);

lcd.begin(16, 2);

lcd.setRGB(colorR, colorG, colorB);

}

然后循环。这是主程序,它显示计数的物料并保持传感器的阈值,该传感器的阈值是在需要计数一,二,三等时……

void loop() {

if(count==0)

{time1=millis();

}

time2=millis();

sensorValue = analogRead(analogInPin);

if(time2》=time1+10000)

{ counter();

}

if(sensorValue 》1000){

lcd.clear();

Serial.println(“Insert finger”);

lcd.setCursor(0,0);

lcd.print(“Insert Finger”);

return;

}

if(sensorValue ==991){

lcd.clear();

digitalWrite(Led, HIGH);

increment();

Serial.println(sensorValue);

Serial.println(count);

Serial.println(time2);

lcd.setCursor(0,0);

lcd.print(“Counting”);

}

if(sensorValue 》990){

digitalWrite(Led, LOW);

}

delay(200);

}

然后有几个子例程

Increment()将计数值添加到计数和计数器计数中,并在继续执行程序之前将其保持5秒钟的值进行显示。

void increment()

{

count++;

}

void counter()

{

lcd.clear();

count=count*6;

Serial.print(“Heart beat: ”);

Serial.print(count);

lcd.setCursor(0,0);

lcd.print(“Heart beat:”);

lcd.setCursor(0,1);

lcd.print(count);

time1=0;

time2=0;

count=0;

delay(5000);

}

第4步:最终结果。

项目工作很棒!

在正确读取后,几乎没有时间显示6 BPM。

没有胶水,但我可以忍受。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分