Arduino Kod Yardım

OXYD

Üye
Katılım
14 Kas 2019
Mesajlar
4
Puanları
1
Yaş
35
Merhabalar Şöyle bir sıkıntı yaşıyorum Max30100 nabız degerlerinin alıyorum ancak cok degişken geliyor melesa son 20 degerin ortalamasını nasıl alabilirim.Yardımcı Olabilirmisiniz.Kodlar su sekilde:
Kod:
#include <Wire.h>
#include "MAX30100_PulseOximeter.h"
#include <LiquidCrystal_I2C.h>

#define Raporlama_hizi     1000
PulseOximeter pox;

// I2C LCD modülümüzü 0x27 adresine ayarlıyoruz ve kullanacağımız ekran tipini 16x2 olarak belirliyoruz.
LiquidCrystal_I2C lcd(0x27, 16, 2);

uint32_t SonKayit = 0;

// Pulse algıladığında bu fonksiyon çalışıyor.
void atimalgilandi()
{
  Serial.println("Atım Algılandı ...");
  lcd.setCursor(15, 1);
  lcd.print("*");
}

void setup()
{

  lcd.begin();

  // LCD Ekranın Arkaplan ışığını açıyoruz.
  lcd.backlight();

  Serial.begin(115200);
  lcd.setCursor(0, 0);
  lcd.print("");
  lcd.setCursor(0, 1);
  lcd.print("");
  delay(1500);
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("Nabiz Sensor");
  lcd.setCursor(0, 1);
  lcd.print("OKUMA PROJESI");
  delay(1500);
  lcd.clear();



  lcd.setCursor(0, 0);
  lcd.print("Sensor");
  lcd.setCursor(0, 1);
  lcd.print("Hazirlaniyor");
  delay(2000);
  Serial.print("Pulse Oksimetre Sensörü Hazırlanıyor ...");
  lcd.clear();
  lcd.setCursor(0, 0);
  // Pulse Oksimetre sensörünü kontrolünü yapıyoruz.
  // Arızalar genelde yanlış I2C kablolaması, eksik güç kaynağı nedeniyledir.

  if (!pox.begin()) {
    Serial.println("BAŞARISIZ");
    lcd.print("BASARISIZ");
    for (;;);
  } else {
    Serial.println("TAMAMLANDI");
    lcd.print("TAMAMLANDI");
  }
  // delay(500);
  // Atım algılandığında geri çağrılacak olan fonksiyon

  pox.setOnBeatDetectedCallback(atimalgilandi);
}

void loop()
{
  // Sensöre tarama yapmasını sağlıyoruz.
  pox.update();

  // Asenkron olarak kalp atış hızı ve oksidasyon seviyelerini okuyoruz
  // Her ikisi için de 0 değeri "geçersiz" anlamına gelir
  //double deger=alfa*oncekideger+(0-alfa)*ritim;
//yenileme=deger-oncekideger;
  if (millis() - SonKayit > Raporlama_hizi) {
    Serial.print("Kalp Atış Hızı: ");
    Serial.print(pox.getHeartRate());
    Serial.print("bpm / SpO2: ");
    Serial.print(pox.getSpO2());
    Serial.println("%");

    SonKayit = millis();



    lcd.clear();
    lcd.setCursor(0,0);

    lcd.print("HR: ");
    lcd.print(pox.getHeartRate());
    lcd.print(" bpm");

    lcd.setCursor(0, 1);

    lcd.print("SpO2: ");
    lcd.print(pox.getSpO2());
    lcd.print("%");

  }
}
 

Forum istatistikleri

Konular
128,133
Mesajlar
915,308
Kullanıcılar
449,850
Son üye
umutbaysal9

Yeni konular

Geri
Üst