Pulssensor Arduino, Störungen?

Taroc  01.04.2025, 00:32

Was ist das genau für ein Sensor?

julian4502557 
Beitragsersteller
 01.04.2025, 00:44

ein pulssensor von technoiot

2 Antworten

Ein paar Ideen, die eventuell helfen:

Vielleicht könnte ein Tiefpassfilter dabei helfen. In eher Pseudocode, kannst ihn so umsetzen:

alpha = 0.1
wert = alpha * aktuellGelesenerWert + (1-alpha) * vorherigerWert
vorherigerWert = wert

Da dein Puls auch nur ein kurzer Ausschlag ist, könnte es vielleicht kontraproduktiv sein. threshold wirst du anpassen müssen, da die Ausschläge nicht mehr so hoch sind.

Die Variante könnte auch besser sein, wenn du die Wartezeit verkürzt. Durch die kürzere Zeit sollte das Rauschen größer werden, welches per Tiefpassfilter reduziert wird. Die Werte mit Finger könnten daher besser herausstechen.

Ein anderer Ansatz wäre, eine minimale Zeit zwischen den Ausschlägen. Ohne Finger gibt es sehr häufige Ausschläge, die auch häufig über dem Schwellwert sind. Ein Teil sollte vermutlich schon vom stabilityThreshold gefilter werden.

So könntest du dir Zeit merken, wann der Wert über den threshold ist. Wenn du die LED anschalten würdest, schaust du, ob der alte Zeit mindestens z.B. 0,4 Sekunden her ist. Damit limitierst du deinen maximalen Puls, aber solltest bessere Ergebnisse bekommen.

Das wäre meine Ansätze, die ich u.A. aus der Signalverarbeitung mitgenommen habe. Du wirst aber noch etwas experimentieren müssen und z.B. Parameter ausprobieren. Eventuell helfen auch beide Varianten zusammen.

Einen zusätzlichen sensor um zu erkennen ob der finger drauf ist. Z.B. ein druckknopf. Der pulsensor scheint das nicht zu erkennen.


julian4502557 
Beitragsersteller
 31.03.2025, 23:57

ja, genau das würde ich gern vermeiden, ich würde es gerne software technisch mithilfe eines tief passes lösen anstatt hardware technisch noch ein bauteil zu verweden, es soll nur den sensor und leds beinhalten

jort93  31.03.2025, 23:59
@julian4502557

Das geht nicht. Das signal wenn kein finger drauf liegt, ist ja kaum von dem mit finger zu unterscheiden.

Höchstens wenn du irgendeinen komplexen algorithmus hast dass herzschläge erkennt, aber dafür wird die rechenleistung von einem arduino nicht reichen.

julian4502557 
Beitragsersteller
 01.04.2025, 00:45
@jort93

hi nochmal, ich hab es geschafft. Ich hab mir aus dem Signal des Sesnor einen BPM rechnen lassen und mache damit ein abfrage. wenn kein finger drauf ist, ist der bpm logischweise extrem hoch und so kann ich ihn leicht filtern. es funktioniert einwandfrei

jort93  01.04.2025, 00:49
@julian4502557

Aber was heißt unrealistisch hoch? Beim sport kannste schon 150 bpm haben, teilweise bis 200.

julian4502557 
Beitragsersteller
 01.04.2025, 14:07
@jort93

werte von 15000 bis 30000, es klappt zwar aber der puls wird nicht immer perfekt angezeig