/********* Pleasedontcode.com ********** Pleasedontcode thanks you for automatic code generation! Enjoy your code! - Terms and Conditions: You have a non-exclusive, revocable, worldwide, royalty-free license for personal and commercial use. Attribution is optional; modifications are allowed, but you're responsible for code maintenance. We're not liable for any loss or damage. For full terms, please visit pleasedontcode.com/termsandconditions. - Project: Real-time Force - Source Code compiled for: Arduino Uno - Source Code created on: 2024-01-05 00:54:37 ********* Pleasedontcode.com **********/ /****** SYSTEM REQUIREMENTS *****/ /****** SYSTEM REQUIREMENT 1 *****/ /* My project involves connecting one end of a sample */ /* to a load cell and the other end to the shaft, */ /* moving the motor backward to make it break. I want */ /* to see the force generated in the load cell in */ /* real time. */ /****** END SYSTEM REQUIREMENTS *****/ /****** DEFINITION OF LIBRARIES *****/ #include #include #include /****** FUNCTION PROTOTYPES *****/ void setup(void); void loop(void); void measureForce(void); /***** DEFINITION OF DIGITAL INPUT PINS *****/ const uint8_t PUSH_BUTTON_PIN = 2; const uint8_t LOAD_CELL_DATA_PIN = A0; const uint8_t LOAD_CELL_CLOCK_PIN = 3; /****** DEFINITION OF LIBRARY CLASS INSTANCES*****/ EasyButton pushButton(PUSH_BUTTON_PIN); HX711 loadCell; /****** SYSTEM REQUIREMENTS *****/ // SYSTEM REQUIREMENT 1: Real-time force measurement const float LOAD_CELL_CALIBRATION_FACTOR = 420.0983; // Calibration factor for load cell void setup(void) { // Initialize Serial for debugging purposes Serial.begin(115200); // Initialize the push button pushButton.begin(); // Set up the button callbacks pushButton.onPressed([]() { Serial.println("Button pressed"); }); pushButton.onSequence(2, 1500, []() { Serial.println("Double click"); }); // Enable interrupt if supported if (pushButton.supportsInterrupt()) { pushButton.enableInterrupt([]() { pushButton.read(); }); Serial.println("Button will be used through interrupts"); } // Set up the load cell loadCell.begin(LOAD_CELL_DATA_PIN, LOAD_CELL_CLOCK_PIN); loadCell.set_scale(LOAD_CELL_CALIBRATION_FACTOR); loadCell.tare(); } void loop(void) { // Measure and print force in real-time measureForce(); // Add delay if needed for real-time measurement // delay(100); // Adjust the delay time according to the desired update rate } void measureForce(void) { float force = loadCell.get_units(); Serial.print("Force: "); Serial.print(force); Serial.println(" units"); }