Sensor – die besten Beiträge

Pulssensor Arduino, Störungen?

Hi, ich habe gerade ein Projekt, bei der ich ein Herz nach meinem Puls blinken lassen will. Um den Sensor zu testen benutze ich einen online gestellten Code, welcher weiter unten zu finden ist. Grundsätlich funktioniert auch alles, der Puls wird angenommen und die LED blinkt in meiner Herzfrequenz, allerdings wenn mein Finger nicht drauf ist, gibt es solche Störungen, dass die Leds nur dumm flackern. Bilder vom richtigen Signal und Störungen sind beide im Anhang. Wie kann ich das am besten raus filterm, dass nix leuchtet, wenn kein finger drauf ist, aber es nach der herzfrequenz leuchtet wenn mein finger drauf ist. Klar würde es klappen wenn ich einen anderen knopf habe, welchen ich drücken muss, wenn mein finger drauf ist, dass die leds dann erst angehen und ich das flacken wie ausschalte, aber ich will das ohne knopf haben. Hat wer Vorschläge, oder besser, vielleicht eine fertigen Code? Danke im Voraus für Antworten :)

Störungen:

Puls:

Code:

// Konstanten und Variablen definieren

const int pulsePin = A0;  // Pin, an den der Puls-Sensor angeschlossen ist

const int ledPin = 13;   // Eingebaute LED-Pin des Arduino

const int threshold = 515; // Schwellenwert für den Pulswert

const int stabilityThreshold = 50; // Schwellenwert für die Stabilität des Pulswertes

int pulseValue = 0;     // Variable zur Speicherung des Pulswertes

int previousPulseValue = 0; // Variable zur Speicherung des vorherigen Pulswertes

void setup() {

 pinMode(ledPin, OUTPUT); // LED-Pin als Ausgang definieren

 Serial.begin(9600);    // Serielle Kommunikation starten

}

void loop() {

 pulseValue = analogRead(pulsePin); // Pulswert vom Sensor lesen

 Serial.println(pulseValue);     // Pulswert an den seriellen Monitor senden

 // Überprüfen, ob der Pulswert stabil ist

 if (abs(pulseValue - previousPulseValue) < stabilityThreshold) {

  // LED ein- oder ausschalten basierend auf dem Schwellenwert

  if (pulseValue > threshold) {

   digitalWrite(ledPin, HIGH); // LED einschalten

  } else {

   digitalWrite(ledPin, LOW); // LED ausschalten

  }

 } else {

  // Wenn der Pulswert nicht stabil ist, LED ausschalten

  digitalWrite(ledPin, LOW);

 }

 previousPulseValue = pulseValue; // Aktuellen Pulswert speichern

 delay(50); // Kurze Verzögerung für stabilere Werte

}

Bild zum Beitrag
Sensor, Arduino Uno, Arduino IDE