Forum: Mikrocontroller und Digitale Elektronik Blutdrucksensor


von Ammar O. (ammaro)


Angehängte Dateien:

Lesenswert?

Guten Tag,
Ich habe das Ziel, den systolischen und diastolischen Blutdruckwert 
osillometrisch (ohne einen Stethoskop) zu messen.
Dazu habe ich folgende Komponente in einer Schaltung gebaut:
1) Arduino Leonardo
2) US 9111-00600 Drucksensor
3) Ablassventil , Luftkompressor , Manschette
4) Drei Widerstände und zwei Schalttransistoren

Ich habe das Arduino Programm so geschrieben, dass die Manschette über 
eine Kontrolltaste für kurze Zeit am Oberarm aufgepumpt wird, bis kein 
Puls zu entdecken ist, dann wird die Manschette entlüftet.

Die Sensorwerte wurden dann von einem Terminal Programm aufgenommen.
Die Fragen sind :
1) Wie kann ich aus den Sensorwerte an dem Seriellen Monitor den 
Systolischen und den diastolischen Blutdruckwert ableiten.?
2) Wie kann ich die Sensordruckwerte, die ich am Seriellen Monitor 
bekomme, in die Einheit mmHg und psi umrechnen ?

Über eine Rückmeldung würde ich mich freuen.

von Sebastian R. (sebastian_r569)


Lesenswert?

Ammar O. schrieb:
> 1) Wie kann ich aus den Sensorwerte an dem Seriellen Monitor den
> Systolischen und den diastolischen Blutdruckwert ableiten.?

So, wie man es auch mit klassischen Sphygmo-Manometern macht.

Den Puls über Druckänderungen zu messen erfordert allerdings ein 
bisschen Signalprocessing. Aber das bekommst du sicher hin.

Ammar O. schrieb:
> 2) Wie kann ich die Sensordruckwerte, die ich am Seriellen Monitor
> bekomme, in die Einheit mmHg und psi umrechnen ?

Deinen gemessenen Wert entsprechend skalieren und justieren (Linear mit 
Null- und Endwert z.B.). Wenn's kein vorkalibrierter Sensor ist, 
brauchst du noch ein Referenz-Manometer oder einen genauen Druckgeber.

von Wolfgang (Gast)


Lesenswert?

Ammar O. schrieb:
> 1) Wie kann ich aus den Sensorwerte an dem Seriellen Monitor den
> Systolischen und den diastolischen Blutdruckwert ableiten.?

Na ja, der Druck der Manschette entspricht dem systolische Blutdruck, 
wenn beim Ablassen zum ersten Mal ein Puls messbar ist. Der diastolische 
Druck ist erreicht, wenn der Puls verschwindet.

> 2) Wie kann ich die Sensordruckwerte, die ich am Seriellen Monitor
> bekomme, in die Einheit mmHg und psi umrechnen ?

Anhand der Kenndaten des Drucksensors und der Konfiguration deines ADCs

von Ammar O. (ammaro)


Lesenswert?

Hallo,
Ich setze mich seit einiger Zeit mit dem Aufbau eines Blutmessgerätes 
auseinander.
Ich habe das folgende Problem getroffen, dass ich nicht ganz genau weiß, 
wie die Sensorwerte in mmHg umgerechnet werden können?
Ich habe alle Daten aus dem Drucksensordatenblatt aufgeschrieben.
Der Sensor misst die Druckwerte elektrisch und schickt diese zu einem 
Mikrocontroller, der mir die Werte anzeigt.

Der im Aufbau verwendete Drucksensor heißt US9111-066U-0303T-7540120   .

Es wäre sehr nett, wenn jemand mir helfen wird.

Vielen Dank für die Aufmerksamkeit.

von Sebastian R. (sebastian_r569)


Lesenswert?


von Ammar O. (ammaro)


Lesenswert?

Danke für die Rückmeldung.
Ich habe mit der Messung kein Problem jetzt.
Mein Problem ist wirklich, dass ich die Messwerte in mmhg umwandeln 
kann, denn in dem Datenblatt des Drucksensors stehen nur die Werte aber 
keine Formel, mit der ich von den vom Sensor gemessenen Druckwerte in 
die Einheit mmHg oder psi komme.
Mein Ansatz ist, diese Formel zu verwenden. Aber mir ist nicht sicher, 
ob diese Formel mir gute Ergebnisse liefert:

erstens:
ADC=Vin*1023/Vref

zweitens:
Pressure = ((ADC Wert -
P_min)*psi_max)/(P_max-P_min);

Ich bitte um weitere Hilfe

: Bearbeitet durch User
von Ammar O. (ammaro)


Lesenswert?

Danke für die Rückmeldung.
Ich habe mit der Messung kein Problem jetzt.
Mein Problem ist wirklich, dass ich die Messwerte in mmhg umwandeln
kann, denn in dem Datenblatt des Drucksensors stehen nur die Werte aber
keine Formel, mit der ich von den vom Sensor gemessenen Druckwerte in
die Einheit mmHg oder psi komme.
Mein Ansatz ist, diese Formel zu verwenden. Aber mir ist nicht sicher,
ob diese Formel mir gute Ergebnisse liefert:

erstens:
ADC=Vin*1023/Vref

zweitens:
Pressure = ((ADC Wert -
P_min)*psi_max)/(P_max-P_min);

Ich bitte um weitere Hilfe

von Wolle G. (wolleg)


Lesenswert?

Ammar O. schrieb:
> Mein Problem ist wirklich, dass ich die Messwerte in mmhg umwandeln
> kann, denn in dem Datenblatt des Drucksensors stehen nur die Werte aber
> keine Formel,

in welcher Masseinheit werden denn die Druckwerte ausgegeben?

von Sebastian R. (sebastian_r569)


Lesenswert?

Bitte nicht in beiden Threads gleichzeitig. Danke.

Ammar O. schrieb:
> erstens:
> ADC=Vin*1023/Vref

Damit rechnest du deinen Messwert in eine Spannung um.

Ammar O. schrieb:
> zweitens:
> Pressure = ((ADC Wert -
> P_min)*psi_max)/(P_max-P_min);

Irgendwo da drin stecken richtige Gedanken, aber wirklich klappen wirds 
evtl nicht.

Zum linearen Skalieren kennt Arduino z.B. die map()-Funktion, deren 
Inhalt man sich hier klauen kann:
https://www.arduino.cc/reference/de/language/functions/math/map/

Theoretisch kannst du dir auch den Umweg über die Spannung sparen und 
gleich die ADC-Counts (0...1023) auf deine gewünschte Einheit und den 
Endwert mappen.

Und ohne kalibrierten Sensor mit bereits genauen Ausgangswerten, die du 
mit einem Spannungsgeber simulieren kannst, brauchst du entweder einen 
Druckkalibrator, der dir einen genauen und bekannten Druck erzeugt oder 
ein genaues Manometer, von dem du deinen Sensor ableiten kannst.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Sebastian R. schrieb:
> Wie sieht's denn hiermit aus?
Ich habe die beiden Threads zum selben Thema mal zusammengeführt...

Ammar O. schrieb:
> erstens:
> ADC=Vin*1023/Vref
Diese Formel ist
1. falsch, weil da für die richtige Steigung korrekterweise 1024 stehen 
müsste, und
2. unnötig, weil dich die Spannung niemals interessiert. Nimm besser 
einen Skalierungsfaktor, der den AD-Wert direkt auf den Druck umrechnet.

von Sebastian R. (sebastian_r569)


Lesenswert?

Lothar M. schrieb:
> Ammar O. schrieb:
>> erstens:
>> ADC=Vin*1023/Vref
> Diese Formel ist
> 1. falsch, weil da für die richtige Steigung korrekterweise 1024 stehen
> müsste, und

Und wenn, dann müsste sie nach Vin aufgelöst sein und nicht nach ADC.

von Ammar O. (ammaro)


Lesenswert?

Wie sollte ich den Skalierungsfaktor aussuchen um den Schritt der 
Spannung zu sparen

von Sebastian R. (sebastian_r569)


Lesenswert?

Ammar O. schrieb:
> Wie sollte ich den Skalierungsfaktor aussuchen um den Schritt der
> Spannung zu sparen

Das kommt immer noch auf deinen Sensor an.

Wenn kalibriert/justiert, dann kennst du sicherlich, wie viele mV pro 
Druckeinheit erl iefert (oder mV pro Volt pro Druckeinheit bei 
Brückensensoren)

Wenn nicht kalibriert/justiert, musst du einen möglichst genauen und 
bekannten Druck erzeugen und deinen Sensor daran ausmessen.


Ich denke, bis wir so weit sind, fehlen entweder dir noch etwa 3 
Schritte oder du verheimlichst uns noch etwa 3 wichtige Informationen.

: Bearbeitet durch User
von Thomas W. (Gast)


Lesenswert?

Moin, -

hast Du denn schon mal etwas messen koennen (also: Arterie abklemmen, 
Systole bestimmen [in mV oder Einheiten], belueften [wieder mV oder 
Einheiten]). Gleichzeitig mit dem zweiten Arm den Blutdruck mit einer 
kalibrierten Blutdruckmesse bestimmen.

Wenn Du da keine vernueftigen Werte bekommst brauchst Du Dir keine 
Gedanken ueber mmHg machen.

Der verwendete Sensor ist ein Widerstand. Ist Deine Spannungsquelle gut 
genug um reproduzierbar zu messen?

Der Sensor hat einen Messbereich von 6psi (hence the 00600). Der 
Full-Scale ist 6psi (oder 310 Torr [= mmHg]).

Ich glaube, jetzt solltest Du alleine klar kommen.


Gruesse

Th.

von Sebastian R. (sebastian_r569)


Lesenswert?

Thomas W. schrieb:
> Der verwendete Sensor ist ein Widerstand. Ist Deine Spannungsquelle gut
> genug um reproduzierbar zu messen?

Ich hab jetzt auch noch mal nach einem Datenblatt gesucht.

Es ist eine Widerstandsbrücke.

Diese liefert 70mV bei 5V Speisespannung und einem Druck von 5.8psi 
(etwa 310mmHg)

Damit sind es etwa 1024*70mV/5V = 14 Digits von 0mmHg bis 310mmHg. Damit 
sind wir bei einer Auflösung von 22mmHg pro Digit. Kleinere 
Druckänderungen sind nicht messbar.

Klar, Oversampling. Aber das ganze ist trotzdem ein einziger 
Rauschklumpen.
Auch mit kleinerer/externer Referenzspannung wirds erstmal vermutlich 
nicht besser.


Mit dem internen ADC und ohne analoges Frontend (Instrumentenverstärker) 
ist da nichts zu machen.

Oh, und das Ausgangssignal ist differentiell. Mit Single-Ended-MEssung 
ist das Ergebnis doppelt so schlecht.

Mit dem HX711 könnte man das Problem vielleicht recht gut lösen. Einen 
bekannten und genauen Referenzdruck braucht es trotzdem. Die Sensoren 
liefern kein genaues Signal.

Kurzum: Vergiss es erstmal.

: Bearbeitet durch User
von Thomas W. (Gast)


Lesenswert?

Sebastian R. schrieb:
> Thomas W. schrieb:
>> Der verwendete Sensor ist ein Widerstand. Ist Deine Spannungsquelle gut
>> genug um reproduzierbar zu messen?
>
> Es ist eine Widerstandsbrücke.
>
> Diese liefert 70mV bei 5V Speisespannung und einem Druck von 5.8psi
> (etwa 310mmHg)
>
> Damit sind es etwa 1024*70mV/5V = 14 Digits von 0mmHg bis 310mmHg. Damit
> sind wir bei einer Auflösung von 22mmHg pro Digit. Kleinere
> Druckänderungen sind nicht messbar.

Man soll ja dem Schueler nicht alles erklaeren. Aber wir sehen ja auch 
keine Schaltplaene, Messprogramme (heute heisst das Sketch) oder 
Messwerte (overrated).

Ich glaube der TO hat jetzt genug Input fuer seine Aufgabe.

Gruesse

Th.

von Gerhard O. (gerhard_)


Lesenswert?


von Thomas W. (Gast)


Lesenswert?

Mein Gedaechtnis funktioniert: Musa ist jetzt Ammar:

Beitrag "Blutdruckmessgerät"

18-DEC-2021 und kein Fortschritt.

Gruesse

Th.

von pnp (Gast)


Lesenswert?

Thomas W. schrieb:
> Mein Gedaechtnis funktioniert: Musa ist jetzt Ammar:

Wie kommt es dann, dass in dem zusammengeführten Thread der Name "Musa" 
nirgends auftaucht?

Lothar M. schrieb:
> Ich habe die beiden Threads zum selben Thema mal zusammengeführt...

Der Lothar wird doch nicht alle Namen editiert haben, oder? ;-)

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

pnp schrieb:
> Wie kommt es dann, dass in dem zusammengeführten Thread der Name "Musa"
> nirgends auftaucht?
Weil in keinem der beiden hier zusammengefügten Threads jemals ein User 
Musa geheißen hat.

von Wolle G. (wolleg)


Lesenswert?

Sebastian R. schrieb:
> Einen
> bekannten und genauen Referenzdruck braucht es trotzdem.

Kann man sich evtl. selbst basteln. Dazu mit einem durchsichtigen 
Schlauch ein Art U-Rohr bauen, mit Wasser füllen - fertig
1mmHg-Säule entspricht 13,x mm Wassersäule

von pnp (Gast)


Lesenswert?

Lothar M. schrieb:
> pnp schrieb:
>> Wie kommt es dann, dass in dem zusammengeführten Thread der Name "Musa"
>> nirgends auftaucht?
> Weil in keinem der beiden hier zusammengefügten Threads jemals ein User
> Musa geheißen hat.

Genau das war der Hintergrund meiner (provokativen) Frage.
Also funktioniert das Gedächtnis von Thomas doch nicht so gut wie er 
denkt...

von Thomas W. (Gast)


Lesenswert?

pnp schrieb:

> Genau das war der Hintergrund meiner (provokativen) Frage.
> Also funktioniert das Gedächtnis von Thomas doch nicht so gut wie er
> denkt...

Ich habe mich aber an das Bild (und die Aufgabenstellung) erinnert, 
nicht an den Namen. Und identischer Sensor und die gleiche Frage: Wie 
bestimme ich den Druck in der Arterie.

Und wenn Du die Photos vergleichst...Jetzt hat er eine 
Lochrasterplatine.

Und die Frage, wie entweder die Korotkow-Geraeusche analysiert wurden 
oder oszillometrisch die Schwingungen gemessen wurde, wurde auch 2021 
nicht beantwortet.

Gruesse

Th.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.