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.
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.
Aquí está mi diagrama de tablero.
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!
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.
scott seidman
usuario3744439
scott seidman
usuario3744439
MarkU
usuario3744439
scott seidman