SENSOR DE
PULSO mostrando valor nunha pantalla LCD, no serial plotter e parpadeo dun LED
ao ritmo do pulso.
- 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
|
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
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
// Modificado
por:https://tecnoloxiaatios.blogspot.com/2019/10/sensor-de-pulso.html
// 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