Go Down

Topic: sensor max30100 no presenta valores  (Read 585 times) previous topic - next topic

nuribe108

hola foro!! estoy teniendo problemas nuevamente con el max30100 un pulsioximetro, este presenta los valores en un lcd 16x2 hasta ahi todo bien, pero en cuanto intento agregar un pulsador y envio todo a una fuancion (lo del loop) deja de funcionar, envio programa e imagenes del proyecto


 
Code: [Select]
#include <LCD.h>
#include <LiquidCrystal_I2C.h>
#include <Wire.h>
#include "MAX30100_PulseOximeter.h"
int p,pulsado;
#define Raporlama_hizi     1000
PulseOximeter pox;
void pulso (void);
// I2C LCD modülümüzü 0x27 adresine ayarlıyoruz ve kullanacağımız ekran tipini 16x2 olarak belirliyoruz.
LiquidCrystal_I2C lcd(0x3F,2,1,0,4,5,6,7,3,POSITIVE);
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()
{
    Serial.begin(9600);
    lcd.begin(16,2);
  pinMode (13,INPUT);
    // LCD Ekranın Arkaplan ışığını açıyoruz.
    lcd.backlight();
    delay(1500);
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print("SpO2 Sensor");
    lcd.setCursor(0,1);
    lcd.print("OKUMA PROJESI");
    delay(1500);
    lcd.clear();   
    lcd.setCursor(0,0);
    lcd.print("SpO2 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 ()
{
  int i;
 
  if(digitalRead(13)==HIGH)
  {
    for(i=0;i<1000;i++)
    pulso();
  }
}

void pulso (void)
{
    // 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
    if (millis() - SonKayit > Raporlama_hizi) {
       
        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("%");

    }
 }



surbyte

Los valores se ven en el puerto serie?

nuribe108

en el puerto serie se ven, pero una vez que los intento enviar a la pantalla lcd los muestra tambien, pero al agregar un pulsador ya deja de funcionar

surbyte

cual es el pulsador que agregas, nos ayudas indicándolo?
Como lo has denominado en tu sketch?

Go Up