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

Ningún comentario:

Publicar un comentario