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