Because nowadays more and more people are having heart disease because of their unhealthy lifestyle. This pulse oximeter can help them to check their heartbeat rate every day to avoid the danger of heart disease.

What it does

It can measure and print out the heartbeat rate in one minute. Also it can give a warning by printing and making a sound, when an abnormal heartbeat is detected.

How I built it

Because blood loaded with oxygen and blood lacking oxygen has different capability of absorbing red light. A red LED and photodiode pair is used to detect the heartbeat. Firstly, photodiode will output a voltage signal based on the light intensity is receives. Then, this signal is converted into digital signal by ADC. Then I will count how many times the signal has passed a certain threshold in 10 seconds and multiply that by 6 to get the heartbeat in 1 min. Time duration between two pulses is also measured to see if the pulse is stable. Finally, buzzer will give a warning if heartbeat rate is not normal.

Challenges I ran into

Because the photodiode’s sensitivity is not good enough to detect the light intensity change, the red LED and photodiode pair failed to detect the heartbeat. Instead, a switch-controlled red LED is used to simulate the heartbeat.

Accomplishments that I'm proud of

The device can successfully detect and print the heartbeat in one minute. Also, it can give a warning based on the certain circumstances:

  1. Heartbeat rate is greater than 120/min
  2. Heartbeat rate is slower than 50/min
  3. Time duration between two pulses is greater than 2s. Once the circumstances above is detected, a warning message will be printed, and the buzzer will make a sound of 440Hz.

What I learned

From this project, I now have a better understanding of how interrupt in Atmega328p works.

What's next for Simple Pulse Oximeter

A well-designed amplifier circuit could be used to amplify the signal from photodiode, so that we can use LED and photodiode pair to detect the heartbeat. If so, two LED and photodiode pairs can be used, so that we can use an equation to calculate the blood oxygen level. The real-time blood oxygen level is very useful when examining a person’s medical condition.

Built With

  • atmega328p
  • c
Share this project: