Arduino Uno with two HX711 amplifiers for two load cells to display on two OLEDs

Hi, I'm planning out a big project and just making sure that there's no problems with my choice of input and output devices before I order the parts. I have very minimal experience with arduino so maybe you can catch something I didn't.

I'm on an arduino uno, which is getting input from two load cells via two HX711 amplifiers. If I understand correctly, you could connect two 4 wire load cells to one HX711 amplifier but you would only be able to read the average tension. I need to be able to independently measure each load cell.

For output, I want to write to two OLED displays. Ideally I'd be able to write different things to each display at the same time, but it could also work to write the same thing to each display.

I'm looking at these displays https://www.amazon.ca/Kuman-Moudle-Display-Arduino-Raspberry/dp/B01NCAOZY9/ref=sr_1_5?ie=UTF8&qid=1517637558&sr=8-5&keywords=oled+arduino

which use i2c. If I am correct, I wouldn't be able to use SPI because I would either run out of suitable pins or my arduino uno wouldn't be fast enough to write to both simultaneously. I read that I2c is slower so I should have a better chance of running 2 screens at the same time. With I2c I should definitely have enough ports available as well.

From my googling I've found that people have had issues with setups similar to mine but I don't really know enough to understand what the problem might be. This thread, for example, is particularly worrying

https://lowpowerlab.com/forum/general-topics/hx711-load-cell-issue/

Anyway if you have any knowledge that could help me, please let me know! Or if you know some better places I can research to figure this out.

If you want to know what the project is, it's a finger strength contest where you have to pull a sliding block towards you while another person tries to pull it the opposite direction. You have to pull the block to your side with a certain amount of force for a certain amount of time to win the game.

Here's a CAD of my current design for it.

It's pretty hard to understand the CAD by just looking at it, here's a version with my MS paint annotations on it.

hahaha it might still not make any sense but that was my attempt.

if you're still completely confused by what the game is, here's a really early version I cadded without the displays and sensors, and reinforcement. It's a lot easier to see what's happening in this.

Anyway thanks for reading!

I'm not sure what you want to achieve with 2 load cells, IMO they will report the exactly same value unless the block is fixed to ground. Also load cells work on pressure, not on pull, you'll need "naked" strain gauges for your project.

The update speed of displays depends on the display controller. The more work that controller can do, the less time the Arduino has to spend in telling it what to do.

Hi,
Ops pics.
1aEXb7K.png
cJOihPC.png
MhAaLlv.png

Tom… :slight_smile:

Hi,
From what I can see you have sliding block in an assembly, that is being pushed from side to side.
The load cells measure the force of impact of the slide block against each end of the slide assembly.

It will not measure pulling force, unless the bar at each end of the slide is where the hands rest and it is floating with respect to the main frame with the loadcell between them.

Tom... :slight_smile:

Hi,

Can you please tell us your electronics, programming, Arduino, hardware experience?

Thanks… Tom… :slight_smile:

The 2nd pic shows it the best...the "pokey" thing hits the load cells attached to the end stops (one cell at each end).

For someone with "minimal experience with Arduino"...suggest first trying switches instead of load cells.

Hi,
The question is;
What does the OP want to measure?

  • Measure continuously the pulling force.
  • Measure the impact force of the slider onto the assembly stopbar.

Tom...

One thing to check is if you can change the I2C address of the display. If not, you can't connect two displays to the I2C bus.

sterretje:
One thing to check is if you can change the I2C address of the display. If not, you can't connect two displays to the I2C bus.

You can change the address on that display. This involves moving a tiny resistor, which will require a soldering iron with a tiny bit, magnifying equipment of some kind, a steady hand and a good level of soldering skills.
615238YcvaL.AC_SY400.jpg

If I am correct, I wouldn't be able to use SPI because I would either run out of suitable pins or my arduino uno wouldn't be fast enough to write to both simultaneously. I read that I2c is slower so I should have a better chance of running 2 screens at the same time. With I2c I should definitely have enough ports available as well.

Wrong on all counts, I'm afraid.

If you want to display different messages on the two displays, then with SPI displays, you would need 5 Arduino pins for 2 displays. 3 pins would be shared by both displays and they would need one dedicated pin each. With i2c displays, only 2 Arduino pins would be required for 2 displays, but you would have that difficult soldering to do, to change the address of the second display. The Arduino cannot send data to both displays simultaneously. But it can update one display and then the other so fast that the eye won't see it. The i2c displays are slower than SPI, but still fast enough that you won't see it. Updating the i2c displays will take more of the Arduino's processing time, so if it has many other tasks to perform, then SPI displays might be preferable, but it does not sound like that is the case here, so i2c should be fine.

If you want to display the exact same messages on both displays, then this can certainly be done with SPI displays, and you would need only 3 Arduino pins. The Arduino sketch would not need to know that two displays are connected. It would just write to one display, and the other display would receive the same data and display the exact same image. I'm not sure if this same trick can be done with i2c displays, you would have to try it.

615238YcvaL.AC_SY400.jpg