But even after I try 600-900, the result still the same, it will keep rising until 238.odometer wrote:But still, it seems that your code is overzealous in detecting heartbeats.
Maybe your "threshold" is too low.
How to give delay between sensors
Moderators: adafruit_support_bill, adafruit
Please be positive and constructive with your questions and comments.
-
- Posts: 21
- Joined: Fri Jan 04, 2013 3:59 am
Re: How to give delay between sensors
- adafruit_support_rick
- Posts: 35092
- Joined: Tue Mar 15, 2011 11:42 am
Re: How to give delay between sensors
I had a look at the pulsesensor website your linked to. Setting thresh to 475 shouldn't cause this problem. However, I would set it back to 512 for now. I think thresh, P, and T should all be initialized to the same number.
Does the pulse sensor work properly if you comment out the call to analogRead(potpin) here?
Does the pulse sensor work properly if you comment out the call to analogRead(potpin) here?
Code: Select all
for (int i = 0; i < span; i++) {
// aRead = aRead+analogRead(potPin);
}
-
- Posts: 21
- Joined: Fri Jan 04, 2013 3:59 am
Re: How to give delay between sensors
So I have set it back to 512, try playing around with the loop path by moving the temperature sensor code to work after the pulse sensor works and change the delay to (1000). Seems to be working right but not so accurate and often shows BPM=58. And the LM35 only react to room temperature, it doesn't react to any finger touching which actually should. In this case I have also connect it through XBee module to send the data wirelessly to PC.driverblock wrote:I had a look at the pulsesensor website your linked to. Setting thresh to 475 shouldn't cause this problem. However, I would set it back to 512 for now. I think thresh, P, and T should all be initialized to the same number.
Does the pulse sensor work properly if you comment out the call to analogRead(potpin) here?Code: Select all
for (int i = 0; i < span; i++) { // aRead = aRead+analogRead(potPin); }
Does modifying the delay really has an affect?
Here's the part I modify:
Code: Select all
void loop(){
int span = 20;
int aRead = 0;
for (int i = 0; i < span; i++) {
aRead = aRead + analogRead(potPin);
}
aRead = aRead / 20;
temperature = ((100*5.0*aRead)/1024)*10; //substitute 5.0V reference for 1.1V reference
// convert voltage to temperature
if (QS == true){ // Quantified Self flag is true when arduino finds a heartbeat
fadeRate = 255; // Set 'fadeRate' Variable to 255 to fade LED with pulse
Serial.print("\n BPM = ");
Serial.println(BPM);
QS = false; // reset the Quantified Self flag for next time
Serial.print("Analog in reading: ");
Serial.print(long(aRead));
//print temperature value on serial monitor
Serial.print(" - Calculated Temp: ");
xbee.print(" - Calculated Temp: ");
printTenths(long(temperature));
}
ledFadeToBeat();
delay(1000); // take a break
}
Code: Select all
Pulse Rate and Body Temperature detector
BPM = 52
Analog in reading: 56 - Calculated Temp: 27.3
BPM = 53
Analog in reading: 56 - Calculated Temp: 27.3
BPM = 53
Analog in reading: 56 - Calculated Temp: 27.3
BPM = 54
Analog in reading: 57 - Calculated Temp: 27.8
BPM = 55
Analog in reading: 57 - Calculated Temp: 27.8
BPM = 56
Analog in reading: 57 - Calculated Temp: 27.8
BPM = 57
Analog in reading: 57 - Calculated Temp: 27.8
BPM = 58
Analog in reading: 57 - Calculated Temp: 27.8
BPM = 58
Analog in reading: 56 - Calculated Temp: 27.3
BPM = 58
Analog in reading: 57 - Calculated Temp: 27.8
BPM = 58
Analog in reading: 57 - Calculated Temp: 27.8
BPM = 58
Analog in reading: 56 - Calculated Temp: 27.3
BPM = 58
Analog in reading: 57 - Calculated Temp: 27.8
BPM = 58
Analog in reading: 56 - Calculated Temp: 27.3
BPM = 58
Analog in reading: 57 - Calculated Temp: 27.8
BPM = 114
Analog in reading: 56 - Calculated Temp: 27.3
BPM = 104
Analog in reading: 56 - Calculated Temp: 27.3
BPM = 96
Analog in reading: 56 - Calculated Temp: 27.3
BPM = 89
Analog in reading: 56 - Calculated Temp: 27.3
BPM = 82
Analog in reading: 56 - Calculated Temp: 27.3
BPM = 77
Analog in reading: 56 - Calculated Temp: 27.3
BPM = 72
Analog in reading: 56 - Calculated Temp: 27.3
BPM = 68
Analog in reading: 56 - Calculated Temp: 27.3
BPM = 64
Analog in reading: 56 - Calculated Temp: 27.3
BPM = 61
Analog in reading: 56 - Calculated Temp: 27.3
BPM = 58
Analog in reading: 56 - Calculated Temp: 27.3
BPM = 58
Analog in reading: 56 - Calculated Temp: 27.3
BPM = 58
Analog in reading: 56 - Calculated Temp: 27.3
BPM = 58
Analog in reading: 56 - Calculated Temp: 27.3
BPM = 58
Analog in reading: 56 - Calculated Temp: 27.3
BPM = 58
Analog in reading: 56 - Calculated Temp: 27.3
BPM = 58
Analog in reading: 56 - Calculated Temp: 27.3
BPM = 58
Analog in reading: 56 - Calculated Temp: 27.3
- Attachments
-
- Xbee module connected to XBee shield v1.1 to Arduino UNO. Also connected with pulse sensor and LM35.
- Arduino XBee.jpeg (467.83 KiB) Viewed 803 times
-
- Xbee module connected to PC through XBee Usb adapter
- XBee PC.JPG (452.54 KiB) Viewed 803 times
- adafruit_support_rick
- Posts: 35092
- Joined: Tue Mar 15, 2011 11:42 am
Re: How to give delay between sensors
No. The interrupt reads the pulse sensor every 2 milliseconds, regardless of any delay in loop(). You cannot synchronize the pulse and the temperature readings with a delay().cutie_lovely_92 wrote:Does modifying the delay really has an affect?
It is possible that switching back and forth between reading the temperature and reading the pulse is causing inaccurate readings.
Without changing anything else, try these two things:
- comment out the call to readAnalog(potPin), and see if the pulse reading is accurate
- restore the call to readAnalog(potPin), comment out the call to analogRead(pulsePin), and see if the temperature is accurate.
-
- Posts: 21
- Joined: Fri Jan 04, 2013 3:59 am
Re: How to give delay between sensors
1. I restore the code like previous so the code will be
Then I do just like what u asked.
I put my fingers on the LM35DZ, but the temperature is not affected.
Code: Select all
void loop(){
if (QS == true){ // Quantified Self flag is true when arduino finds a heartbeat
fadeRate = 255; // Set 'fadeRate' Variable to 255 to fade LED with pulse
Serial.print("\n BPM = ");
Serial.println(BPM);
QS = false; // reset the Quantified Self flag for next time
}
ledFadeToBeat();
delay(20); // take a break
int span = 20;
int aRead = 0;
for (int i = 0; i < span; i++) {
aRead = aRead; //+ analogRead(potPin);
}
aRead = aRead / 20;
temperature = ((100*5.0*aRead)/1024)*10; //substitute 5.0V reference for 1.1V reference
// convert voltage to temperature
// Serial.print("Analog in reading: ");
// Serial.print(long(aRead));
//print temperature value on serial monitor
//Serial.print(" - Calculated Temp: ");
//xbee.print(" - Calculated Temp: ");
//printTenths(long(temperature));
}
RESULT:driverblock wrote:RESULT:cutie_lovely_92 wrote: - comment out the call to readAnalog(potPin), and see if the pulse reading is accurateAlso it only detects every time i put my fingers on it. No continuous heart beat detect.Code: Select all
Pulse Rate and Body Temperature detector BPM = 66 BPM = 67 BPM = 68 BPM = 69 BPM = 70 BPM = 71 BPM = 72 BPM = 74 BPM = 77 BPM = 80 BPM = 85 BPM = 89 BPM = 94 BPM = 99 BPM = 107 BPM = 118 BPM = 129 BPM = 141 BPM = 153 BPM = 164 BPM = 175 BPM = 180 BPM = 188 BPM = 198 BPM = 202 BPM = 207 BPM = 212 BPM = 215 BPM = 210 BPM = 211 BPM = 214 BPM = 220 BPM = 223 BPM = 223 BPM = 217 BPM = 218 BPM = 219 BPM = 219 BPM = 228 BPM = 224 BPM = 224 BPM = 224 BPM = 219 BPM = 219 BPM = 222 BPM = 222 BPM = 216 BPM = 216 BPM = 215 BPM = 218 BPM = 213 BPM = 213 BPM = 211 BPM = 211 BPM = 213
driverblock wrote:cutie_lovely_92 wrote: - restore the call to readAnalog(potPin), comment out the call to analogRead(pulsePin), and see if the temperature is accurate.
Code: Select all
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 56 - Calculated Temp: 27.3
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 56 - Calculated Temp: 27.3
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 56 - Calculated Temp: 27.3
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 67 - Calculated Temp: 32.7
Analog in reading: 56 - Calculated Temp: 27.3
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 56 - Calculated Temp: 27.3
Analog in reading: 56 - Calculated Temp: 27.3
Analog in reading: 56 - Calculated Temp: 27.3
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 56 - Calculated Temp: 27.3
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 56 - Calculated Temp: 27.3
Analog in reading: 56 - Calculated Temp: 27.3
Analog in reading: 56 - Calculated Temp: 27.3
Analog in reading: 56 - Calculated Temp: 27.3
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 56 - Calculated Temp: 27.3
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 56 - Calculated Temp: 27.3
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 56 - Calculated Temp: 27.3
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 56 - Calculated Temp: 27.3
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 56 - Calculated Temp: 27.3
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 56 - Calculated Temp: 27.3
Analog in reading: 56 - Calculated Temp: 27.3
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 56 - Calculated Temp: 27.3
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 56 - Calculated Temp: 27.3
Analog in reading: 56 - Calculated Temp: 27.3
Analog in reading: 56 - Calculated Temp: 27.3
Analog in reading: 56 - Calculated Temp: 27.3
Analog in reading: 56 - Calculated Temp: 27.3
Analog in reading: 56 - Calculated Temp: 27.3
Analog in reading: 56 - Calculated Temp: 27.3
Analog in reading: 56 - Calculated Temp: 27.3
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 54 - Calculated Temp: 26.3
Analog in reading: 54 - Calculated Temp: 26.3
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 54 - Calculated Temp: 26.3
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 54 - Calculated Temp: 26.3
Analog in reading: 54 - Calculated Temp: 26.3
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 53 - Calculated Temp: 25.8
Analog in reading: 54 - Calculated Temp: 26.3
Analog in reading: 54 - Calculated Temp: 26.3
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 54 - Calculated Temp: 26.3
Analog in reading: 54 - Calculated Temp: 26.3
Analog in reading: 54 - Calculated Temp: 26.3
Analog in reading: 54 - Calculated Temp: 26.3
Analog in reading: 54 - Calculated Temp: 26.3
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 54 - Calculated Temp: 26.3
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 54 - Calculated Temp: 26.3
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 54 - Calculated Temp: 26.3
Analog in reading: 54 - Calculated Temp: 26.3
Analog in reading: 54 - Calculated Temp: 26.3
Analog in reading: 54 - Calculated Temp: 26.3
Analog in reading: 54 - Calculated Temp: 26.3
Analog in reading: 54 - Calculated Temp: 26.3
Analog in reading: 54 - Calculated Temp: 26.3
Analog in reading: 54 - Calculated Temp: 26.3
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 54 - Calculated Temp: 26.3
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 54 - Calculated Temp: 26.3
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 56 - Calculated Temp: 27.3
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 56 - Calculated Temp: 27.3
Analog in reading: 56 - Calculated Temp: 27.3
Analog in reading: 56 - Calculated Temp: 27.3
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 54 - Calculated Temp: 26.3
Analog in reading: 54 - Calculated Temp: 26.3
Analog in reading: 54 - Calculated Temp: 26.3
Analog in reading: 54 - Calculated Temp: 26.3
Analog in reading: 54 - Calculated Temp: 26.3
Analog in reading: 54 - Calculated Temp: 26.3
Analog in reading: 54 - Calculated Temp: 26.3
Analog in reading: 54 - Calculated Temp: 26.3
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 54 - Calculated Temp: 26.3
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 56 - Calculated Temp: 27.3
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 56 - Calculated Temp: 27.3
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 56 - Calculated Temp: 27.3
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 56 - Calculated Temp: 27.3
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 56 - Calculated Temp: 27.3
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 56 - Calculated Temp: 27.3
Analog in reading: 55 - Calculated Temp: 26.8
Analog in reading: 56 - Calculated Temp: 27.3
- adafruit_support_rick
- Posts: 35092
- Joined: Tue Mar 15, 2011 11:42 am
Re: How to give delay between sensors
Alright, so it works for temperature only, but it doesn't work for pulse only. There must be something wrong with your pulse sensor. You are going to have to talk to the pulse sensor people about that. I can't help you with it.
-
- Posts: 21
- Joined: Fri Jan 04, 2013 3:59 am
Re: How to give delay between sensors
will try to contact them. Thanks for the guidance so far.driverblock wrote:Alright, so it works for temperature only, but it doesn't work for pulse only. There must be something wrong with your pulse sensor. You are going to have to talk to the pulse sensor people about that. I can't help you with it.
- miallyrey
- Posts: 1
- Joined: Tue Dec 02, 2014 4:27 am
Re: How to give delay between sensors
hello, i was experiencing the same problem now, may i ask how did you solved the problem with your bpm reading. thank you
Please be positive and constructive with your questions and comments.