Arduino: no puedo obtener lecturas de ECG de corazón, pero lo hago cuando toco las derivaciones

Tengo un problema menor con mi ECG. Cuando toco los cables, obtengo una lectura. Pero cuando sostengo los cables o los coloco cerca de mi corazón, no obtengo nada. Estoy bastante seguro de que esto está relacionado con el hardware, pero no quiero descartar por completo un posible problema de software. Usé este video de YouTube como guía: https://www.youtube.com/watch?v=NDjRg-KgIXY , con su programa de circuito a continuación.

circuito de video vinculado

Mi tablero casi se ve exactamente igual que ese, pero con un par de cambios. En lugar de conectar el ECG a la computadora a través de un cable de audio, usé Bluetooth para transferirlo a mi teléfono. Aquí está mi diagrama esquemático.

1

Aquí está mi diagrama de tablero.

2

En mi protoboard, utilicé tres amplificadores operacionales LM358. Aquí está mi código Arduino (si lo necesita):

const int  signal = 7;    // Pin connected to the filtered signal from the circuit
unsigned long currentBeatTime;   
unsigned long previousBeatTime;

unsigned long frequency;

// Internal variables
unsigned long period = 0;
int input = 0;
int lastinput = 0;


void setup() {
pinMode(signal, INPUT);
Serial.begin(9600);

previousBeatTime = millis();
}

void loop() {
delay(100);
input = digitalRead(signal);

if ((input != lastinput) && (input == HIGH)) {
    // If the pin state has just changed from low to high (edge detector)
    currentBeatTime = millis();

    period = currentBeatTime - previousBeatTime; // Compute the time between the previous beat and the one that has just been detected
    previousBeatTime = currentBeatTime; // Define the new time reference for the next period computing
}

lastinput = input; // Save the current pin state for comparison at the next loop iteration

// Detect if there is no beat after more than 2 seconds
if ( (millis() - previousBeatTime) > 2000 ) 
{ 
    //Serial.println("dead");
}
else 
{
    if (period <= 0) 
    {
        frequency = 0;
    }
    else 
    {
        frequency = 60000/period; // Compute the heart rate in beats per minute (bpm) with the period in milliseconds
    }

    Serial.println(frequency);
}
}

Cualquier ayuda con respecto a este problema es muy apreciada. ¡Gracias!

¿Puedes dibujar el circuito como lo hicieron en el video, incluso a mano? Los valores R y C en su diagrama no tienen sentido. Determinan las frecuencias de corte, y no puedes usar lo que tienes por ahí.
Si te entiendo correctamente, quieres que copie el circuito que se muestra en el video en una hoja de papel y lo publique como una foto. ¿Estoy en lo correcto?
No exactamente. Me gustaría que hicieras eso, pero para el circuito que construiste, con los valores que usaste. No por los valores que usaron en el video.
Ah vale, entiendo de lo que hablas. Acabo de encontrar algunas resistencias y condensadores que estaban por ahí y los usé. En lugar de copiar el circuito en una hoja de papel, te diré todos los valores. Para C1 en filtro de paso alto, tengo un capacitor de 47 UF. Para R1 en mi filtro de paso alto, tengo una resistencia de 470 ohmios. Tengo un valor diferente para mi R2 para mi filtro de paso alto. Para mi condensador en mi filtro de paso bajo, tengo un condensador de 10 UF. Todos los demás valores están totalmente equivocados, así que ni siquiera me voy a molestar en dejarlo.
Vale la pena leer todo el artículo de wikipedia antes de continuar. Recomiende que, en lugar de intentar un ECG/ECG casero de 12 derivaciones, comience con la configuración básica de 3 derivaciones (alrededor de 1911, en realidad usaban cubos de agua salada como electrodos para RA, LA y LL). Tres derivaciones deberían ser suficientes para ver la forma de onda QRS característica. Ver en.wikipedia.org/wiki/Electrocardiography Ver también en.wikipedia.org/wiki/Einthoven%27s_triangle
@ScottSeidman Tengo una última pregunta. Antes de construir este circuito, construí otro basado en este sitio web: m.instructables.com/id/Electrocardiograph-Heart-Rate-Monitor . Eso no funcionó, así que publiqué esta pregunta hace un tiempo. electronics.stackexchange.com/questions/144873/… . No sé qué hice mal allí, pero simplemente no funcionó. Te agradecería si me pudieras ayudar allí. (si puedes... ¡no quiero pedir demasiado!) Gracias por todo.
Tengo verdaderos problemas para leer ese esquema. Me encantaría verlo en ese hilo, pero primero necesito un esquema real. Si puede encontrarlo, siéntase libre de comentar marcado para mí en el hilo apropiado.

Respuestas (1)

De hecho, tienes un problema importante. Estás activando el ruido creado al jugar con tus cables, y no en nada relacionado con el ecg. Esto va a ser muy difícil de depurar sin un osciloscopio. ¿Qué estás usando para los electrodos? Además, un diagrama de circuito real para la parte analógica sería de gran ayuda.

Sugiero que su etapa de entrada sea una ganancia modesta, tal vez 10, con un amplificador de instrumentación, luego un filtro de paso alto, luego una gran ganancia con un amplificador operacional y un filtro de paso bajo.

Los cables no pertenecen cerca de su corazón. Sostenga un cable en cada mano y conecte su tobillo a la misma tierra que usa para vref en el amplificador de instrumentación.

ACTUALIZAR:

1) El circuito del video no es perfectamente adecuado para amplificar biopotenciales. Quiere un AMPLIFICADOR DIFERENCIAL, y este amplificador es de un solo extremo . Curiosamente, incluso si esto nunca tuvo la intención de usarse para biopotenciales (no hay ninguna sugerencia en el video de que lo sea), sigue siendo una especie de ejemplo de libro de texto de estudiantes que usan ejemplos de libros de texto y esperan que funcionen. Están en la dirección correcta, pero hay aspectos prácticos del circuito que tendrán muchos problemas. Las resistencias de 7 megaohmios serán fuentes de gran ruido si intenta aumentar la ganancia, y también esas grandes resistencias causarán grandes voltajes de compensación para introducir corrientes de polarización que saturarán las etapas de ganancia lo suficientemente robustas como para medir las señales de ECG, que son aproximadamente . 1-5 mV de amplitud (por lo que le gustaría una ganancia de aproximadamente 500 o menos).

2) Incluso si el circuito estuviera bien para medir biopotenciales, no se implementó correctamente en este caso.
a) Aunque los amplificadores operacionales que usó están bien para alimentar con una sola fuente de alimentación, debe tener una fuente de alimentación positiva y negativa para los fines para los que los está utilizando aquí. Puede modificar el circuito para usar un solo suministro, pero eso es más trabajo del que desea asumir. b) No puede cambiar los valores de la resistencia y el condensador de cualquier manera y esperar que funcionen. Por suerte, el combo que usas en la etapa de filtro de paso alto parece estar bien, pero no me has proporcionado suficiente información para saber sobre la etapa de paso bajo.

Para hacer esto correctamente, debe tener una etapa diferencial de ganancia modesta que no se sature para una compensación de entrada de aproximadamente 200 mV. Un amplificador de instrumentación (como su INA128) con una ganancia de 10 funcionaría si puede suministrar +/- potencia. Si necesita trabajar con una fuente de alimentación, entonces necesita un amplificador de instrumentación como el AD623, cuyas entradas pueden ir por debajo del riel negativo, con Vref configurado en aproximadamente 2.5V. Entonces necesita un filtro de paso alto para deshacerse del desplazamiento amplificado. Después de eso, una etapa con una ganancia de alrededor de 50-100 y un corte de paso bajo de alrededor de 50 Hz. Después de eso, necesita algún tipo de etapa de comparación para usar como detector de latidos del corazón, pero tal vez eso se esté adelantando un poco.

(Aparte, el enfoque más moderno es probablemente tener la primera etapa de ganancia modesta y un filtro de paso bajo, luego muestrearlo a una resolución de 24 bits y hacer todo después de eso digitalmente).

Entonces, la conclusión es que el circuito que está usando no funcionará y no hay una buena manera de arreglarlo. Si va a probar esto sin un osciloscopio para depurar, necesitará comenzar con un diseño absolutamente a prueba de balas e implementarlo correctamente.

Sugiero mirar en http://www.eng.utah.edu/~jnguyen/ecg/instructions.html (con el esquema en http://www.eng.utah.edu/~jnguyen/ecg/bigsch.gif ) para un amplificador diferencial que funcione para este propósito.

Para cables (electrodos), estoy usando cables de puente. Tengo un cable de altavoz, pero eso daña mi tablero y mide como 25 pies de largo. Tengo un par de amplificadores de instrumentación, así que veré si eso funcionará según tu edición.
Además, dado que soy un principiante total en esto, ¿puede publicar un diagrama de tablero de lo que está hablando (amplificador de instrumentación, filtro de paso alto, amplificador operacional y filtro de paso bajo)? Gracias.
Los cables no necesitan estar cerca de su corazón. De hecho, sostenga los cables en cada mano y conecte su tobillo a la misma tierra que usa para v ref en el amplificador de instrumentación.
@user3744439 no puede hacer mucho en una tableta, pero intentaré volver a visitarlo. Los diagramas de placa de prueba no sucederán, pero los diagramas de circuitos sí.
Muy bien, cualquier cosa funciona. ¡Gracias por tu ayuda Scott!
@ user3744439 ¿qué amplificador de instrumentación tienes?
Tengo dos amplificadores de instrumentación INA128.