Amosando publicacións coa etiqueta pulso. Amosar todas as publicacións
Amosando publicacións coa etiqueta pulso. Amosar todas as publicacións

domingo, 20 de outubro de 2019

Sensor de pulso




SENSOR DE PULSO mostrando valor nunha pantalla LCD, no serial plotter e parpadeo dun LED ao ritmo do pulso.
  1. 1.- Conectar a pantalla LCD


Esta pantalla ten 16 pins, os primeiros catorce empréganse para controlar a visualización, os dous últimos para a iluminación do fondo.
PIN
FUNCIÓN
1
GND (Terra)
2
5 Voltios
3
Control de contraste da pantalla cun potenciómetro.
4
RS – Selector entre comandos e datos
5
RW – Escritura e lectura de comandos e datos
6
Sincronización da lectura dos datos
7- 14
 Pines de datos de 8-bit
15
Alimentación luz de fondo (5V)
16
GND (Terra) luz de fondo (0V)





















2.-Conectamos o sensor de pulso
·         (-) a  GND
·         (+) a 5V
·         Sinal ao porto analóxico A0








3.       Conectamos o LED:  polo (+) ao PIN 13 e polo (-) a GND
4.       Conectamos un potenciómetro para regular o brillo da pantalla LCD.
O contacto común conectado ao PIN 3 da pantalla LCD, os outros dous contactos a 5V e a GND.

5.      Programamos en Arduino
// Medidor de pulso cardiaco por Reyes Montero
// Visualiza en LCD 16x2 el valor de BPM (pulsacións por minuto), grafica el ritmo cardiaco por el Serial Plotter y pulso por el pin 13
// Conexion Sensor Pulsos -> Arduino UNO:   S -> A0 , Vcc -> 5V , (-) -> GND

#include <LiquidCrystal.h> // inclúe a librería da pantalla LCD
#define COLS 16 // Columnas del LCD
#define ROWS 2 // Filas del LCD
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);// inicializa la interfaz do LCD 16x2
int pulsePin = 0;                   // Sensor de Pulso conectado al puerto A0
// Estas variables son volatiles porque son usadas durante la rutina de interrupcion en la segunda Pestaña
volatile int BPM;                   // Pulsaciones por minuto
volatile int Signal;                // Entrada de datos del sensor de pulsos
volatile int IBI = 600;             // tiempo entre pulsaciones
volatile boolean Pulse = false;     // Verdadero cuando la onda de pulsos es alta, falso cuando es Baja
volatile boolean QS = false;        // Verdadero cuando el Arduino Busca un pulso del Corazon
void setup(){
 pinMode(13, OUTPUT);   //pin ao que conectamos o LED
lcd.begin(COLS, ROWS);
Serial.begin(9600);                // Puerto serial configurado a 9600 Baudios
 interruptSetup();                  // Configura la interrucion para leer el sensor de pulsos cada 2mS 
}
void loop(){
 int pulso = analogRead(A0);           //Lee el valor del pulsometro conectado al puerto Analogo A0
 if (pulso >= 515) {                   // Enciende led 13 cuando el pulso pasa de un valor (debe ajustarse al valor medio de cada persona)
    digitalWrite(13, HIGH);
 } 
 else{
    digitalWrite(13, LOW);  // apaga o LED cando o pulso é inferior a 520 (debe axustarse a cada persoa)
 } 
  lcd.clear();   //limpiamos a pantalla do texto anterior
  lcd.setCursor(0,0);                   //Muestra en el LCD el valor de BPM
   lcd.print("BPM= ");     //imprime na pantalla LCD este texto e o valor medido polo sensor
   lcd.print(BPM);
   lcd.print("   ");
lcd.setCursor(0,1);   //segunda liña de texto na pantalla LCD
 lcd.print("Reyes Montero");
   //Serial.print("BPM = ");  Serial.println(BPM); //Habilitar estas linea para ver BPM en el monitor serial pero deshabilitar la siguiente
   Serial.println(pulso);                          // envia el valor del pulso por el puerto serie  (desabilitarla si habilita la anterior linea)
  if (QS == true){                       // Bandera del Quantified Self es verdadera cuando el Arduino busca un pulso del corazon
    QS = false;                          // Reset a la bandera del Quantified Self
  }
}

Na seguinte gráfica vemos o Serial Plotter de Arduino que nos da os valores do pulso.


Esta tarefa foi elaborada a partir do video titorial de el profe García