how to Identify pulse

Hi Team,

I have a pulse sensor connected to arduino, if i increase the applying pressure, at some point it gives a pulse.

How to identify that pulse peak value programatically.

Please help me.

You need to supply details of the pulse sensor and ideally a link to technicl information on it.

What's the shape of the pulse? Expected peak value? Duration of the pulse?

RakeshArduino:
Hi Team,

I have a pulse sensor connected to arduino, if i increase the applying pressure, at some point it gives a pulse.

How to identify that pulse peak value programatically.

Please help me.

Is the pulse magnitude proportional the the pressure?
Or
Does the sensor just put out a digital pulse when ever pressure exceeds a certain level.
We need a link to data/spec of the sensor.
Thanks.. Tom.. :slight_smile:

TomGeorge:
Is the pulse magnitude proportional the the pressure?
Or
Does the sensor just put out a digital pulse when ever pressure exceeds a certain level.
We need a link to data/spec of the sensor.
Thanks… Tom… :slight_smile:

Hi TomGeorge,

Datasheet: https://www.nxp.com/docs/en/data-sheet/MPX2053.pdf

Behaviour of Sensor: ++ attached image.

  1. If i put sensor on the surface, Pulse will not detect.

  2. If i keep maximizing the pressure, at some pressure point, i will get a pulse, Still if i keep apply the pressure, pulse will come, but at some maximum pressure point, Pulse will gone.

  3. I want to program to find max pulse value before it lost.

  4. If i minimize the pressure, at some point pulse will come again and disappear at some low pressure.

  5. I want to recognise that minimum pulse(lowest point)

Finally i want to find minimum and maximum of the pulse proportional to pressure.

Pulse(voltage).PNG

Hi,
So you are measuring the pressure of a gas?

The pressure sensor puts out a voltage proportional to pressure.

I think;
When you say maximize you mean increase the pressure.
When you say minimize you mean decrease the pressure.

As you increase the pressure the output of the sensor will increase.
As you decrease the pressure the output voltage of the sensor will decrease.

Is the gas you are measuring the pressure of , pulsing?

If the output suddenly drops to zero as to increase pressure, then I would say you are overloading it and it is failing

Thanks.. Tom.. :slight_smile:

I think that part of your problem is the chip output: “40 mV Full Scale”. It would help to select the 1.1V internal voltage reference so you get almost 1 mV resolution, but you will only see a little over 40 steps between 0 PSI and 7.25 PSI.

If you use the default 5V reference you will get about 5mV resolution and about 8 steps from 0 to 7.25 PSI.

That sensor can’t be used directly with an Arduino.
It needs an instrumentation amplifier in between.

You should have bought a sensor with buildin instrumentation amp, like the MPX5050.
Leo…

TomGeorge:
Hi,
So you are measuring the pressure of a gas?

....

I think the OP is trying to measure a person's blood pressure by taking their pulse.
A doctor puts a pressure cuff on your arm and listens to your pulse with a stethoscope. He pumps up the cuff until the pressure cuts off the pulse. He then lets the pressure out until the pulse returns.

TomGeorge:
Hi,
So you are measuring the pressure of a gas?

The pressure sensor puts out a voltage proportional to pressure.

I think;
When you say maximize you mean increase the pressure.
When you say minimize you mean decrease the pressure.

As you increase the pressure the output of the sensor will increase.
As you decrease the pressure the output voltage of the sensor will decrease.

Is the gas you are measuring the pressure of , pulsing?

If the output suddenly drops to zero as to increase pressure, then I would say you are overloading it and it is failing

Thanks… Tom… :slight_smile:

Hi Tom,

Please kindly check an attachment.

If i increase the pressure,voltage output is directly proportional{increases}, vice versa.

I have to find out “Max pulse” and “Pulse stop 2” [Check an attachment].

How do i programmatic logic to find these two values[voltage]?

From the diagram it appears that you are trying to separate the pulse signal from the background noise. Perhaps the slope of the pressure pulse would allow you to differentiate? The spikes you show as pulses seem to be very steep compared to the background. Maybe you should compare the signal to an average of recent signals. and call anything over a threshold a pulse.

How many pulses are there in that image? There appears to be one big pulse, and a lot of noise - but maybe I mistake a the large number of pulses as noise. Partly because I don’t really understand the comments. Start pulse, peak pulse, increasing and decreasing pressure… what is pulse and what is noise?

Could be that OP is trying to use the sensor from post#4.
Then most of it could be useless noise.
Leo..

Hello,

I will get a real time pulse data from https://www.nxp.com/docs/en/data-sheet/MPX2053.pdf sensor.

I want to identify pulse start and pulse stop.

How can i do it, Please help me with reference code.

++Attachment.

I will get a real time pulse data from https://www.nxp.com/docs/en/data-sheet/MPX2053.pdf sensor.

Where in the referenced data sheet do you see mention of an output pulse.

The MPX2053 series devices are silicon piezoresistive pressure sensors
that provide a highly accurate and linear voltage output directly proportional to the
applied pressure.

There is no mention of output pulse but this sensor is used for measuring the pulse(on Hand).
Since the Pulse has a high time and low time, I need to identify the pulse by using the high time and low time as a differentiation between a pulse and noise.

or

PulseIn() this will use to identify whether it's a pulse or not?

If Yes, please help me with reference example.

OP's image


What is the pulse you are trying to measure? What are the x and y axes of the graph? What code or instrument produced this graph?

The sensor output is 0-40 mv full range. You will not be able to use pulseIn() with that signal level as it is a function relying on digital HIGH/LOW voltage levels.

I believe you will need some sort of hardware signal processing/amplification to get useful levels for an Arduino to deal with either with digital or analog input.

Hi Team,

Please help me below, I'm checking pulse in CRO monitor(615 milliseconds duration), but below code output is zero.

unsigned long duration;

void setup()
{
Serial.begin(9600);
}

void loop()
{
int s1 = analogRead(A3); //digital values 0-1023
duration = pulseIn(s1, HIGH);
Serial.println(duration);
}

Hi cattledog,

Please help me below, I'm checking pulse in CRO monitor(615 milliseconds duration), but below code output is zero.

unsigned long duration;

void setup()
{
Serial.begin(9600);
}

void loop()
{
int s1 = analogRead(A3); //digital values 0-1023
duration = pulseIn(s1, HIGH);
Serial.println(duration);
}

duration = pulseIn(s1, HIGH);

Shouldn't you be reading how long a pin is in a HIGH state rather than the value previously returned from an analogue read ?