Skip to content

Latest commit

 

History

8 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CPR Feedback Device

An Arduino Uno R4 Minima–based CPR feedback system designed to monitor chest compression rate and provide real-time feedback during automated cardiopulmonary resuscitation (CPR).

The system uses an LM393 infrared speed sensor to measure compression frequency, a BTS7960 43A motor driver to control a reciprocating linear actuator, and a 16×2 I2C LCD to display compression status. Visual feedback is provided using three LEDs, while an emergency stop feature allows immediate interruption of operation.


Prototype

CPR Feedback Device Prototype


Hardware Wiring

Hardware Wiring Diagram

The wiring diagram illustrates the electrical connections between the Arduino Uno R4 Minima, BTS7960 motor driver, LM393 IR sensor, 16×2 I2C LCD, DC-DC buck converter, 12V battery, and reciprocating linear actuator.


Features

  • Adult CPR mode
  • Real-time compression rate monitoring
  • IR sensor–based stroke detection
  • Compression rate calculation (CPM)
  • LCD feedback display
  • LED status indicators
  • Emergency stop functionality
  • BTS7960 motor control
  • Closed-loop monitoring of compression frequency

Hardware

  • Arduino Uno R4 Minima
  • LM393 IR Speed Sensor
  • BTS7960 43A Motor Driver
  • 12V Reciprocating Linear Actuator
  • 16×2 LCD with I2C Backpack
  • 12V 7Ah Sealed Lead Acid (SLA) Battery
  • DC-DC Buck Converter
  • Push Buttons
  • LEDs
  • Breadboard
  • Jumper Wires

Pin Configuration

Component Arduino Pin
IR Sensor OUT D2
Adult Mode Input D3
Emergency Stop D5
Green LED D6
Yellow LED D7
Red LED D8
BTS7960 RPWM D9
BTS7960 LPWM D10
BTS7960 R_EN D11
BTS7960 L_EN D12
LCD SDA A4
LCD SCL A5

Working Principle

  1. Power on the system.
  2. Select Adult Mode.
  3. The Arduino controls the BTS7960 motor driver to operate the reciprocating linear actuator.
  4. The LM393 IR sensor detects every compression stroke.
  5. The Arduino calculates the compression rate in compressions per minute (CPM).
  6. The LCD displays the measured compression rate.
  7. LED indicators provide real-time feedback:
    • Green: Correct compression rate (120–140 CPM)
    • Yellow: Compression rate below the target range
    • Red: Compression rate above the target range
  8. Activating the emergency stop immediately halts the actuator.

Compression Rate Feedback

Compression Rate LCD Message LED
0 CPM Compressing... Off
Below 120 CPM Too Slow! Yellow
120–140 CPM Good Pace! Green
Above 140 CPM Too Fast! Red

Repository Structure

cpr-feedback-device/
├── firmware/
│   └── cpr_feedback_device.ino
├── circuit/
│   └── wiring_diagram.png
├── images/
│   └── prototype.png
├── README.md
├── LICENSE
└── .gitignore

Required Libraries

  • Wire (included with Arduino IDE)
  • LiquidCrystal_I2C

Install the LiquidCrystal_I2C library through the Arduino Library Manager before uploading the firmware.


Upload Instructions

  1. Open firmware/cpr_feedback_device.ino in the Arduino IDE.
  2. Select Arduino Uno R4 Minima.
  3. Install the required libraries.
  4. Connect the board through USB.
  5. Compile and upload the firmware.
  6. Connect the hardware according to the wiring diagram.
  7. Power the system and begin operation.

Future Improvements

  • Compression depth sensing
  • PID-based motor control
  • Wireless monitoring
  • Battery health monitoring
  • Data logging
  • Load-cell-based compression force feedback

License

This project is licensed under the MIT License. See the LICENSE file for details.

About

Embedded firmware for an automated CPR device providing real-time compression monitoring and feedback using Arduino Uno R4 Minima.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages