Using a Heartbeat-sensor to measure stress levels in the human body
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
Main hull_final.stl
Schematics Pondus.fzz
Schematics Pondus.png

Measuring Stress with Arduino

Using a Heart Beat Sensor to measure stress levels in the human body

This project is designed to measure heartbeat with an Arduino with heart beat sensor module. The Arduino then does a Fast Hartley Transform (FFH, alternative for Fourier) transform to generate the Heart-Rate-Variability (HRV) values. Based on these values, a relatively accurate indication of the stress levels can be found.

Background on measuring stress through HRV

Thayer, J. F., Åhs, F., Fredrikson, M., Sollers III, J. J., & Wager, T. D. (2012). A meta-analysis of heart rate variability and neuroimaging studies: Implications for heart rate variability as a marker of stress and health. Neuroscience & Biobehavioral Reviews, 36(2), 747-756. doi:10.1016/j.neubiorev.2011.11.009

Background on FFH (the calculation that is used)

Piccinin, F., & Department of Defence, South Australia. (1967). _THE FAST HARTLEY TRANSFORM AS AN ALTERNATIVE TO THE FAST FOURIER TRANSFORM _(Technical Memorandum). Retrieved from

This edited and extended version of code was written by Gerke van Garderen, It is written as an extension of existing heart rate sensor code, to add stress sensing through monitoring of Heart Rate Variability (HRV).

Heart rate sensor code is copied from: Pulse Sensor Amped 1.4 by Joel Murphy and Yury Gitman of For the original Pulse Sensor Amped code and license of said code, please see:

Change made: Added the HRV-calculations and display in the design, as well as shortening of the original Heart Rate Sensor code to preserve resources on the Arduino.

Note: Code is based on Arduino Pro Mini. If you use a different arduino, some changes to port numbers need to be made. Also, because this code makes use of Timer2, pins 3 and 11 lose PWM-functionality.