/** * * HX711 library for Arduino - example file * https://github.com/bogde/HX711 * * MIT License * (c) 2018 Bogdan Necula * ** #include "HX711.h" // HX711 circuit wiring const int LOADCELL_DOUT_PIN = 21; const int LOADCELL_SCK_PIN = 20; HX711 scale; void setup() { Serial.begin(38400); Serial.println("HX711 Demo"); Serial.println("Initializing the scale"); // Initialize library with data output pin, clock input pin and gain factor. // Channel selection is made by passing the appropriate gain: // - With a gain factor of 64 or 128, channel A is selected // - With a gain factor of 32, channel B is selected // By omitting the gain factor parameter, the library // default "128" (Channel A) is used here. scale.begin(LOADCELL_DOUT_PIN, LOADCELL_SCK_PIN); Serial.println("Before setting up the scale:"); Serial.print("read: \t\t"); Serial.println(scale.read()); // print a raw reading from the ADC Serial.print("read average: \t\t"); Serial.println(scale.read_average(20)); // print the average of 20 readings from the ADC Serial.print("get value: \t\t"); Serial.println(scale.get_value(5)); // print the average of 5 readings from the ADC minus the tare weight (not set yet) Serial.print("get units: \t\t"); Serial.println(scale.get_units(5), 1); // print the average of 5 readings from the ADC minus tare weight (not set) divided // by the SCALE parameter (not set yet) scale.set_scale(1000.f); // this value is obtained by calibrating the scale with known weights; see the README for details scale.tare(); // reset the scale to 0 Serial.println("After setting up the scale:"); Serial.print("read: \t\t"); Serial.println(scale.read()); // print a raw reading from the ADC Serial.print("read average: \t\t"); Serial.println(scale.read_average(20)); // print the average of 20 readings from the ADC Serial.print("get value: \t\t"); Serial.println(scale.get_value(5)); // print the average of 5 readings from the ADC minus the tare weight, set with tare() Serial.print("get units: \t\t"); Serial.println(scale.get_units(5), 1); // print the average of 5 readings from the ADC minus tare weight, divided // by the SCALE parameter set with set_scale Serial.println("Readings:"); } void loop() { Serial.print("one reading:\t"); Serial.print(scale.get_units(), 1); Serial.print("\t| average:\t"); Serial.println(scale.get_units(10), 1); scale.power_down(); // put the ADC in sleep mode delay(1000); scale.power_up(); } /* #include #include #include int RXLED = 17; // The RX LED has a defined Arduino pin // Note: The TX LED was not so lucky, we'll need to use pre-defined // macros (TXLED1, TXLED0) to control that. // (We could use the same macros for the RX LED too -- RXLED1, // and RXLED0.) // 1. HX711 circuit wiring const int LOADCELL_DOUT_PIN = 21; const int LOADCELL_SCK_PIN = 20; // 2. Adjustment settings const long LOADCELL_OFFSET = 50682624; const long LOADCELL_DIVIDER = 5895655; HX711 loadcell; void setup() { pinMode(RXLED, OUTPUT); // Set RX LED as an output // TX LED is set as an output behind the scenes Serial.begin(9600); //This pipes to the serial monitor Serial.println("Initialize Serial Monitor"); Serial1.begin(9600); //This is the UART, pipes to sensors attached to board Serial1.println("Initialize Serial Hardware UART Pins"); // 3. Initialize library loadcell.begin(LOADCELL_DOUT_PIN, LOADCELL_SCK_PIN); loadcell.set_scale(LOADCELL_DIVIDER); loadcell.set_offset(LOADCELL_OFFSET); } void loop() { // Serial.println("Hello world!!!"); // Print "Hello World" to the Serial Monitor // Serial1.println("Hello! Can anybody hear me?"); // Print "Hello!" over hardware UART // 4. Acquire reading Serial.print("Weight: "); Serial.println(loadcell.get_units(10), 2); digitalWrite(RXLED, LOW); // set the RX LED ON TXLED0; //TX LED is not tied to a normally controlled pin so a macro is needed, turn LED OFF delay(200); // wait for a second digitalWrite(RXLED, HIGH); // set the RX LED OFF TXLED1; //TX LED macro to turn LED ON delay(200); // wait for a second } */