Monitor cardíaco con PIC16F628A

Monitor cardíaco en el protoboard

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, por mi parte soy partidario del uso de técnicas menos invasivas para realizar esta tarea.

El circuito propuesto es un prototipo, que sin duda puede ser mejorado en gran medida, es un monitor cardíaco basado en el conocido PIC16F628A el cual recibe 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.

El 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 al rojo no pasa a través del organismo con tanta facilidad.

Haz clic sobre la imagen para agrandarla

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.

Haz clic en la imagen para agrandarla

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 el resorte que usa 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 de el 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.

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 aumentando o disminuyendo el número de pulsaciones. 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.

Descargar diagrama y firmware para el PIC

Descarga alternativa del diagrama y firmware

¿No sabes cómo descargar? Mira este video tutorial que te explica cómo hacerlo, los usuarios Premium cuentan con enlaces extra sin publicidad para todos los archivos.

¿Alguna otra duda o problemas con la descarga?, visita la sección de Preguntas frecuentes.


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

49 comentarios sobre “Monitor cardíaco con PIC16F628A

  • el 3 agosto, 2018 a las 2:35 PM
    Permalink

    Hoka issac que tal? Me podrias decir por favor para que se utiliza el potenciometro que va al pic? Desde ya muchas gracias

    Respuesta
  • el 14 abril, 2016 a las 7:35 PM
    Permalink

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

    Respuesta
  • el 6 marzo, 2016 a las 5:48 PM
    Permalink

    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?

    Respuesta
    • el 7 marzo, 2016 a las 2:22 PM
      Permalink

      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.

      Respuesta
  • el 14 noviembre, 2015 a las 5:26 PM
    Permalink

    hola no puedo descargar el archivo rar se q la publicacion es vieja pero necesito saber si alguien me puede facilitar esos archivos necesito hacer un proyecto asi en una semana ayuda xfa

    Respuesta
    • el 14 noviembre, 2015 a las 11:12 PM
      Permalink

      Hola, si te fijas arriba está el código fuente y el diagrama, pero de todas maneras arreglé el enlace si quieres descargar.

      Respuesta
      • el 28 agosto, 2018 a las 9:12 PM
        Permalink

        Hola isaac el leguaje en .c no tenes el codigo ?

        Respuesta
  • el 14 abril, 2015 a las 11:41 PM
    Permalink

    alguien m podria poner los materiales aqui es que en las imagenes noce entienden

    Respuesta
  • el 30 marzo, 2015 a las 4:20 PM
    Permalink

    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

    Respuesta
  • el 4 agosto, 2013 a las 5:29 PM
    Permalink

    hola una consulta ya realize el circuito y suena pero aveces queda sonando el buzzer ….. me podrias decir aproximadamente que valor le pusiste a tu potenciómetro para poder regularlo bien??

    Respuesta
    • el 5 agosto, 2013 a las 5:30 PM
      Permalink

      Hola Cesar, este circuito ya no lo tengo armado ya que sólo lo arme para divertirme un rato.

      Respuesta
  • el 2 agosto, 2013 a las 12:23 AM
    Permalink

    No tienes algún archivo ya elaborado para imprimirlo en un PCB gracias

    Respuesta
  • el 29 julio, 2013 a las 8:19 PM
    Permalink

    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

    Respuesta
      • el 30 julio, 2013 a las 6:30 PM
        Permalink

        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

        Respuesta
        • el 1 agosto, 2013 a las 5:02 PM
          Permalink

          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.

          Respuesta
  • el 26 junio, 2013 a las 11:57 AM
    Permalink

    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.

    Respuesta
    • el 26 junio, 2013 a las 12:32 PM
      Permalink

      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.

      Respuesta
      • el 26 junio, 2013 a las 3:44 PM
        Permalink

        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.

        Respuesta
  • el 25 junio, 2013 a las 4:59 AM
    Permalink

    Hola, una pregunta.
    he copiado el codigo en proton
    pero no me compila me sale ” Missing Security Key”
    a que se debe ?

    No lo puedo llegar a compilar, saludos.

    Respuesta
    • el 25 junio, 2013 a las 10:22 AM
      Permalink

      Es un problema con tu instalación de Proton, busca en google cómo solucionarlo.

      Respuesta
  • el 29 mayo, 2013 a las 9:28 PM
    Permalink

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

    Respuesta
    • el 29 mayo, 2013 a las 10:51 PM
      Permalink

      Los condensadores son para aislar electricamente cada etapa de la otra y el potenciómetro es para ajustar la sensibilidad del LDR.

      Respuesta
  • el 5 mayo, 2013 a las 5:00 PM
    Permalink

    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

    Respuesta
    • el 5 mayo, 2013 a las 6:54 PM
      Permalink

      La función de todos los operacionales aquí es la misma, amplificar y filtrar la señal que viene del LDR.

      Respuesta
  • el 1 abril, 2013 a las 9:44 PM
    Permalink

    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! 😀

    Respuesta
  • el 27 marzo, 2013 a las 1:36 PM
    Permalink

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

    Respuesta
  • el 21 enero, 2013 a las 1:22 PM
    Permalink

    ola para saber que materiales uso para el monitor cardiaco
    gracias

    Respuesta
      • el 25 enero, 2013 a las 5:57 PM
        Permalink

        en el diagrama no salen los nombre de los materiales utilizados

        Respuesta
        • el 25 enero, 2013 a las 6:55 PM
          Permalink

          Yo mismo lo hice y coloqué el valor de cada componente, sólo debes hacer clic sobre la imagen para agrandar.

          Respuesta
  • el 4 diciembre, 2012 a las 9:05 PM
    Permalink

    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.

    Respuesta
    • el 4 diciembre, 2012 a las 9:42 PM
      Permalink

      Lo único que te puedo decir es lo que dije en NEOTEO, si no te funciona es porque lo armaste mal, sólo revisa todo a ver dónde cometiste el error.

      Respuesta
  • el 29 noviembre, 2012 a las 9:04 PM
    Permalink

    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

    Respuesta
    • el 29 noviembre, 2012 a las 9:58 PM
      Permalink

      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.

      Respuesta
  • el 11 octubre, 2012 a las 9:33 PM
    Permalink

    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?

    Respuesta
    • el 12 octubre, 2012 a las 8:40 AM
      Permalink

      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.

      Respuesta
  • el 5 octubre, 2012 a las 3:27 PM
    Permalink

    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

    Respuesta
    • el 5 octubre, 2012 a las 4:15 PM
      Permalink

      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.

      Respuesta
  • el 4 octubre, 2012 a las 8:38 PM
    Permalink

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

    Respuesta
  • el 17 agosto, 2012 a las 3:53 PM
    Permalink

    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

    Respuesta
    • el 17 agosto, 2012 a las 5:23 PM
      Permalink

      Hola, debes fijarte en el circuito publicado, cada componente tiene su valor escrito.

      Respuesta
  • el 20 julio, 2012 a las 11:51 AM
    Permalink

    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

    Respuesta
    • el 20 julio, 2012 a las 3:29 PM
      Permalink

      Puedes usar cualquiera, con el que debes tener cuidado es con el LED que debe ser rojo y de alta luminosidad.

      Respuesta

Deja un comentario

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.