#include <Wire.h> #include "MAX30105.h" #include <LiquidCrystal_I2C.h> #include "heartRate.h" LiquidCrystal_I2C lcd(0x27, 16, 2); MAX30105 particleSensor; const byte RATE_SIZE = 4; byte rates[RATE_SIZE]; byte rateSpot = 0; long lastBeat = 0; float beatsPerMinute; int beatAvg; void setup() { lcd.begin(); lcd.backlight(); Serial.begin(115200); Serial.println("Initializing..."); if (!particleSensor.begin(Wire, I2C_SPEED_FAST)) { Serial.println("MAX30105 was not found. Please check wiring/power. "); while (1); } Serial.println("Place your index finger on the sensor with steady pressure."); particleSensor.setup(); particleSensor.setPulseAmplitudeRed(0x0A); particleSensor.setPulseAmplitudeGreen(0); } void loop() { long irValue = particleSensor.getIR(); if (checkForBeat(irValue) == true) { long delta = millis() - lastBeat; lastBeat = millis(); beatsPerMinute = 60 / (delta / 1000.0); if (beatsPerMinute < 255 && beatsPerMinute > 20) { rates[rateSpot++] = (byte)beatsPerMinute; rateSpot %= RATE_SIZE; beatAvg = 0; for (byte x = 0 ; x < RATE_SIZE ; x++) beatAvg += rates[x]; beatAvg /= RATE_SIZE; } } if (irValue < 50000) { Serial.print(" No finger?"); lcd.clear(); lcd.setCursor(0,0); lcd.print("No"); lcd.setCursor(0,1); lcd.print("Finger"); delay(150); } else { Serial.print("IR="); Serial.print(irValue); Serial.print(", BPM="); Serial.print(beatsPerMinute); Serial.print(", Avg BPM="); Serial.print(beatAvg); lcd.setCursor(0,0); lcd.print("BPM: "); lcd.print(beatAvg); lcd.setCursor(0,1); lcd.print("IR: "); lcd.print(irValue); } Serial.println(); } Colored by Color Scripter |
2 댓글
lcd에 불은 들어오나 어떠한 문자도 표기되지 않습니다
답글삭제lcd 뒤쪽에 가변저항을 돌려서 문자가 나오는지 확인해보시길 바랍니다.
삭제