Arduino - Kann keine EKG-Messwerte vom Herzen erhalten, aber ich tue es, wenn ich an den Ableitungen stochere

Ich habe ein kleines Problem mit meinem EKG. Wenn ich an den Leads stochere, bekomme ich einen Messwert. Aber wenn ich die Leitungen halte oder sie in die Nähe meines Herzens lege, bekomme ich nichts. Ich bin mir ziemlich sicher, dass dies mit der Hardware zusammenhängt, aber ich möchte ein potenzielles Softwareproblem nicht vollständig ausschließen. Ich habe dieses YouTube-Video als Leitfaden verwendet: https://www.youtube.com/watch?v=NDjRg-KgIXY , mit ihrer Schaltungsshow unten.

Schaltung aus verlinktem Video

Mein Steckbrett sieht fast genauso aus, aber mit ein paar Änderungen. Anstatt das EKG über ein Audiokabel mit dem Computer zu verbinden, habe ich es per Bluetooth auf mein Handy übertragen. Hier ist mein schematisches Diagramm.

1

Hier ist mein Steckbrettdiagramm.

2

In meinem Steckbrett habe ich drei LM358-Operationsverstärker verwendet. Hier ist mein Arduino-Code (falls Sie ihn brauchen):

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);
}
}

Jede Hilfe zu diesem Problem wird sehr geschätzt. Danke schön!

Kannst du die Schaltung so zeichnen wie im Video, sogar von Hand? Die R- und C-Werte in Ihrem Diagramm sind nicht sinnvoll. Sie bestimmen Cutofa-Frequenzen, und Sie können nicht verwenden, was Sie zufällig herumliegen haben.
Wenn ich Sie richtig verstehe, möchten Sie, dass ich die im Video gezeigte Schaltung auf ein Blatt Papier kopiere und als Bild poste. Hab ich recht?
Nicht ganz. Ich möchte, dass Sie das tun, aber für die Schaltung, die Sie gebaut haben, mit den Werten, die Sie verwendet haben. Nicht für die Werte, die sie im Video verwendet haben.
Ah okay, ich verstehe was du meinst. Ich habe gerade einige Widerstände und Kondensatoren gefunden, die herumlagen, und diese verwendet. Anstatt die Schaltung auf ein Blatt Papier zu kopieren, sage ich Ihnen einfach alle Werte. Für C1 am Hochpassfilter habe ich einen 47-UF-Kondensator. Für R1 an meinem Hochpassfilter habe ich einen 470-Ohm-Widerstand. Ich habe bei meinem R2 einen anderen Wert als bei meinem Hochpassfilter. Für meinen Kondensator an meinem Tiefpassfilter habe ich einen 10-UF-Kondensator. Alle anderen Werte sind völlig falsch, also mache ich mir nicht einmal die Mühe, es wegzulegen.
Es lohnt sich, den ganzen Wikipedia-Artikel zu lesen, bevor Sie viel weiter gehen. Empfehlen Sie, anstatt ein selbstgebautes 12-Kanal-EKG/EKG zu versuchen, mit dem grundlegenden 3-Kanal-Setup zu beginnen (um 1911 verwendeten sie tatsächlich Eimer mit Salzwasser als Elektroden für RA, LA und LL). Drei Ableitungen sollten ausreichen, um die charakteristische QRS-Wellenform zu sehen. Siehe en.wikipedia.org/wiki/Electrocardiography . Siehe auch en.wikipedia.org/wiki/Einthoven%27s_triangle
@ScottSeidman Ich habe eine letzte Frage. Bevor ich diese Schaltung baute, baute ich eine andere basierend auf dieser Website: m.instructables.com/id/Electrocardiograph-Heart-Rate-Monitor . Das hat nicht funktioniert, also habe ich diese Frage vor einiger Zeit gepostet. electronic.stackexchange.com/questions/144873/… . Ich weiß nicht, was ich da falsch gemacht habe, aber es hat einfach nicht funktioniert. Ich würde mich freuen, wenn ihr mir da weiterhelfen könntet. (wenn du kannst... ich will nicht zu viel verlangen!) Danke für alles.
Ich habe echte Probleme, diesen Schaltplan zu lesen. Ich würde es mir gerne in diesem Thread ansehen, aber ich brauche zuerst einen echten Schaltplan. Wenn Sie es finden können, zögern Sie nicht, im entsprechenden Thread einen für mich markierten Kommentar zu hinterlassen.

Antworten (1)

Du hast tatsächlich ein großes Problem. Sie lösen Geräusche aus, die durch das Dorking mit Ihren Ableitungen entstehen, und nicht auf irgendetwas, das mit dem EKG zusammenhängt. Das wird ohne Oszilloskop sehr schwierig zu debuggen sein. Was verwendest du für Elektroden? Auch ein echter Schaltplan für den analogen Teil wäre eine große Hilfe.

Ich schlage vor, Ihre Eingangsstufe sollte eine bescheidene Verstärkung haben, vielleicht 10, mit einem Instrumentenverstärker, dann einem Hochpassfilter, dann einer großen Verstärkung mit einem Operationsverstärker und einem Tiefpassfilter.

Die Leads gehören nicht in die Nähe deines Herzens. Halten Sie eine Leitung in jeder Hand und erden Sie Ihren Knöchel mit der gleichen Masse, die Sie für vref am Instrumentenverstärker verwenden.

AKTUALISIEREN:

1) Die Schaltung im Video ist nicht perfekt geeignet, um Biopotentiale zu verstärken. Sie wollen einen DIFFERENTIAL AMPLIFIER, und dieser Amp ist single-ended . Interessanterweise, selbst wenn dies nie für Biopotentiale verwendet werden sollte (es gibt keinen Hinweis im Video darauf), ist es immer noch eine Art Lehrbuchbeispiel für Studenten, die Lehrbuchbeispiele verwenden und erwarten, dass sie funktionieren. Sie gehen in die richtige Richtung, aber es gibt praktische Aspekte der Strecke, die eine Menge Probleme bereiten werden. Die 7-Megaohm-Widerstände erweisen sich als große Rauschquellen, wenn Sie versuchen, die Verstärkung zu erhöhen, und diese großen Widerstände verursachen auch große Offset-Spannungen, um Vorspannungsströme einzugeben, die Verstärkungsstufen stark genug sättigen, um EKG-Signale zu messen, die etwa . 1-5 mV Amplitude (Sie möchten also eine Verstärkung von etwa 500 oder so).

2) Auch wenn die Schaltung zur Messung von Biopotentialen in Ordnung wäre, wurde sie in diesem Fall nicht richtig implementiert.
a) Obwohl die von Ihnen verwendeten Operationsverstärker gut mit einer einzigen Stromversorgung versorgt werden können, sollten Sie für die Zwecke, für die Sie sie hier verwenden, eine positive und eine negative Stromversorgung haben. Sie können die Schaltung ändern, um eine einzelne Versorgung zu verwenden, aber das ist mehr Arbeit, als Sie übernehmen möchten. b) Sie können Widerstands- und Kondensatorwerte nicht einfach so austauschen und erwarten, dass sie funktionieren. Glücklicherweise scheint die Combo, die Sie auf der Hochpassfilterstufe verwenden, in Ordnung zu sein, aber Sie haben mir nicht genügend Informationen zur Verfügung gestellt, um etwas über die Tiefpassstufe zu erfahren.

Um dies richtig zu machen, sollten Sie eine bescheidene Differenzstufe haben, die bei einem Eingangs-Offset von etwa 200 mV nicht in die Sättigung geht. Ein Instrumentenverstärker (wie Ihr INA128) mit einer Verstärkung von 10 würde funktionieren, wenn Sie +/- Leistung liefern können. Wenn Sie mit einer Stromversorgung arbeiten müssen, benötigen Sie einen Instrumentenverstärker wie den AD623, dessen Eingänge unter die negative Schiene gehen können, wobei Vref auf etwa 2,5 V eingestellt ist. Dann benötigen Sie einen Hochpassfilter, um den verstärkten Offset loszuwerden. Danach eine Stufe mit einem Gain von ca. 50-100 und einem Low Pass Cutoff von ca. 50Hz. Danach benötigen Sie eine Art Komparatorstufe, die Sie als Herzschlagdetektor verwenden können, aber das geht vielleicht etwas zu weit.

(Nebenbei bemerkt, der modernere Ansatz besteht wahrscheinlich darin, nur die erste Stufe mit bescheidener Verstärkung und einen Tiefpassfilter zu haben, dann mit einer Auflösung von 24 Bit abzutasten und alles danach digital zu machen).

Unterm Strich funktioniert die Schaltung, die Sie verwenden, nicht, und es gibt keine gute Möglichkeit, sie zu beheben. Wenn Sie dies ohne ein Oszilloskop zum Debuggen versuchen, müssen Sie mit einem absolut kugelsicheren Design beginnen und es korrekt implementieren.

Ich schlage vor, sich http://www.eng.utah.edu/~jnguyen/ecg/instructions.html anzusehen (mit dem Schema unter http://www.eng.utah.edu/~jnguyen/ecg/bigsch.gif ) für einen Differenzverstärker, der für diesen Zweck arbeitet.

Für Leitungen (Elektroden) verwende ich Überbrückungsdrähte. Ich habe Lautsprecherkabel, aber das beschädigt mein Steckbrett und es ist etwa 25 Fuß lang. Ich habe ein paar Instrumentenverstärker, also werde ich sehen, ob das basierend auf Ihrer Bearbeitung funktioniert.
Da ich ein absoluter Anfänger bin, können Sie auch ein Steckbrettdiagramm posten, worüber Sie sprechen (Instrumentenverstärker, Hochpassfilter, Operationsverstärker und Tiefpassfilter). Danke schön.
Die Leads müssen nicht in der Nähe Ihres Herzens sein. Halten Sie die Kabel tatsächlich in jeder Hand und erden Sie Ihren Knöchel auf der gleichen Erde, die Sie für v ref am Instrumentenverstärker verwenden
@ user3744439 kann auf einem Tablet nicht viel machen, aber ich werde versuchen, es noch einmal zu versuchen. Breadboard-Diagramme werden nicht vorkommen, aber Schaltpläne könnten.
Okay, alles funktioniert. Danke für deine Hilfe Scott!
@user3744439 welchen Instrumentenverstärker hast du?
Ich habe zwei INA128 Instrumentenverstärker.