A Spring Testing Machine is a device designed to test the properties and performance of springs. In this Project we will make Spring testing by using Arduino. We also Designed and Printed the Casing and Supporting Structure of this machine by using our in house 3D Printer.
The purpose of this spring tester machine is to measure various characteristics of springs, including:
- Load or Force Measurement: It determines the force exerted by the spring at a specific compression or extension. This is often referred to as the spring’s stiffness or spring constant.
- Spring Rate: The machine measures the rate at which the spring compresses or extends under a specific load.
- Compression and Extension: The machine can test how a spring behaves when it is compressed or extended, determining its operational limits.
- Load vs. Displacement Curve: The machine can plot a load vs. displacement curve to visualize how the spring behaves under various loads.
Components Used in this Project
Following components were used in this Project
1. Arduino UNO (Microcontroller)
2. Stepper motor Nema17 with Gearbox
3. Stepper driver tb6600
4. Threaded rod lead screw
5. Load cell + HX711 amplifier
6. Nextion Display 3.5
7. 12V 3A power supply
8. Jumper wires
9. Limit switches
Circuit Diagram
#include "HX711.h"
// HX711 circuit wiring
const int LOADCELL_DOUT_PIN = 5;
const int LOADCELL_SCK_PIN = 4;
float d, D;
float Total_distance = 155;
float Spring_Height;
// Define pin numbers
const int stepPin = 6; // Step pin connected to TB6600
const int dirPin = 7; // Direction pin connected to TB6600
const int limitSwitch1 = 2; // Limit switch 1 pin
const int limitSwitch2 = 3; // Limit switch 2 pin
int Set_point;
// Define variables
int direction = HIGH; // Direction of motor movement
bool running = true, Stop= false; // Flag to indicate if limit switch 1 is triggered
int set = 0;
bool Allow = false, flag1 = true, sp = true;
bool latch1 = true, latch2 = false;
float M_Factor = 280, STPS; //50.3
float C[10];
float Gr[10];
int x = 1;
int MM = 1;
HX711 scale;
float reading;
float lastReading;
int NOR = 5;
bool Start=true;
bool SCALE = true;
char Data = ' ';
int y;
//REPLACE WITH YOUR CALIBRATION FACTOR
#define CALIBRATION_FACTOR 382.64
int distance;
void setup() {
// Initialize serial communication
Serial.begin(9600);