0
\$\begingroup\$

Im a new user in the electronic world. I tried to hack my bathroom weight scale but no success. There is a great tutorial which I followed:

https://www.youtube.com/watch?v=iywsJB-T-mU

my parts:

Could somebody who has more experience take a look at my solution?

I checked with multimeter and all wires are ok.

enter image description here

to save place I showed only one connected load sensor but 3 next I connected in the same way.

Im getting only:

one reading:    0.0 | average:  0.0
0
one reading:    0.0 | average:  0.0
0

What can be a problem? Im trying to do a whole week with different arduinos and no success :(

code which Im using:

#include "HX711.h"
#include "soc/rtc.h"

HX711 scale;


void setup() {
  Serial.begin(115200);
  rtc_clk_cpu_freq_set(RTC_CPU_FREQ_80M);
  Serial.println("Diska");

  Serial.println("Initializing the scale");
  // parameter "gain" is ommited; the default value 128 is used by the library
  // HX711.DOUT - pin #A1
  // HX711.PD_SCK   - pin #A0
  scale.begin(26, 25);


  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(233.82);    // 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);

  int ww = (int)(scale.get_units(10) + 0.5);
  Serial.println(ww);


  scale.power_down();                   // put the ADC in sleep mode
  delay(100);
  scale.power_up();
}
\$\endgroup\$
  • \$\begingroup\$ Please provide link to related Arduino data sheet. || Without looking up the Arduino specs I cannot be sure which pins match which I/O function, but if the connections are as shown then SCK is connected to IO33 and data out to IO25. This may be the correct mapping, but as these are shown in the (commented out?) code as A0 and A1 you MAY have the pins moved one position from correct (ie reading the label as below rather than above the pins. || ... \$\endgroup\$ – Russell McMahon Apr 1 '18 at 17:49
  • \$\begingroup\$ ... IF this is not the case then, while the provided diagram is "followable", it would be a really good idea to draw a diagram where the functionality and names and pin numbers of all connections can be seen 'at a glance'. eg (made up values) pin 13 = Port A0 = Data3. As it is the reader cannot have confidence what the connections are of how they should connect to the modules - making it harder to establish whether the problem is external or internal. || Are the SCLK and DataIn pins established somewhere else in code as they seem to be commented out here. \$\endgroup\$ – Russell McMahon Apr 1 '18 at 17:52
  • \$\begingroup\$ github.com/espressif/arduino-esp32 Does it help? It is arduino esp-32 dev. I tried also with arduino leonardo with standard A0 and A1 and no sucess :( Weird is for me this SparkFun Load Sensor Combinator if Im checking with a multimetr it seems the weight sensors are not connected. May we talk shortly in the chat that I ask you some questons? \$\endgroup\$ – Anna K Apr 1 '18 at 17:54
  • \$\begingroup\$ Your pinouts appear to be all over the (pinout)_ map compared to the ESP32 resource that you cited. One or both of them are not the same as the other :-). However, you show the input connected to ADCs 5 & 18 (GPIOs 33 & 25). It is POSSIBLE that the two ADCs are separated like this but the code containing assignments is not shown so ...? SO - not enough information so far, appears to be bad mismatch between IC claimed used and shown on breadboard, no certainty of pin mapping. || ... \$\endgroup\$ – Russell McMahon Apr 4 '18 at 11:06
  • \$\begingroup\$ ... "If the ADCs you are reading are not the ADCs the input signal is connected to then it would be pleasantly astounding if it actually worked. If the information to hand does not allow the correspondence of code and worlds ADC mappings to be checked them Murphy will usually ensure it's wrong". | Try applying a small measureable voltage to the believed. Depending on whether the code cares if the input hardware is present this may give an output. Or not.. \$\endgroup\$ – Russell McMahon Apr 4 '18 at 11:08

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.