Welcome to Hackster!
Hackster is a community dedicated to learning hardware, from beginner to pro. Join us, it's free!
herolivechannel
Published © GPL3+

Push-up Counter using Arduino and Ultrasonic Sensor

How to make a Push-up Counter using Arduino and Ultrasonic Sensor HC SR04, 4 digital 7 segment display

BeginnerFull instructions provided16,078
Push-up Counter using Arduino and Ultrasonic Sensor

Things used in this project

Hardware components

Arduino UNO
Arduino UNO
×1
Ultrasonic Sensor - HC-SR04 (Generic)
Ultrasonic Sensor - HC-SR04 (Generic)
×1
Jumper wires (generic)
Jumper wires (generic)
×1
4-Digit LED Display Tube, 7-segments, TM1637
×1

Software apps and online services

Arduino IDE
Arduino IDE

Story

Read more

Custom parts and enclosures

Push up counter schematic fritzing

Schematics

Push up counter schematic

Code

Push up counter code

C/C++
#include <TM1637Display.h>
//HC-SR04
#define echoPin  2
#define trigPin  3
#define resetPin 4

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

float duration; //micro second
float d_cm;
long numDisplay=100;
boolean trigUp = false;
boolean trigDown = false;
float counterPushUp=0;

void setup() {

// initialize serial communication:
  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;
  }
  
  // generate pusle trigger
  digitalWrite(trigPin,LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin,HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin,LOW);
  // receive, convert time (us) to cm
  duration = pulseIn(echoPin,HIGH);
  d_cm = duration * 0.034/2.;
  
  //trigger body 
  if (d_cm>15 && d_cm<=30){
    trigUp = true;
  } else if (d_cm < 10){
    trigDown = true;
  } else if(d_cm >30) {
  }
  //counter
  if (trigUp==true && trigDown==true){
    counterPushUp=counterPushUp+0.5;
    trigUp=false;
    trigDown=false;
  }
  //print
//  Serial.print(d_cm);
//  Serial.print(" --- ");
//  Serial.println(counterPushUp);
  display.showNumberDecEx(counterPushUp, false, true, 4, 0);
}

Push up counter code

Credits

herolivechannel
0 projects • 11 followers
Contact

Comments

Please log in or sign up to comment.