Monitor cardíaco con PIC16F628A

estetoscopio

En el presente artículo armaremos un monitor cardíaco con el popular PIC16F628A y algunos otros componentes de fácil consecución. Nota: Contenido actualizado en Agosto de 2020

Monitor cardíaco con PIC16F628A

Monitor cardíaco en el protoboard

Introducción

Los signos vitales (Pulso cardíaco, frecuencia respiratoria, temperatura, tensión arterial) son una serie de parámetros cuantificables propios de un individuo vivo que nos permiten obtener información acerca del funcionamiento de su organismo. Entre ellos, el pulso cardíaco es a menudo el primero en ser tomado en cuenta por médicos y profesionales de la salud ya que su ausencia implica la muerte casi inmediata del paciente. Además, el aumento o disminución de la Frecuencia Cardíaca (número de latidos del corazón por minuto) puede dar pistas sobre patologías o estados alterados del organismo que requieren atención, por lo cual, es innegable la utilidad de equipos de monitoreo como el que aquí les traigo.

Pinza de ropa con LED y LDR

Los métodos utilizados en electrónica para medir los signos vitales, y en este caso el pulso cardíaco, son variados. En ocasiones se usan técnicas invasivas para dicho fin, como colocar electrodos sobre la piel o incluso implantarlos en el organismo, sin embargo estos métodos a menudo pueden resultar engorrosos o poco convenientes.

El circuito propuesto es un monitor cardíaco basado en el conocido PIC16F628A, al cual llegan los pulsos cardíacos de un sensor y una etapa amplificadora para contarlos y luego mostrar el número de pulsos por minuto en una pantalla LCD.

Funcionamiento del circuito

Su funcionamiento es bastante sencillo, primero los pulsos son tomados pasando un haz de luz roja (generada por un LED) que atraviesa el dedo meñique del paciente y luego es captada por un LDR, esta etapa es crítica en el sentido de que no cualquier diodo LED puede ser usado, sino que debe ser uno de alta luminosidad y de color rojo, esto es porque los LED’s comunes no generan un haz de luz lo suficientemente potente como para atravesar la piel y además la luz de un color distinto no pasa a través del organismo con tanta facilidad.

Etapa amplificadora del monitor cardíaco

Cuando el haz de luz atraviesa la piel sufre pequeñas variaciones de intensidad cada vez que la sangre es bombeada por el corazón en cada latido, esta variación es captada por el LDR que envía dicha información a una serie de Amplificadores Operacionales que no sólo amplifican dicha señal sino que la limpian para eliminar ruidos indeseados.

Una vez que tenemos una señal más clara, gracias a los AO’s, la convertimos en un pulso digital por medio de compuertas lógicas con un 4093 y ya a partir de aquí, la señal digital está presente en el pin 4 del 4093 y podemos usarla para dos cosas, primero, convertirla en una señal audible de los latidos del corazón, lo cual se logra con las compuertas C y D del 4093, y en segundo lugar es enviada al pin 17 del PIC (segunda etapa del circuito) para contar los pulsos y luego presentarlos en pantalla.

Etapa de control con PIC16F628A

Ajustes finales

Para colocar el LED y el LDR de forma que puedan tomar los pulsos del dedo meñique utilicé una pinza de las usadas en los tendederos de ropa, nada más que ablandé un poco su resorte para que no hiciera demasiada presión en el dedo del sujeto, ya que esto no sólo sería molesto para la persona sino que además impediría la circulación de sangre a través del dedo y por lo tanto sería imposible lograr una lectura de los pulsos del corazón.

Es importante ajustar la sensibilidad del circuito antes de usarlo, lo cual se hace colocando el dedo meñique en la pinza  y ajustando RV1 hasta que podamos escuchar los pulsos del corazón en el BUZZER, luego de esto presionamos RESET y el PIC comenzará a contar los pulsos por minuto. En realidad cuenta los pulsos sólo 20 segundos y luego multiplica el resultado por 3, esto es lo que hacen las enfermeras al tomar la medida manualmente.

Código fuente

El código en Basic para programar el PIC (hecho en Protón) es el siguiente:

Device = 16F628A
Xtal = 20
Declare LCD_Type = 0
Declare LCD_DTPin = PORTB.4
Declare LCD_ENPin = PORTB.0
Declare LCD_RSPin = PORTB.3
Declare LCD_Interface = 4
Declare LCD_Lines = 2
Dim PULSOS As Byte
All_Digital = true
Input PORTA.0

Print At 1,1," Pulsaciones "
Print At 2,1," por minuto: ? "

INICIO:

PULSOS = Counter PORTA.0, 20000
PULSOS = PULSOS * 3
Print At 1,1," Pulsaciones "
Print At 2,1," por minuto: ", Dec PULSOS, " "
GoTo INICIO

End

Los valores normales de la frecuencia cardíaca en personas adultas están entre 60 y 80 pulsaciones por minuto. Esto puede variar según la edad y el sexo, y como dije antes, existen otras variables que pueden alterar el ritmo y la frecuencia cardíaca. A continuación una tabla con los valores normales según la edad:

FRECUENCIA CARDÍACA

Valores normales en ppm
Recién nacido 120 ppm
De 2 a 6 años 100 a 115 ppm
De 8 a 10 años 100 ppm
Mayores de 10 años 90 ppm
Adultos 60 a 80 ppm
Ancianos 60 a 70 ppm

Factores que modifican el pulso

  • Edad y sexo.
  • Actividad física.
  • Estado nutricional.
  • Estado emocional.
  • Estado hemodinámica.
  • Estado de la pared función miocárdica.

Principales patologías que podemos detectar

Taquisfigmia o taquicardia:

Aumento de la frecuencia del pulso (por encima de 90 ppm en adultos). El pulso puede aumentar normalmente tras el ejercicio, la excitación nerviosa o las comidas abundantes, o de forma patológica cuando hay fiebre, shock traumático, hemorragias, infarto de miocardio, entre otras.

Bradisfigmia o bradicardia:

Disminución de la frecuencia del pulso (por debajo de 60 ppm en adultos) que puede presentarse normalmente durante el sueño y en atletas en reposo. Si es muy lento (inferior a 40 ppm) se debe pensar en lesión cardíaca (sobretodo si el individuo sufre de desvanecimiento o disnea) o cerebral (en el traumatismo craneoencefálico).

Palpitaciones:

Es la sensación incómoda de estar consciente de el propio ritmo cardíaco. El corazón puede latir más rápido o más fuerte de lo normal o puede saltearse un latido (latido irregular). Puede estar acompañada o no de sensación de ahogo o falta de aire y de un leve dolor en el pecho. Sus causas son variadas siendo las más frecuentes el estar expuesto a situaciones de estrés, consumo de drogas, tabaco, alcohol o café. También existen patologías que pueden provocar palpitaciones. En cualquier caso, de presentarse palpitaciones frecuentes es conveniente ir al médico para un chequeo.

Esto es todo por hoy amigas y amigos, los dejo con un video del circuito funcionando, y al final adjunto el archivo en Hexadecimal para programar el PIC. No olviden ANTE CUALQUIER AFECCIÓN ASISTIR AL MÉDICO, NO ES CONVENIENTE EL AUTO DIAGNÓSTICO NI LA AUTOMEDICACIÓN.

Ver video con el circuito funcionando


Descargar diagrama y firmware para el PIC

Vea también: Curso de programación de microcontroladores PIC en BASIC

Si esta información te ha sido útil, ¡considera apoyar al autor con una donación! Es fácil y seguro a través de PayPal.

Tu ayuda nos permite mantener el sitio en línea y seguir compartiendo contenido valioso.

También, no olvides darle "Me gusta" y compartir en tus redes sociales para que más personas puedan beneficiarse. ¡Gracias!

39 comentarios en “Monitor cardíaco con PIC16F628A”

  • jorge dice:

    hola, cuanto voltaje debe de entregar la patita de la ultima compuerta nand que va al buzzer, el voltaje debe estar variando

  • Hector mario valencia dice:

    amigo me parece super chevere tu proyecto, pero me gustaria hacerlo para mi materia de micro 2 pero, nosotros solo podemos usar un pic 16F887 de 40 pines…. se puede montar este proyecto en uno ?

    amigo me gustaria contactar contigo yhablar .. me podria dar su correo o numero de whtspp?

    • Isaac dice:

      Hola, si ves el código fuente verás que es tan corto que se puede usar con cualquier pic, no doy asesorías personales, consulta con tu profesor si tienes alguna duda.

  • Paola dice:

    Oyes amigo como hiciste la pinza? No le pusiste mas resistencias aparte de esas o algún otro material?? Tienes ese código lo puedo poner en arduinó? Si me mandaras unas fotos de tu circuito y de la pinza me las podrías mandar

  • manuel dice:

    buenas Tardes disculpa arme Tu circuiTo solo Tengo una duda los capaciTores que esTan de 2u2 son de 2.2 micros o de 22micros gracias

    • Isaac dice:

      Hola, son de 2,2 micro faradios.

      • manuel dice:

        buenas tarde, arme el circuito pero aun no he echo el sensor de los pulsos, le conecte el buzzer i se quedo sonando es normal esto o tendre algun error? i ora cosa los pines de los opams el 5,6 i 2,3 van conectados entre si o van aparte? gracias

        • Isaac dice:

          Hola, el buzzer debe sonar solo cuando cuenta los pulsos, si no está conectado el sensor no debe sonar, los pines de los integrados van como se ve en el diagrama, si le das clic se agranda y puedes verlo en detalle.

  • Jonathan dice:

    Hola Isaac..
    los archivos para descargar debajo del ultimo video que extension tienen ?

    hay 2 graficos y 2 archivos mas..
    uno de ellos es el hex.. ? ..para ya pasarlo al pic ?

    ahh .. tmb.. necesito un quemador de pic y el pickit2 para pasar el hex al pic ? ..
    sorry.. soy nuevo con el proton…
    saludos.

    • Isaac dice:

      Hola, los archivos tienen extensión .hex y .bas, para ver la extensión de los archivos en XP vas al explorador>herramientas>opciones de carpeta>ver y deseleccionas la opción «ocultar las extensiones de archivos…»
      Por otro lado sí necesitas un quemador y un programa para grabar el pic, es un tema bastante extenso por lo que no te podría explicar en pocas líneas como se hace pero hay muchos cursos en internet que hablan sobre el tema, sólo tienes que buscar un poco.

      • Jonathan dice:

        Gracias.
        la parte de como pasar al pic .. si lo se..
        solo queria saber si era el archivo .hex porque sigo con el problema que no me compila y no me genera el codigo hex.. pero ya que lo subiste.. solo tengo que quemarlo en el pic.
        saludos.

  • Jesus dice:

    Hola queria saber que hace un condensador en cada etapa de salida y para que el potenciometro de la primera etapa. Gracias!

  • Jesus dice:

    Hola hermano queria preguntarte cual era la funcion del integrador en este caso es decir el primer operacional que esta siguiente a la etapa de los leds. Gracias

  • Niko dice:

    Hola! Tengo una pregunta: En el esquemático de la primera etapa veo que se una un potenciómetro (en NEOTEO indica que es de 10 K), sin embargo en el video no veo nigun pot, o al menos no lo alcancé a ver. ¿Qué funcionamiento tiene? ¿Y es necesario que esté ese potenciómetro o se puede dejar la resistencia de 10 K?
    Excelente aportación. Saludos! 😀

  • Luis Angel dice:

    Una pregunta en NeoTeo Utilisan cable blindado igual utilisaste tu o con cualquier tipo de cable de puede usar??

  • eddier dice:

    ola para saber que materiales uso para el monitor cardiaco
    gracias

  • Enrique dice:

    Hola Isaac, seguí tus consejos de armado pero no resultó. Te cuento que sólo estoy armando la etapa de amplificación y así lograr escuchar el «beep» de los pulsos, pero no me funcionó con un tester medí el voltaje de salida del 4093 en el pin 4 pero es demasiado pequeño lo mismo ocurre con la instalación del buzzer un voltaje muy pequeño que no alcanza a alimentar el buzzer, ademas medí el voltaje de salida de los amplificadores que es el pin 7 , pero es cercano a 2 volt en la primera salida y del segundo amplificador cercano 1 volt, en vez de un voltaje mayor de salida en el pin 7 es mucho menor, alguna solución a estos problemas?? Saludos.

  • Enrique dice:

    Hola, estoy realizando el circuito y llegue a este gracias a NEOTEO.COM en el cual hiciste el comentario de que resulta el circuito. Mi consulta se debe a que este es casi parecido, pero en este omitiste uno condensadores de 100n que iban en paralelo al pin 8 del lm358, puede esto ocasionar algún error?
    Lo otro, el led y el LDR lo estoy conectando al protoboard, para probar si resulta o es sumamente necesario realizarlo aparte con el debido cable blindado?. Saludos

    • Isaac dice:

      Saludos Enrique, el tema de los condensadores de 100n es un convencionalismo, se acostumbra que en los circuitos siempre coloques uno de estos condensadores a cada integrado para evitar ruidos u oscilaciones extrañas que puedan venir de la fuente, sin embargo como ves en mi circuito yo lo alimenté con una batería de 9V y confío en que esta dará un voltaje completamente regulado y libre de ruidos por lo que no considero necesario colocarlos, en cambio si usas una fuente de poder y no una batería es mejor que los coloques, lo del LDR te recomiendo que lo coloques en un gancho así como lo hizo Mario o como el mío ya que es importante que tanto el LED como el LDR estén bastante pegados a la piel, así la luz del LED podrá atravesar más fácilmente el dedo y también el LDR tiene menos probabilidades de captar señales de luz provenientes del entorno, eso sí, trata de que no quede muy apretado el gancho porque entonces corta la circulación y no podrás medir los pulsos, debe quedar un poco flojo, el gancho de ropa que usé trae un resorte de plástico así que lo rebajé un poco con el mototool para que apretara menos.

  • Pedro dice:

    Hola Isaac queria preguntarte si se puede sustituir por otro pic por ejemplo PIC16F887 y tambien queria preguntarte si tu proyecto mide el porcentaje de oxigenación de la sangre?

    • Isaac dice:

      Saludos Pedro, el proyecto mide la frecuencia cardíaca, es decir la cantidad de latidos del corazón por minuto, para medir el porcentaje de oxigenación en la sangre se necesitaría un sensor que mida ese parámetro pero no sé si exista un sensor así, en cuanto al PIC, puedes cambiarlo por otro pero lógicamente deberás modificar el código fuente para adaptarlo al PIC que uses.

  • SAMUEL dice:

    HOLA ME GUSTARIA QUE ME enviaras la lista de material a mi correo sino es mucha molestia a y los planos de como construirlo y este trabajom es fabuloso si gue siendo asi espero tu respuesta saludos

    • Isaac dice:

      Bueno, en realidad no tengo una lista de materiales, lo que ves en el diagrama es lo que debes comprar, sólo haz clic en la imagen del circuito y esta se agranda lo suficiente para verla en detalle, está bastante facil de armar y funciona muy bien, incluso se puede modificar el programa del PIC para que te de alguna señal, por ejemplo si la frecuencia cardíaca está muy alta o muy baja. Una cosa importante que creo que lo mencioné en el artículo aunque no recuerdo, es que si usas un gancho de ropa para colocar el LDR y el LED debes ablandar un poco el resorte para que no apriete mucho, en parte porque es doloroso tener un gancho muy apretado en el dedo y además porque de estar demasiado apretado no permitirá que circule sangre y no habrá lectura.

  • Pedro dice:

    Hola Isaac queria preguntarle si el LDR se puede sustituir por un fototransistor?

  • ricardo dice:

    hola compa te puedo molestar me podrías enviar o postear la lista de materiales con sus respectivas resistencias si es posible te lo agradecería un montón

  • eduardo dice:

    hola máster te quería consultar el LDR cual de estos usaste LDR 10 mm (250 mW 300 V. 600 NM)
    • LDR 20 mm (750 mW 1500 V. 530 NM)
    • LDR 5 – 8 mm. (90 mW 150 V. 600 NM)
    gracias por poner tu proyecto me pareció fabuloso

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.