一、器材
MAX30102
arduino uno
二、接线
MAX30102 | arduino uno |
VCC | 5V |
GND | GND |
SCL | A5 |
SDA | A4 |
三、程序
mixly程序
mixly第三方库瑞龙创客工厂的块
arduino代码
#include <Wire.h> #include "MAX30105.h" #include "heartRate.h" MAX30105 particleSensor; const byte RATE_SIZE = 4; //Increase this for more averaging. 4 is good. byte rates[RATE_SIZE]; //Array of heart rates byte rateSpot = 0; long lastBeat = 0; //Time at which the last beat occurred float beatsPerMinute; int Bpm_value; void setup(){ Serial.begin(9600); particleSensor.begin(Wire, I2C_SPEED_FAST); particleSensor.setup(); //Configure sensor with default settings particleSensor.setPulseAmplitudeRed(0x0A); //Turn Red LED to low to indicate sensor is running particleSensor.setPulseAmplitudeGreen(0); //Turn off Green LED } void loop(){ long irValue = particleSensor.getIR(); if (checkForBeat(irValue) == true) { //We sensed a beat! long delta = millis() - lastBeat; lastBeat = millis(); beatsPerMinute = 60 / (delta / 1000.0); if (beatsPerMinute < 255 && beatsPerMinute > 20) { rates[rateSpot ] = (byte)beatsPerMinute; //Store this reading in the array rateSpot %= RATE_SIZE; //Wrap variable //Take average of readings Bpm_value = 0; for (byte x = 0 ; x < RATE_SIZE ; x ) Bpm_value = rates[x]; Bpm_value /= RATE_SIZE; } } Serial.print("Bpm_value = "); Serial.print(Bpm_value); Serial.println(" bpm"); }
四、效果
打印串口心率