16x2LCDのMAX30102心拍数モニター
コンポーネントと消耗品
> |
| × | 1 | |||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
必要なツールとマシン
> |
|
アプリとオンラインサービス
> |
|
このプロジェクトについて
これは、MAX30102センサーモジュールで作られたシンプルな心拍数モニターです。 Arduinoライブラリに基づいて簡単なコードを作成しました。値は16x2のLCD画面に表示されます。最初の行は1分あたりの平均拍数を示し、2番目の行は反射された赤外線ビームの値を示しています。読み取り値をより正確にするには、この値を一定にする必要があります。
コード
- 無題のファイル
無題のファイル Arduino
/ * MAX30105ブレイクアウトを使用した光学式心拍数検出(PBAアルゴリズム)作成者:Bennu @ MH-ET LIVE日付:2017年10月2日https://github.com/MHEtLive/MH-ET-LIVE-max30102これはPenpheral Beat Amplitude(PBA)アルゴリズムを使用して、心拍数または1分あたりの心拍数(BPM)の読み取り値を示すデモ。輪ゴムまたはその他の締め付け装置を使用して、センサーを指に取り付けるのが最適です。人間は一般的に物に一定の圧力をかけるのが苦手です。指をセンサーに押し付けると、指の血液の流れが変化するほど変化し、センサーの読み取り値が不安定になります。ハードウェア接続(ブレイクアウトボードからArduino):-5V =5V(3.3Vが許可されます)-GND =GND -SDA =A4(またはSDA)-SCL =A5(またはSCL)-INT =未接続MAX30105ブレイクアウトは5Vまたは3.3VI2Cロジック。ボードに5Vで電力を供給することをお勧めしますが、3.3Vでも動作します。* /#include#include "MAX30105.h" #include #include "heartRate.h" MAX30105particleSensor; LiquidCrystal lcd(12、11、5、4、3、2); constバイトRATE_SIZE =4; //これを増やすと、平均化が進みます。 4は良いです。byterates[RATE_SIZE]; //心拍数の配列byterateSpot =0; long lastBeat =0; //最後のビートが発生した時刻floatbeatsPerMinute; int beatAvg; void setup(){Serial.begin(9600); lcd.begin(16、2); Serial.println( "初期化中..."); //センサーを初期化しますif(!particleSensor.begin(Wire、I2C_SPEED_FAST))//デフォルトのI2Cポート、400kHzの速度を使用{Serial.println( "MAX30105が見つかりませんでした。配線/電源を確認してください。"); while(1); } Serial.println( "人差し指を一定の圧力でセンサーに置きます。"); particleSensor.setup(); //デフォルト設定でセンサーを構成しますparticleSensor.setPulseAmplitudeRed(0x0A); //赤いLEDを低くして、センサーが実行中であることを示します。particleSensor.setPulseAmplitudeGreen(0); //緑色のLEDをオフにします} void loop(){long irValue =particleSensor.getIR(); if(checkForBeat(irValue)==true){//ビートを感知しました!長いデルタ=ミリ秒()-lastBeat; lastBeat =millis(); beatsPerMinute =60 /(デルタ/ 1000.0); if(beatsPerMinute <255 &&beatsPerMinute> 20){rates [rateSpot ++] =(byte)beatsPerMinute; //この読み取り値を配列に格納しますrateSpot%=RATE_SIZE; //ラップ変数//読み取り値の平均を取るbeatAvg =0; for(byte x =0; x
回路図
製造プロセス