You are on page 1of 6

Email: info@sunrom.com Visit us at http://www.sunrom.

com

Document: Datasheet

Date: 30-May-11

Model #: 1157

Products Page: www.sunrom.com/p-556.html

Heart Beat Sensor


Heart beat sensor is designed to give digital output of heat beat when a finger is placed on it. When the heart beat detector is working, the beat LED flashes in unison with each heart beat. This digital output can be connected to microcontroller directly to measure the Beats Per Minute (BPM) rate. It works on the principle of light modulation by blood flow through finger at each pulse.

Features
Heat beat indication by LED Instant output digital signal for directly connecting to microcontroller Compact Size Working Voltage +5V DC

Applications
Digital Heart Rate monitor Patient Monitoring System Bio-Feedback control of robotics and applications

Specification
Parameter Operating Voltage Operating Current Output Data Level Heart Beat detection Light source Value +5V DC regulated 100 mA 5V TTL level Indicated by LED and Output High Pulse 660nm Super Red LED

Pin Details
Board has 3-pin connector for using the sensor. Details are marked on PCB as below.
Pin 1 2 3 Name +5V OUT GND Details Power supply Positive input Active High output Power supply Ground

Using the Sensor


Connect regulated DC power supply of 5 Volts. Black wire is Ground, Next middle wire is Brown which is output and Red wire is positive supply. These wires are also marked on PCB. To test sensor you only need power the sensor by connect two wires +5V and GND. You can leave the output wire as it is. When Beat LED is off the output is at 0V. Put finger on the marked position, and you can view the beat LED blinking on each heart beat. The output is active high for each beat and can be given directly to microcontroller for interfacing applications.

Heart beat output signal 5V level

0V level LED ON each high level when finger is placed on sensor LED OFF when no beat detected when finger is not placed on sensor

Working
The sensor consists of a super bright red LED and light detector. The LED needs to be super bright as the maximum light must pass spread in finger and detected by detector. Now, when the heart pumps a pulse of blood through the blood vessels, the finger becomes slightly more opaque and so less light reached the detector. With each heart pulse the detector signal varies. This variation is converted to electrical pulse. This signal is amplified and triggered through an amplifier which outputs +5V logic level signal. The output signal is also indicated by a LED which blinks on each heart beat.
F IGURE 1 S ENSOR P RINCIPLE

Sunrom Technologies

Your Source for Embedded Systems

Visit us at www.sunrom.com

Following figure shows signal of heart beat and sensor signal output graph. Fig.2 shows actual heart beat received by detector (Yellow) and the trigger point of sensor (Red) after which the sensor outputs digital signal (Blue) at 5V level.

F IGURE 2 S IGNAL V IEW

Fig.3 shows target pulse rates for people aged between 20 and 70. The target range is the pulse rate needed in order to provide suitable exercise for the heart. For a 25-year old, this range is about 140-170 beats per minute while for a 60-year old it is typically between 115 and 140 beats per minute.

Sunrom Technologies

Your Source for Embedded Systems

Visit us at www.sunrom.com

Sample Application: Digital Heart Beat Monitor


Lets use this heart beat sensor and build a digital heart beat monitor. When a finger is put in the sensor, it displays the beats per minute (BPM) rate.
U1 LCD 16x2

LCD
VCC U2 AT89S52 39 38 37 36 35 34 33 32 1 2 3 4 5 6 7 8 31 + XTAL1 C1 10uF 9 R1 10K RST P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7 P1.0/T2 P1.1/T2EX P1.2 P1.3 P1.4/SS P1.5/MOSI P1.6/MISO P1.7/SCK EA/VPP PSEN ALE/PROG XTAL2 GND 6 5 4 3 16 15 2 1 VCC P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15 P3.0/RXD P3.1/TXD P3.2/INT0 P3.3/INT1 P3.4/T0 P3.5/T1 P3.6/WR P3.7/RD 21 22 23 24 25 26 27 28 10 11 12 13 14 15 16 17 29 30 VCC PR1 50K PRESET 14 13 12 11 10 9 8 7 Enable R/W RS VL Gled Vled Vdd Vss D7 D6 D5 D4 D3 D2 D1 D0 Y1 18 C3 33p

HEART BEAT SENSOR OUT +5V GND


CN1 SUNROM #1157 VCC

VCC

40

Display Contrast

VCC

20

19 C2 33p

11.0592

The pulse signal is applied to the P1.0 input of U2 that is AT89S52 (Can be any 8051 type) which is monitored by the program whenever this input goes high. Internally to U2, there is a counter which counts how many 1ms intervals there are between two high going heart beat pulses. This number is then divided by 60,000 and the result is the pulse rate. For example, if the pulse rate is 60 BPM (beats per minute) there will be a pulse every second. The duration of one heart beat will be one seconds or 1000 x 1ms. Dividing 60,000 by 1000 will give the correct result of 60 which is shown on the display. If there is invalid result (BPM>200) it is invalid and waits for next cycle. Sample code of this application is shown on next page.

Sunrom Technologies

Your Source for Embedded Systems

Visit us at www.sunrom.com

// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= // -=-=-=-=- Hardware Defines -=-=-=-=-=-=-= // -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= sbit SENSOR = P1^0; //sensor is connected to this pin unsigned int beatms; float bpm; char buf[20]; // -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= // -=-=-=-=- Main Program -=-=-=-=-=-=-= // -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= void main() { // -=-=- Intialize variables -=-=-= lcdInit(); // -=-=- Welcome LCD Message -=-=-= lcdClear(); lcdGotoXY(0,0); // 1st Line of LCD // "xxxxxxxxxxxxxxxx" lcdPrint("DIGITAL HEART"); lcdGotoXY(0,1); // 2nd Line of LCD // "xxxxxxxxxxxxxxxx" lcdPrint("BEAT MONITOR"); beatms=0; // will store duration between two pulses // -=-=- Program Loop -=-=-= while(1) { while(SENSOR==0);// wait for high pulse from sensor DelayNmS(10); // 10ms delay so that it does not listen to any noise beatms = 10; // start counting beatms from 10ms since we have delay after pulse while(SENSOR==1)// wait until signal is high { DelayNmS(1); //wait 1msec beatms++; //keep incrementing counter each 1ms } while(SENSOR==0) //keep looping till signal goes back high, wait for next { DelayNmS(1); //wait 1msec beatms++; //keep incrementing counter each 1ms } // beatms variable will now have time in ms between two high edge pulse lcdClear(); lcdGotoXY(0,0); lcdPrint("HEART RATE : "); bpm = (float)60000/beatms; // see document of #1157 for this calculation if(bpm > 200) { lcdGotoXY(0,1); sprintf (buf, "Processing......"); // Invalid, Wait for next cycle lcdPrint(buf); } else { lcdGotoXY(0,1); sprintf (buf, "%0.0f BPM", bpm); // Display reading in BPM lcdPrint(buf); } } }

Sunrom Technologies

Your Source for Embedded Systems

Visit us at www.sunrom.com

Board Dimensions (mm)

Board is provided with four PCB supports

Troubleshooting Notes
Getting false output all the time by LED blinking blinking. o Note that the sensor works on principle of change of light, so if you have p placed the sensor in light which changes rapidly like FAN just obstructing light source or place FAN where direct light source falls on it, It can have this problem. Relocate to a place where there is no direct light fa falling on it. Getting false output randomly. o It can happen due to power supply fluctuation. If you are using LM7805 based power supply, use atleast 1000uF filtering capacito at 5V output of LM7805 as well as input capacitor of LM7805 power supply. Getting output when finger is near it. o Again same principle of light reflected by finger gets detected as change in light level and it blink. But since we are using sample c code which ignores invalid values, this issue is taken care of. If you want to have more accuracy, you can sample the heart beat and do average of 5-10 sample reading in your MCU. 10 After power on it takes 5-10 second to get detection of finger pulse. seconds o This is normal, after power up the first time, it can take 5-10 seconds. After that, 10 detection will be instant. Not getting any LED blink at all o Make sure you have given regulated +5V to board. Check with multimeter. Any more voltage can damage the boa Any less voltage, and the board will not work. board. o Also check if the output pin of board is not being pulled to GND or VCC in your ing application board. During testing you can leave the OUT pin floating as the OUT pin in status is reflected by onboard LED.

Sunrom Technologies

Your Source for Embedded Systems

Visit us at www.sunrom.com

You might also like