Introduction: Push Up Counter Using Arduino

About: I am a 15 year old teen always up to no good. I code discord bots, websites, and some random shit in python

I am going to show you how to make a DIY push up counter with arduino and the ultrasonic sensor

Supplies

1. Arduino Uno

2. HC-SR04 Ultrasonic Module: https://amzn.to/2zLomJU

3. 4 Digital Display TM1637: https://amzn.to/30Qg2DK

4. Passive Buzzer: https://amzn.to/2BeYzu3

5. Switch: https://amzn.to/3hKNL7N

Step 1: Wiring

Wiring is pretty straightforward, just follow the schematics given above and you will be fine

Step 2: Coding

First of all we need to install the library

Open "Sketch" then go to "Library Manager" in the Arduino development software, then search for TM1637, and then install TM1637.


Enter the code given below

#include <TM1637Display.h>
//HC-SR04
//Youtube link: https://youtu.be/u9JauTRP_cc
#define echoPin  2
#define trigPin  3
#define resetPin 4


// 4-digital display pins
#define CLK 8
#define DIO 9
TM1637Display display(CLK, DIO);


float duration; //micro second
float cm;
long numDisplay=100;
boolean trigUp = false;
boolean trigDown = false;
float counterPushUp=0;
int buzzer=7;// Passive buzzer pin


void setup() {


  pinMode(buzzer,OUTPUT);
  Serial.begin(9600);
  pinMode(trigPin,OUTPUT);
  pinMode(echoPin,INPUT);
  pinMode(resetPin,INPUT_PULLUP);
  display.setBrightness(4);
  display.clear();
  delay(500);
  display.showNumberDecEx(numDisplay, false, true, 4, 0);
  
}
 


void loop() {
  
  //reset by switch
  if(digitalRead(resetPin)==0){
    trigUp=false;
    trigDown=false;
    counterPushUp=0;
  }
  digitalWrite(trigPin,LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin,HIGH);
  delayMicroseconds(100);
  // receive, convert time (us) to cm
  duration = pulseIn(echoPin,HIGH);
  cm = duration * 0.034/2.;
  if (cm>15 && cm<=30){
    trigUp = true;
  } 
  else if (cm < 10){
    trigDown = true;
  } 
 else if(cm >30) {
  }
 
  if (trigUp==true && trigDown==true){
    counterPushUp=counterPushUp+0.5;
    trigUp=false;
    delay(500);
    tone(7,800,40);//buzzer pin 7 frequency 800 duration 500
    trigDown=false;
  }


  display.showNumberDecEx(counterPushUp, false, true, 4, 0);
}

Step 3: Testing

Connect the Arduino to the laptop, hit upload and do them push ups!!!


Keep tinkering!