Está en la página 1de 17

INSTRUMENTACIÓN MÉDICA

POST-TAREA: IMPLEMENTAR UN INSTRUMENTO DE MEDICIÓN BIOMÉDICO


CON VISUALIZACIÓN EN PANTALLA LCD

HECTOR OROBIO VALENCIA CODIGO 79356242


RICARDO VALENCIA CODIGO
MARCO CESAR RIVERA CODIGO 1,130,601,869
DIEGO ALEJANDRO BENAVIDES CODIGO
ADOLFO LOPEZ OSORIO CODIGO 1112878552

GRUPO: 299016_20

TUTOR
ERIK MIGUEL BARRIOS

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA
DICIEMBRE 11 DE 2022
PROPUESTA DE DISEÑO DE UN INSTRUMENTO DE MEDICIÓN

En esta actividad se va a implementar en físico un instrumento que permita medir el ritmo


cardiaco a partir de una señal plestimógrafica. se debe de realizar el acondicionamiento de
la señal y la visualización en un LCD en donde se muestre el valor de la frecuencia
cardiaca.

Diseño del Sensor


Para la deteccion de los pulsos se tiene el siguiente diagrama del sensor
Figura 1. Esquema básico de un pulsómetro digital Fuente: (Angulo, 2014)

Diagrama de bloques
Se requiere un circuito que maneje el siguiente diagrama de bloques

Figura 2. Diagrama de bloques. Fuente: Autor

En la implementación física no se utilizará el driver para el manejo de diodos y no se tendrá


la etapa de diferenciación.
Antes de la etapa de filtrado se construye un amplificador de transimpedancia debido a que
se están manejando dos diodos, un fotodiodo receptor y un diodo emisor de IR.

Circuito
A continuación, se presenta la conexión de elementos del circuito.
Figura 3. Conexión diodos. Fuente: Autor

Las resistencias limitadoras se calculan de la siguiente manera:


Vin−Vdiodo 5 V −2V
R= → R= → R=300 Ω
i 0.01 A
Por lo anterior, se utiliza resistencias de 330 ohmios.

Etapa de filtrado
Se construye un filtro pasa altas con la siguiente estructura:
Figura 4. Diagrama de bode Fuente: Autor

Posterior al filtrado se realiza una amplificación y filtrado de la señal por medio de un


amplificador operacional LM324.
Figura 5. Amplificación y filtrado. Fuente: Autor

En la salida del amplificador operacional se tiene una señal pequeña por lo que se realiza la
amplificación con un transistor.

Montaje en Proteus
A continuación, se puede observar el montaje y conexiones de la solución propuesta con
una tarjeta Arduino UNO y la pantalla LCD, en el software de simulación Proteus.
Figura 6. Simulación de conexión en Proteus. Fuente: Propia
Montaje físico.
Como se puede observar en la siguiente figura, antes de implementar el montaje en físico,
se realiza el diseño creado en el programa de simulación PROTEUS ya que permite
conocer de qué manera se hacen las conexiones entre el Arduino UNO, la pantalla LCD
16x2, un led del color deseado y un transistor el cual simula el sensor de pulso de Arduino.
Figura 7. Diseño de la solución

Materiales utilizados y su implementación en la solución

1. Tarjeta Arduino UNO


Arduino es una plataforma que se ha creado con el fin de que sea de código abierto, es
decir, se tiene hardware y software libre para poder usar en el desarrollo de diferentes
sistemas electrónicos sensoriales y de uso común en el hogar, la industria y demás
(Arduino, 2010). Este, en el caso del UNO, funciona con un micro controlado llamado
ATMEL sobre el cual se maneja disposición de código para poder manera instrucciones
sobre el lenguaje IDE. Es así como sobre esta placa vamos nosotros a generar el entorno del
pulsómetro para el uso de la materia y/o proyecto final.
Figura 8. Arduino UNO. Fuente: (Arduino, 2010)

Tabla 1. Características de Arduino UNO

CARACTERISTICA DESCRIPCIÓN
Microcontrolador ATmega 168
Voltaje de operación 5V
Tensión de entrada (recomendada) 7 - 12 V
Tensión de entrada (límite) 6 - 20 V
14 (de los cuales 6 proveen salidas
Pines digitales de E/S
PWM)
Pines de entrada analógicos 6
Corriente DC por pin E/S 40 mA
Corriente DC para pin 3.3 V 50 mA
32 KB (de los cuales 0.5 KB usados
Memoria Flash
para bootloader)
SRAM 1 KB
EEPROM 1KB
Frecuencia de reloj 16 MHz

Implementación:
A. PIN 5V Se utiliza para energizar el sensor y la pantalla LCD
B. GND Se utiliza para la tierra del sensor, del LED y de la pantalla
C. VIN Se utiliza para energizar el sensor
D. PIN A0 Se utiliza para la lectura del sensor
E. PIN A4 Se utiliza para conectar con la pantalla LCD
F. PIN A5 Se utiliza para conectar con la pantalla LCD
G. PIN 13 Se utiliza para que sea el tránsito de orden hacia el LED (pin digital)
Figura 9. Pines de uso de Arduino UNO. Fuente: Propia

2. I2C LDC
Es un dispositivo que ayuda a controlar de una manera más cómoda, rápida, segura y
optima la pantalla LCD con respecto a la conexión con el módulo de Arduino (Parzibyte,
2018). Es un hardware el cual es un expansor de in y out digitales. Los pines que ingresan
son paralelos a las ranuras del LCD, y la conexión que tendremos hacia el Arduino estará
compuesta de GND a G, VCC a 5V, SDA a A4 y SCL a A5
Figura 10. I2C LCD

Implementación
A continuación, se tiene las conexiones entre Arduino y Módulo adaptador LCD a I2C:
Figura 11. Conexión LCD-I2C-Arduino UNO. Fuente: (Parzibyte, 2018)

3. Pantalla LCD 16x2.


Dispositivo de lectura compuesto de un cristal líquido sobre el que tendremos dos filas de
reproducción de texto alfanumérico el cual puede ser conectado y sincronizado con la placa
de Arduino.
Figura 12.Pantalla LCD 16x2

Implementación
A continuación, se tiene las conexiones entre pantalla LCD y Módulo adaptador LCD a
I2C.
Figura 13. Conexión LCD-I2C. Fuente: (Parzibyte, 2018)
4. Sensor de Ritmo Cardiaco Para Arduino
El sensor de pulso es un sensor de frecuencia cardíaca plug-and-play para Arduino. (MCI
electronics, s.f.). Este sensor combina la tecnología óptica con un componente de
amplificación y un práctico circuito de cancelación de ruido, lo cual da una respuesta rápida
y fácil de interpretar. Además, posee un consumo de 4 mA de corriente a 5V por lo que es
ideal para aplicaciones móviles.
Figura 14. Sensor Ritmo o Pulso Cardíaco. Fuente: (MCI electronics, s.f.)

Tabla 2. Características del sensor. Fuente (MCI electronics, s.f.)

CARACTERISTICA DESCRIPCIÓN
Dimensiones 16mm diametro
Consumo de corriente 4mA
Voltaje de alimentación 5V

Implementación
A continuación, se tiene las conexiones entre el sensor de ritmo cardiaco la tarjeta Arduino
UNO
Figura 15. Conexión Sensor-Arduino UNO
Código implementado:

#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27,16,2); // Interfaz del i2c para la LCD de 12x2

float Pulso; // Declaramos la variable para captura de pulsaciones int Pulsometro = 0; //


Puerto digital A0 de lectura del sensor de pulso

// Variables Para Usar En La Interrupción de Tiempos Para Pulsaciones

volatile int IBI = 650; // Tiempo en ms entre cada pulsación


volatile int BPM; // Latidos por minuto
volatile int Entrada; // Entrada de datos del sensor de pulsos
volatile boolean Pulsacion = false; //True= onda alta, False= onda baja
volatile boolean Heart = false; // True= Arduino está buscando señal

oid setup(){

lcd.init(); lcd.clear(); // Se inicializa el LCD 16x2


lcd.backlight(); // Se enciende la luz del LCD
lcd.clear(); // Limpíeza de pantalla
pinMode(13, OUTPUT); // Se declara el pin 13 como salida para interpretar señal con LED
Serial.begin(9600); // Puerto serial a 9600 Baudios
interruptSetup(); // Interrupción de lectura sensorial cada 2Ms
}

void loop(){

Pulso = analogRead(A0); // Lecutra del sensor en el Analogo A0


if (Pulso <= 530) { // Encenderá el LED cuando cumpla la condición
digitalWrite(13, LOW); // Si se cumple (por debajo de) entonces estará el LED apagado
}
else{
digitalWrite(13, HIGH); // Si se cumple (por encima de) entonces estará el LED encendido
}

Serial.print(BPM); // Tomamos la respuesta en el monitor


Serial.print(" Latidos por minuto \n"); // Referenciamos
lcd.setCursor(1,0); // Configuramos la posición de impresión en la LCD
lcd.print("BPM = "); // Imprimimos en la LCD mensaje
lcd.print(BPM); // Imprimimos en la LCD el valor capturado
lcd.print(" "); // Dejamos espacio organizacional en la impresión de LCD
Serial.println(Pulso); // Envía el valor a Puerto serial
if (Heart == true){ // Quantified Self es True cuando el Arduino busca pulsos
Heart = false; // Resetea el Quantified Self
}
}

Control de Pulsaciones

volatile int rate[10]; // Matriz de control para últimos valores, en este caso 10
volatile unsigned long Contador = 0; // Usado para definir la sincronización del pulso
volatile unsigned long LBT = 0; // Encontrar IBI
volatile int P =512; // Usado para encontrar picos de onda
volatile int V = 512; // Encontrar el valle de la onda
volatile int Moment = 512; // Momento exacto del latido del corazón
volatile int Amplitud = 100; // Mantiene la amplitud de la onda
volatile boolean firstB = true; // Arranque de la matriz con respecto a su velocidad
volatile boolean secondB = false; // Arranque de la matriz con respecto a su velocidad,
segunda posición
int N; // Variable para control de ruido

void interruptSetup(){ // Iniciación de la interrupción


TCCR2A = 0x02; // Deshabilita entrada PWM de pines 3 y 11
TCCR2B = 0x06; // Elimina la comparación en escala
OCR2A = 0X7C; // Conteo para frecuencia de muestreo en 500Hz
sei(); // Interrupción global
}

Arrancamos Con El Segundo Timing Para 2ms

ISR(TIMER2_COMPA_vect){ // Conteo hacia 124


cli(); // Deshabilita interrupciones por procesos posteriores
Entrada = analogRead(Pulsometro); // Lectura de sensor
Contador += 2; // Revisa cada 2ms el ingreso sensorial de la señal
N = Contador - LBT; // Control de tiempo para reducción de ruidos

Formación de La Onda

if(Entrada < Moment && N > (IBI/5)*3){ // Espera de 3/5 por ruidos
if (Entrada < V){ // TCanal de valle
V = Entrada; // Seguimiento a la onda baja de la pulsación
}
}
if(Entrada > Moment && Entrada > P){ // Reducción de ruido
P = Entrada; // Revisión de picos
}

// La Señal Irá En Aumento Por Cada Pulsación

if (N > 250){ // consume ruido en altas frecuencias


if ( (Entrada > Moment) && (Pulsacion == false) && (N > (IBI/5)*3) ){
Pulsacion = true; // Establece la alerta de pulsación cuando se detecta

IBI = Contador - LBT; // Medición de tiempos por MS


LBT = Contador; // Siguiente pulsación (contador)

if(secondB){ // Segundo tiempo


secondB = false;
for(int i=0; i<=9; i++){
rate[i] = IBI;
}
}

if(firstB){ // Primer tiempo


firstB = false
secondB = true;
sei();
return;
}

// Mantenemos En Gráfica Últimos 10 Valores

word runningTotal = 0; // Limpieza de variable


for(int i=0; i<=8; i++){
rate[i] = rate[i+1];
runningTotal +=
rate[i];
}

rate[9] = IBI;
runningTotal += rate[9];
runningTotal /= 10; BPM = 60000/runningTotal;
Heart = true;
}
}
if (Entrada < Moment && Pulso == true){ // Terminación por caída de valores
secuenciales
Pulsacion = false; // Reset de registro de pulsación
Amplitud = P - V; // Obtenemos amplitud de onda actual
Moment = Amplitud/2 + V; // Setea a la caída en un 50% de amplitud
P = Moment; // Resetea para la siguiente ejecución
V = Moment;
}

if (N > 2500){ // Esto si hay más de 2.5 segundos sin registro de latido
Moment = 512;
P = 512; V = 512;
LBT = Contador;
firstB = true;
secondB = false;
}

sei(); // Habilita de nuevo el código cuando se finaliza


}

Resultados de la Implementación del Sensor

Figura 16. Herramienta de Plotter de Arduino que imprime la frecuencia


Figura 17. Herramienta de consola de Arduino que imprime los datos
Evidencia de La Implementación Física de La Solución:

Nota:
Para detener el video damos clic derecho y luego clic izquierdo en la opción Cancelar del
menú desplegable que se abre.
Para volver al modo Word haga clic sobre la opción Modo Diseño de la Pestaña
Programador.
CONCLUSIONES

 Al finalizar la implementación del instrumento de medición requerido, es


importante resaltar algunas de las ventajas evidenciadas al momento de utilizar la
tarjeta Arduino UNO, entre las cuales, se encuentra su bajo costo, versatilidad y la
bondad de poder ser reutilizada en diferentes proyectos; esto la vuelve muy
apropiada para el desarrollo de múltiples practicas que promueven el fortaleciendo
de las habilidades adquiridas en el transcurso del semestre.

 La instrumentación medica actualmente se encuentra presente casi en todos los


procedimientos médicos desde el diagnostico hasta el tratamiento. es decir, desde
instrumentos sencillos como el medidor de pulso cardiaco hasta la tomografía
computarizada, contribuyendo de esta manera en la profundización del criterio de
los médicos y estableciendo un mejor diagnóstico y un tratamiento adecuado.
REFERENCIAS

 Angulo, C. (Julio de 2014). Universidad Politecnica de Valencia. Recuperado el Diciembre de


2022, de
https://riunet.upv.es/bitstream/handle/10251/49716/MEMORIAdefinitiva_14047195741583523
182364041613508.pdf?sequence=3

 Apuntes de Bioingeniería. (2001). Obtenido de


http://www.iuma.ulpgc.es/~jrsendra/Docencia/Bioingenieria/PDF/Apuntes/
BioIng_ULPGC_2001.pdf

 Arduino. (2010). Arduino.cl. Obtenido de https://arduino.cl/que-es-arduino/

 Interfacing 16X2 LCD Module with ESP32 with and without I2C. (s. f.). Circuit Schools.

Recuperado 27 de mayo de 2022, de https://www.circuitschools.com/interfacing-16x2-lcd-

module-with-esp32-with-and-without-i2c/

 Noriega, M. (2009). Introducción a la Ingeniería Biomédica. Obtenido de

http://www.academia.edu/6148931/Libro_Texto_Introduccion_A_La_Ingenieria_Biomedica

 Isa, M. (2014). Sensores. Obtenido de http://www.isa.cie.uva.es/~maria/sensores.pdf

 MCI electronics. (s.f.). Sensor de pulso Cardiaco: MCI electronics. Recuperado el Diciembre de

2022, de MCI electronics: https://mcielectronics.cl/shop/product/sensor-de-pulso-cardiaco-

11135/#:~:text=El%20sensor%20de%20pulso%20es,tiempo%20real%2C%20en%20sus

%20proyectos.

 Parzibyte. (8 de Febrero de 2018). Ejemplo de Arduino y LCD con el módulo I2C: Parzibyte.

Obtenido de Parzibyte: https://parzibyte.me/blog/2018/02/08/ejemplo-arduino-lcd-modulo-i2c/

 Ruiz, C, Zuluaga, A, & Trujillo, A. (2007). TELEMEDICINA: Introducción, aplicación.

Obtenido de http://www.redalyc.org/articulo.oa?id=261120984009

También podría gustarte