mirror of
https://github.com/m5stack/m5-docs.git
synced 2026-05-20 10:23:01 -07:00
3.7 KiB
3.7 KiB
HEART {docsify-ignore-all}
📝概要 :octocat:サンプルコード 🔌回路図 🛒購入リンク
概要
HEART は MAX30100(pulse oximeter chip)を内蔵しています。赤血球中の酸素量と非運搬酸素量を赤外LED照明によって検出することができ、心拍数のAD値も取得可能です。 MAX30100は2個の発光ダイオードと1個の光検出器を内蔵しています。ユニットをM5CoreのGROVE Aポートに接続し、指を置くことでデータを取得できます。
特徴
- 低ノイズ
- 血中酸素濃度および心拍値を取得可能
- GROVE インターフェース、Arduinoをサポート
- LEGO互換ホール
関連リンク
-
データシート
サンプルコード
1. Arduino IDE
完全なソースコードはこちら。
/*
Install MAX30100lib Library first.
MAX30100_RawData.ino
*/
#include <Wire.h>
#include "MAX30100.h"
#define SAMPLING_RATE MAX30100_SAMPRATE_100HZ
#define IR_LED_CURRENT MAX30100_LED_CURR_50MA
#define RED_LED_CURRENT MAX30100_LED_CURR_27_1MA
// set HIGHRES_MODE to true only
// when setting PULSE_WIDTH to MAX30100_SPC_PW_1600US_16BITS
#define PULSE_WIDTH MAX30100_SPC_PW_1600US_16BITS
#define HIGHRES_MODE true
// new a object
MAX30100 sensor;
void setup()
{
Serial.begin(115200);
Serial.print("Initializing MAX30100..");
if (!sensor.begin()) {
Serial.println("FAILED");
for(;;);
} else {
Serial.println("SUCCESS");
}
sensor.setMode(MAX30100_MODE_SPO2_HR);
sensor.setLedsCurrent(IR_LED_CURRENT, RED_LED_CURRENT);
sensor.setLedsPulseWidth(PULSE_WIDTH);
sensor.setSamplingRate(SAMPLING_RATE);
sensor.setHighresModeEnabled(HIGHRES_MODE);
}
void loop()
{
uint16_t ir, red;
sensor.update();
while (sensor.getRawValues(&ir, &red)) {
Serial.print(ir);
Serial.print('\t');
Serial.println(red);
}
}
回路図
ピンマップ
| M5Core(GROVE A) | GPIO22 | GPIO21 | 5V | GND |
| HEART Unit | SCL | SDA | 5V | GND |


