jueves, 21 de septiembre de 2023

Programación

  

Programación


#include <Adafruit_SSD1306.h>

#include <splash.h>

#include <Adafruit_GFX.h>

#include <Adafruit_GrayOLED.h>

#include <Adafruit_SPITFT.h>

#include <Adafruit_SPITFT_Macros.h>

#include <gfxfont.h>

#include <SPI.h>

#include <Wire.h>

#define OLED_RESET 13

//Adafruit_SSD1306 display(OLED_RESET);  

Adafruit_SSD1306 display = Adafruit_SSD1306(128, 64, &Wire);

#define SSD1306_128_64


int sensor = A0;

int lecturasensor = 0;


byte data[128] ;

byte indexs = 0 ;

byte anterior;



long rango = 5;

long ultimamedicion;

int ciclo = 0;

int cambiodeciclo = 0;

int picodetension;

int valledetension = 1023;

long contadorciclo;


boolean estadoBPM = true;

boolean estadoLed = true;

int intervaloEncendido = 100;

int IntervaloApagado = 100;


int IntervaloBPM = 10000;

int IntervaloBPM2 = 1;

 

unsigned long tiempoAnteriorEncendido = 0;

unsigned long tiempoAnteriorApagado = 0;

unsigned long tiempoAnteriorBPM = 0;

unsigned long tiempoAnteriorBPM2 = 0;


int pulsos = 0;

int pulsos2 = 0;

int senal = 0;



int buzzer=7;


void setup()

{

  Serial.begin(9600);


  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);

  display.clearDisplay();

  display.setTextSize (2);

  display.setTextColor(WHITE);

  pinMode (buzzer, OUTPUT);

  pinMode (8, OUTPUT);

  display.clearDisplay();

  for (int i = 0 ; i < 128 ; i++)

    data[i] = 0 ;

}


void loop()

{

  display.clearDisplay();

  indexs = indexs % 128;

  lecturasensor = analogRead (sensor);

  Serial.println(lecturasensor);

  //data [indexs] = 64 lecturasensor / 1024;

  indexs++;

  byte i = indexs;


  for (int x = 0; x < 128; x++)

  {


    i = i % 128;


    display.drawLine(x, data[i], x, anterior, 1);

    anterior = data[i];

    i++;

    if (x == 0)

    {

      display.clearDisplay();

    }

  }


  display.setCursor(0,5);

  display.print("F:RESP=");


display.setCursor (90,5);

  display.print (lecturasensor);

  display.display();



    senal-lecturasensor;


   if (senal >= ( ultimamedicion+100) )

   {

 ultimamedicion = senal;  

     ciclo=1;

     if (senal>picodetension)

     {

     picodetension=senal; //

     }

   }


   if (senal<= ( ultimamedicion-100))

   {

     ultimamedicion = senal;

     ciclo=0;

     if (senal<valledetension)

     {

     valledetension=senal;

     }

   }


  if(millis()-tiempoAnteriorBPM-IntervaloBPM) {

     lecturasensor=analogRead(sensor);

   estadoBPM=false;

   pulsos2=pulsos;

    tiempoAnteriorBPM=millis();

   pulsos=0;

  }

  if (millis()-tiempoAnteriorBPM2>=IntervaloBPM2) {

       lecturasensor=analogRead(sensor);

     estadoBPM=true;



     tiempoAnteriorBPM2=millis();

  }


  if((millis()-tiempoAnteriorEncendido>=intervaloEncendido)&&estadoLed==true && ciclo==0)

  {


    estadoLed=false;

    picodetension=senal;  

    valledetension=senal;

    digitalWrite(8,HIGH);

    tone(buzzer, 2500);

    tiempoAnteriorApagado=millis();

  }


  if((millis()-tiempoAnteriorApagado>=IntervaloApagado) &&estadoLed==false && ciclo==1)

  {


   pulsos++;

   picodetension=senal;

   valledetension=senal;

   estadoLed=true;


 noTone(buzzer);

   digitalWrite (8,LOW);


   tiempoAnteriorEncendido=millis();

 }


 display.display();


}

No hay comentarios:

Publicar un comentario

Programación

   Programación #include <Adafruit_SSD1306.h> #include <splash.h> #include <Adafruit_GFX.h> #include <Adafruit_GrayOLED...