Load cell??

แชร์
ฝัง
  • เผยแพร่เมื่อ 29 พ.ย. 2024

ความคิดเห็น • 334

  • @johnandjacquelinewarren9979
    @johnandjacquelinewarren9979 6 ปีที่แล้ว +14

    I'm just starting to dig into load cells, but I think the gradual decline you were seeing may be attributed to "creep" which you see listed in the specifications of a lot of the load cells you can buy. My understanding is that it will level out over time if the weight is left on continuously, but is just something you have to expect and work around for immediate readouts.

    • @will2see
      @will2see 3 ปีที่แล้ว

      I don't know what you are talking about, but the "gradual decline" of the average is because the first few values are anomalously large. So the solution is just to ignore the first few values and only then start averaging.

    • @johnandjacquelinewarren9979
      @johnandjacquelinewarren9979 3 ปีที่แล้ว +3

      @@will2see Nah, there's more to it than just the initial readings being off. Like my comment from a couple years ago said, there's actually listed specs on load cells that you can buy to help you account for the creep of the load cell. Generally it shouldn't creep muh after the first 10-30 minutes, but that probably depends on the individual load cell specs.

    • @noahjones7579
      @noahjones7579 3 ปีที่แล้ว

      Creep is usually only an issue when materials are stressed over time near their melting point.

    • @johnandjacquelinewarren9979
      @johnandjacquelinewarren9979 3 ปีที่แล้ว +1

      @@noahjones7579 If you're talking about metals (or I think in some cases plastics?) getting deformed gradually under stress, then yeah, it's normally near melting point. But load cell creep is a real thing, has nothing to do with deforming or damaging the load cell, and as I mentioned before, is a well-known enough thing that manufacturers tend to give the specs for it with the load cells.

  • @vishokkoul1422
    @vishokkoul1422 7 ปีที่แล้ว +14

    This video is really ultimate to learn all around the weighing application. A big thank to you sir

  • @KarstenSie
    @KarstenSie ปีที่แล้ว

    Thanks for this encouraging introduction, I'm sure that many people will be more interested in Load Cells after seeing your video. It is important, though,, to understand Load Cells more precisely. They do not bend, and if they do, this is not measured. Well then, how do they work? The four thinnest pieces of alloy right above and below the two big holes holes act as four hinges, and while every hinge is bending, the arrangement creates a parallelogram where two hinges bend up and two hinges bend down.. So the measuring end of the cell is shifting instead of a bending. This is important, because if the cell would bend, the applied force would produce different readings dependent on the place the force is applied, while a shifting motion is immune to the location of the force entry. All four hinges are equipped with a variable resistor in a bridge configuration that adds all shifting, parallelogram motion, while the remaining small bending motion is even cancelled out (not measured). Pretty clever - and that makes the cells robust and reliable.

  • @GeraldHerrera1
    @GeraldHerrera1 7 ปีที่แล้ว

    Not sure if someone already mentioned this, but the likely cause of the raw values decreasing over time is related to a phenomenon called "creep." When you have a load on the force transducer, it physically deforms the material. The strain gauges are circuits that are placed on the material than enable you to measure the physical material deformation as a change in electrical properties of the circuit. The problem is that the mechanical deformation is not instantaneous. There is a time course for which it takes the material to respond to the applied load. So the output of the force transducer does not change instantaneously with the application of a load, but rather, the load cell output slowly increases at a given load. This phenomenon is called "creep". Creep is defined as the change in load cell output at a constant load, all other factors being constant (temperature, humidity, etc). Then there is a corresponding time course for which it takes the material to return to baseline following removal of the load. This means that the load cell output will continuously decrease upon load removal. Herein lies the problem. There is usually a significant hysteresis involved with the load removal process. This phenomenon is referred to as "Minimum Dead Load Output Return." Vishay has a really good article on load cells: www.vishaypg.com/docs/11864/11864.pdf There is a nice figure on page 2 of this PDF that shows what creep looks like.

  • @EricJanOud
    @EricJanOud 8 ปีที่แล้ว +2

    00:34 The reason for two holes is that it makes a parallellogram, making the loaded half stay parallel to the fixed half. So it does not bend ;)
    That is also he reason why it does not really matter too much where you put your weight (21:30 does not have to be the same point), especially if you fix a little plate to those two threaded holes, it should not matter too much where you put the object to be measured on that plate.
    I have no explanation for the fluctuation / decrease in value other than that it is a very, very low percentage of the total measured value. So I am inclined to say that the measuring current influences the temperature, and therefore the resistance of the strain gauge (which is in fact a variable resistor) because it's length changes some picometers...
    Inspired by this video, I am going to try this out myself soon! :)

  • @SashNone
    @SashNone 8 ปีที่แล้ว +1

    When i was need to get average value of analog measurement a took 3 variables;
    1 - an array to keep last N values,
    2 - counter
    3 - average value (summ).
    The algorithm was pretty effective. While Counter less than N you fill the array with corresponding values, Cunter = Counter+1; Array[Counter]=value; Summ = Summ+Value; Average = Summ/Counter. When counter hits N is a tricky part. You subtract N from counter, then read value from array[Counter] and subtract this value from Summ, then you need to place new value on this cell, also you need to add this value to summ, and you will get your Avg.
    If you need more detailed explanation - send me a message, or reply here.

  • @johnkemas7344
    @johnkemas7344 3 ปีที่แล้ว

    It could be a bit jittery due to creep as mentioned below which could come from minor load cell voltage supply changes, possibly air currents or table vibration in the room, or possibly warming due to the small amounts of current running through the load cell to cause some warming. Load cells are resistors and dissipate heat.

  • @AdrianStaicu82
    @AdrianStaicu82 7 ปีที่แล้ว

    Strongly agree with Jess Stuart, val should be float. I usually do val = 0.99 * val + 0.01 * read. It starts with a big error but it averages out. Other formula would be val = val + (read - val) / factor, where factor can be anything from 2 to 100, the lower the factor the more significant the last read is, and the faster it reaches the read value. I use this for ease functions, but it could be applied, to average the read during load changes.

  • @moneymathmore6150
    @moneymathmore6150 8 ปีที่แล้ว

    I don't know if anyone has mentioned it or not, but a possible reason for the unstable values at 12:38 could be due to environmental vibrations. With the load cell being attached to a piece of wood, those vibrations will be transmitted to the load cell. I could be wrong, but thought I would share.

  • @gamerpaddy
    @gamerpaddy 5 ปีที่แล้ว

    interesstingly this cutout is on purpose not just 2 random overlapping holes. so it bends with both sides staying parallel, if it wouldnt be there it would bend on a slight angle which gives you different results if the weight its furhter away from the mounting holes, basically reading the torque created so it doesnt matter if its perfectly between them or slightly off

  • @jessstuart7495
    @jessstuart7495 8 ปีที่แล้ว +13

    12:36 The reason the values are decreasing is a problem in your program. In the line where you are calculating val, you are performing an implicit type-cast from float to long when the assignment operator "=" is performed. This will truncate the fractional part of the float, always giving you a value of val that is slightly less than than the float value. These truncations errors accumulate in val and that is why it never stabilizes. Replace val with a float type variable "fval" in the averaging line, and the value should stabilize to an "average" value of cell (input). I tried this out with gcc, and it does indeed fix this problem. longs are 32-bit on arduino, that's why I used ints (32-bit) on my PC. See example code below.
    #include
    #include
    void waitFor (unsigned int secs) {
    unsigned int retTime = time(0) + secs; // Get finishing time.
    while (time(0) < retTime); // Loop until it arrives.
    }
    int main(void)
    {
    int cell=8000000,val=0;
    float count=0,fval;
    while(1){
    count=count+1;
    fval = ((count-1)/count)*fval + (1/count)*cell;
    printf("%d
    ",(int)fval);
    waitFor(1);
    }
    return 0;
    }
    I would suggest using a moving average filter.

    • @iforce2d
      @iforce2d  7 ปีที่แล้ว +1

      Yes, truncating a float gives you a value less than the float, but it does not cause it to continually decrease. For example 12.6 will truncate to 12, but it will not truncate to 11, unless the incoming float itself is less than 12 right? Anyway, I found out afterward that I can make it increase or decrease whichever way I wanted by placing a hot or cold object nearby and waiting a few minutes. See the link in the description.

    • @jessstuart7495
      @jessstuart7495 7 ปีที่แล้ว +2

      I think you missed the point.
      "These truncations errors accumulate in val and that is why it never stabilizes."
      Even if you compensate somehow by placing a hot or cold object nearby, your algorithm still has the issue of accumulating truncation error.

    • @iforce2d
      @iforce2d  7 ปีที่แล้ว

      I admit you're right that truncation errors will accumulate in val. But I still don't think that is the cause of the change we see in this video, since it will not become significant for a much longer time. I actually wrote a big comment here and then stupidly refreshed the page before submitting, but I have added the gist of what I said to the page linked to in the description.

  • @jcarrandson
    @jcarrandson 3 ปีที่แล้ว +3

    As a programmer I know that "what the hell..." feeling when you left the average code in, I genuinely cracked up laughing at that. It's nice to be on the other end of it for a change.

  • @mishamengisen6435
    @mishamengisen6435 8 ปีที่แล้ว

    Hey, just some quick comments. You can probably avoid the weird ramp up to an accurate number by polling an initial val in the setup. Just move val above the setup and read it in once right after the begin in the setup method. Have you also considered a average of n number of previous polls? Grab a val array of n size, set them all to an initial poll in setup and then take a total / n of all the elements? Use an index and index % n to get the current position in the array. Cheers!

    • @iforce2d
      @iforce2d  8 ปีที่แล้ว

      +Misha Mengisen I think the (0.8*old + 0.2*new) style averaging I'm doing behaves fairly similar to a real moving average, but without the memory requirements. Yes, it seems we need to ignore the first few readings entirely.

  • @prakashnm9912
    @prakashnm9912 4 ปีที่แล้ว

    If we convert the floating number to integer it will stay settle with one value. Then this will be equivalent to commercial weighing scales
    Also constant decrease is due to continuous average which leads to not to get settle in one value.
    Good experiment. Nice explanation

  • @campbellmorrison8540
    @campbellmorrison8540 2 ปีที่แล้ว

    Excellent info, I picked up one of these and controller board from a coffee grinder and was wondering how I could make it work, I'll have a closer look at the board and see if it looks like this type of interface, hope so

  • @robmckennie4203
    @robmckennie4203 5 ปีที่แล้ว

    whereabouts you put the force on the load cell shouldn't matter too much, as the flexture is designed to keep the 2 ends parallel. it shouldn't matter where you apply the force, the amount of translation will be very close to the same

    • @iforce2d
      @iforce2d  5 ปีที่แล้ว

      Depends how accurate you want to be I suppose - "very close to the same" is not the same as "the same". If the goal is to measure something accurately you'd want to place the load where the calibration load was placed.

  • @peterdlynes
    @peterdlynes 2 ปีที่แล้ว

    I highly recommend the Spark Fun Qwiic Scale - NAU7802 SEN-15242 as a logical progression of this project.

  • @TannerNetterville
    @TannerNetterville 7 ปีที่แล้ว

    Also the load cell seems to read very high values for the first 2 or 3 cycles. Quick fix is to skip the first N read values. Better fix is to take a running average of N values. You'll probably want to take the running average anyways while measuring actual thrust.

  • @46449771
    @46449771 8 ปีที่แล้ว +3

    Oh yes!!! I've pondered over making a prop thrust test dyno giving graphable results, but have not had the motivation :P
    Can't wait to see this built! :)

  • @billlee2255
    @billlee2255 8 ปีที่แล้ว

    Pretty stable output, however the deviation of sensor output always cause the offset and coefficient need to be calibrated within the program automatically, and the temperature is also a headache factor need to deal with.

  • @pikejuan
    @pikejuan 8 ปีที่แล้ว +1

    this is a cool little vid since im trying to throw together a cheap piece of kit to test strain gauges.
    try taking the raw data [83346720 etc] into a string, then knocking off the last 2 or 3 numbers for a more accurate and less 'bouncy' reading, yours doesnt need to be accurate down to 0.00000001

  • @sleeplessNerd
    @sleeplessNerd 8 ปีที่แล้ว

    The counting down probably stems from casting the value to long (var) each step and loosing the decimal digits since they are cut off when casting, not rounded.

    • @iforce2d
      @iforce2d  8 ปีที่แล้ว

      But the raw values are going down too. Besides, truncating a value doesn't somehow make it go down and down. For example, if we truncate 12.3 we get 12, but we don't get 11 unless the input value goes below 12 right? So for the truncated value to keep going down the input value must be going down.

  • @tristunalekzander5608
    @tristunalekzander5608 5 ปีที่แล้ว

    You shouldn't average it, especially if you are measuring and recording thrust over time. Particularly with rockets, it is useful to know how fast the thrust was applied and the exact burn time.

    • @iforce2d
      @iforce2d  5 ปีที่แล้ว +1

      I think I was smoothing, not averaging (more emphasis on recent values). The goal was to get the value to settle down a bit, when measuring a constant load, not really the same as measuring total load over time.

    • @tristunalekzander5608
      @tristunalekzander5608 5 ปีที่แล้ว

      @@iforce2d Well regardless of what it's called, essentially there is a delay between the force being applied and the output, which means if you were measuring the thrust of a solid rocket motor over time and recording it in graph form, it would show that your thrust was applied much more slowly than it actually was and had a longer burn time than it actually did. Also, say for instance there was a fraction of a second where it peaked in thrust far above the average, the graph would show that peak being much lower than it actually was.
      I guess with anything else it's fine, which is what you've intended it to be for anyway. But since I am watching this video to measure my homemade rocket motors, I just wanted to point out why someone like me wouldn't want to do that. Great video! Subbed :)
      EDIT: btw I'm using the 50kg load cell.

    • @tristunalekzander5608
      @tristunalekzander5608 5 ปีที่แล้ว

      @@iforce2d NVM really, mine just came in the mail and I can see that even without smoothing there is a delay but whatever lol at least I'll get an approximate thrust reading. Anyway, with 50KG, a little fluctuation within 1 gram is fine. I re watched your video to set it up, thanks again!

  • @conductiveinkalternative918
    @conductiveinkalternative918 3 ปีที่แล้ว

    Thank you so much . You saved me a lot of time I bought the same amplifier and was not working with sparkfun's libraries.

    • @Engine-Nyandu
      @Engine-Nyandu 27 วันที่ผ่านมา

      if i may ask, is there a possibility that different libraries of the amplifier may account for the issues with calibrating a loadcell? I've been held up with this section of my project that uses the hx711 amplifier for the loadcell and i've tried so many programs and libraries to calibrate my loadcell and absolutely none of them have worked for me, ive given gone to an extent of buying new loadcells and new hx711 amplifiers, still none work

  • @hoggif
    @hoggif 8 ปีที่แล้ว

    Constant changing of value is perhaps due to rounding errors? When you get some errors in every cycle, it will all add up..

    • @iforce2d
      @iforce2d  8 ปีที่แล้ว

      +hoggif it seems to be related to temperature www.iforce2d.net/loadCellGraph.html

  • @SatyajitRoy2048
    @SatyajitRoy2048 8 ปีที่แล้ว

    Moving average would give you better result I think. 5 period or 10 period moving average will stabilize the result quite nicely. We look forward to your future videos on this topic.

    • @iforce2d
      @iforce2d  8 ปีที่แล้ว +1

      +Satyajit Roy well that (0.5*old + 0.5*new) is pretty much a moving average

  • @fg87fgd
    @fg87fgd 7 ปีที่แล้ว

    I would suggest a combination of sliding average and rounding (i.e. smoothening/dampening). like in my example written for a slide pot:
    const float roundingDivisor = 100.; // two digits..
    const int weightCurrentSliderValue = 1;
    const int weightlastSliderValue = 1;
    const int weightTotal = weightCurrentSliderValue + weightlastSliderValue;
    (...)
    // smoothen
    currentSliderValue = (sliderValue * weightCurrentSliderValue + lastSliderValue * weightlastSliderValue) / weightTotal;
    // round
    currentSliderValue = round(currentSliderValue / roundingDivisor) * roundingDivisor;
    // save current value
    lastSliderValue = currentSliderValue;

  • @atsa1
    @atsa1 8 ปีที่แล้ว

    I think the constant drop of numbers in long term is due temperature. Do be more accurate you might add a temperature sensor to measure load cells temperature and adjust limits as needed. Since i ordered same parts and try to build one myself as well i add temperature sensor and implement it into code. 30days and counting...

    • @maurianaya571
      @maurianaya571 8 ปีที่แล้ว

      hey guy, im really interested about the temperature compensation when using load cell. Can you give me a hand please?

  • @mistercohaagen
    @mistercohaagen 8 ปีที่แล้ว

    IMPEDB - Internet Motor / Prop / ESC / Database. Automated testing, submission and correlation with inexpensive open source standardized hardware and code. This doesn't exist yet, but it needs to. Manufactures will finally have a standard to compete with so efficiency and consistency can be improved. We've all bought a bunch of weird combos trying to get an edge... maybe now with some standardized data we can make intelligent purchase decisions based on science instead of guessing or taking specs for granted. Needs environmental monitoring, and part temperature logging & safety system.

    • @iforce2d
      @iforce2d  8 ปีที่แล้ว +1

      +mistercohaagen yes, that would be neat

  • @pfsmith007
    @pfsmith007 7 ปีที่แล้ว

    The sensor in the loadcell is a wheat stone bridge / strain gage.

  • @3rd_Millennium_Engineering
    @3rd_Millennium_Engineering 3 ปีที่แล้ว

    Is there any way you could do a small number for averaging say, 10-sampling?
    Also, humidity and temperature DOES play a part but shouldn't mess with this particular experiment at the moment. I am just learning and have not yet constructed my test stand for rocket motor testing.

  • @magdanoz88
    @magdanoz88 8 ปีที่แล้ว

    Why you didn't use the sparkfun's calibration routine? It's clever - you are dumping the value until correct weight. After that - it's really easy with "#define calibration_factor" or something.

    • @iforce2d
      @iforce2d  8 ปีที่แล้ว

      Same reason I do a lot of things that are unnecessary. Because I wanted to make my own and understand it.

    • @magdanoz88
      @magdanoz88 8 ปีที่แล้ว

      Great work! :)

  • @fawwaza8662
    @fawwaza8662 2 ปีที่แล้ว

    You’re getting inconsistent zeros because the weight of the free end of the unsupported aluminum is causing it to deflect and produce a tiny voltage difference

  • @jefferyhill4857
    @jefferyhill4857 5 ปีที่แล้ว

    That gooey stuff is the resistor. piezoelectric compound. Cool stuff.

    • @antuans1473
      @antuans1473 5 ปีที่แล้ว

      The gooey is actually just to protect the strain gauges and the wires under it, and the working principle of strain gauges changing resistance is called "the piezoresistive effect"

  • @Javii96
    @Javii96 7 ปีที่แล้ว

    thanks for sharing. i am building an arduino coin counter based on weight and I surpsrisingly had a difficult time figuring out how i was gunna code the load cell but this video made me realise it should be pretty easy. i bought a 10 dollar scale on amazon made by american weigh scales. since i wanted to have a platform to hack up rather than build my own tray for the load cell and everything.

  • @ismailal-ali6797
    @ismailal-ali6797 5 ปีที่แล้ว +1

    Very nice work and tutorial on load-cells. I admire your work. I would program it a bit different if was in your place. I would store the measurements in an array of size 100 or 1000, then print the average. The way currently it's done, it takes the first measurement with the heights weight, and the more your code runs, the less weight it gives to later measurements. Imagine if the first measurement was terrible, it would take a VERY long time to remove the noise from the first measurement(s). You can increase the array size if you want a less noisy average. Alternatively, you could use a low-pass filter implementation, with a long time constant. Then take the measurement after at least 5x the time constant you chose. Very nice video though! Keep it up.

    • @iforce2d
      @iforce2d  5 ปีที่แล้ว

      If you're talking about 11:48 it gives equal weight to all values ever seen, which is what you want when measuring a value known to be unchanging, like when you're calibrating. When measuring a value that may be changing, you want something like at 18:22 .
      But yes, a moving average is the best - I just didn't want to make the code longer with extra details not related to a basic intro about load cells.

  • @MishoIV
    @MishoIV 8 ปีที่แล้ว

    One month ago I got the same idea. I ordered 2kg load cell from ebay, but it didn't arrive yet. You will be attaching motor directly? I plan to build L shape thing from aluminium square tubes and attach motor on one side and load cell on other side. I also plan to have more sensors as RPM and wattmeter. It should have automated mode too.

  • @lynnjefflong2396
    @lynnjefflong2396 2 ปีที่แล้ว

    Learned a lot. Thank you for your video!

  • @ismailawasiu2007
    @ismailawasiu2007 3 ปีที่แล้ว

    Heavy load fell on my scale and since then the scale stopped weighing.I checked all wire connection and no disconnection.Please ,how to repair load cell?

  • @Abdaleon
    @Abdaleon 5 ปีที่แล้ว

    Should calibration always be done with the load cell with nothing on it? If the cell has a tray attached, should the calibration be done with the final assembly? Thanks.

    • @iforce2d
      @iforce2d  5 ปีที่แล้ว +1

      It should be done with whatever you want to call 'zero'. If the weight of the tray should not be included in the final measurement, then calibrate with the tray on.

    • @Abdaleon
      @Abdaleon 5 ปีที่แล้ว

      @@iforce2d Thanks

  • @Relentless_lel
    @Relentless_lel 7 ปีที่แล้ว

    i think it tends to go down because you initialize val with 0 and then average with it.

    • @iforce2d
      @iforce2d  7 ปีที่แล้ว

      See the link in the description.

  • @minazulkhan8287
    @minazulkhan8287 4 ปีที่แล้ว

    best video on code explanation ..

  • @chinmaymule7315
    @chinmaymule7315 5 ปีที่แล้ว

    Thank you so much brother ..your Code solved my problem ...
    Previously the load cell was showing zero kg weight after Arduino reset. But your code solved that issue ..it shows Actual ( Current) value even after power off or Arduino reset... !! Thanks once again

  • @IbrahimM-jx5dg
    @IbrahimM-jx5dg 4 ปีที่แล้ว

    I have a pocket scale, which is showing only zero, though I am pushing weight, so I opened it, and found, it can only measure negative if I push up, Is there a way to fix?

  • @ollingpolling
    @ollingpolling 8 ปีที่แล้ว

    13:22 Have you tried using float for val as well. Maybe there is a rounding error that increases with count. Just a thought. Cheers

    • @iforce2d
      @iforce2d  8 ปีที่แล้ว

      +Øystein it seems to be related to temperature www.iforce2d.net/loadCellGraph.html

  • @sureshgandhi2026
    @sureshgandhi2026 4 ปีที่แล้ว +1

    This video is awesome. It really helped me to complete my arduino project

  • @johnnybuoy9551
    @johnnybuoy9551 3 ปีที่แล้ว

    I exactly followed what you did in the video. But I get a constant value on the serial monitor. The value is 16777215. I am confused what I did wrong. I have tried everything but nothing's working

    • @iforce2d
      @iforce2d  3 ปีที่แล้ว

      Sounds like a bad connection, or faulty hardware

  • @eugenechow2709
    @eugenechow2709 3 ปีที่แล้ว

    i dont know if my load cell is faulty or there is a loose wire but i cant get the system to read

  • @nealrobinson7054
    @nealrobinson7054 7 ปีที่แล้ว

    thanks for this video; I am thinking about making a Z axis touch off probe for my CNC, I think this will help me get started.

  • @josecastano4518
    @josecastano4518 7 ปีที่แล้ว +6

    Could you please tell me the time-step of this code? Since you didn´t put a delay()... What is the default time-step it prints a value. Thanks a lot. Great tutorial

    • @fusseldieb
      @fusseldieb 7 ปีที่แล้ว +1

      It simply prints as fast as the baud rate allows

  • @benstacy6226
    @benstacy6226 8 ปีที่แล้ว

    Thanks for sharing this video, it is a bit over my head with the programming, however, I enjoyed watching every minute.

  • @atakankuloglu4877
    @atakankuloglu4877 4 ปีที่แล้ว

    Hello!
    I am going to use 4 independent different weigh calculators in my project. Each one will be seperated from each other. Can I use these 4 Load cells with a single hx711?

    • @iforce2d
      @iforce2d  4 ปีที่แล้ว +1

      Nope. But I seem to recall the hx711 only costs like $2

  • @dtec30
    @dtec30 6 ปีที่แล้ว

    the change could be slight inaccuracies in the Wheatstone bridge

  • @MicroRCFiend
    @MicroRCFiend 8 ปีที่แล้ว

    I looked at these load cells a couple years ago when a friend wanted a Makiwara with a digital readout of force created. I got as far as finding the item and buying an arduino. That led to 3 failed projects past the flashy light hello world stuff.
    If I leave your videos on playlist while I sleep maybe it will slowly sink in.

  • @roidroid
    @roidroid 8 ปีที่แล้ว

    If your computer is gonna control the whole thing, you'll probably want to do Kalman filtering (on the PC side) yeah?

    • @iforce2d
      @iforce2d  8 ปีที่แล้ว

      +roidroid I'm not sure what it would apply to. Kalman filtering is useful where you have uncertainty in multiple sensors and there is a physical model that both should match with. A simple PD controller should be able do it fine.

    • @roidroid
      @roidroid 8 ปีที่แล้ว

      i learned something ++

  • @KaspersMC
    @KaspersMC 8 ปีที่แล้ว

    Hey about the drift you talk about, som of it is from the formal there dont work, as we believe
    val = ((count-1)/count) * val + (1/count) * 150; Serial.print(val); Serial.print('\t'); count++;
    val = ((count-1)/count) * val + (1/count) * 50; Serial.println(val); count++;
    150+50/2 = 100 and we get a number lower, down to 49 :)
    This one is just Slow, if the weight change, then it us about 17 measurement to get to the real number
    val = 0.5 * val + 0.5 * RawData; // take recent average
    i get the Average from the last 3, this work as good as if i use the last 4, and it is Fast :)
    val = (RawData+ last1 + last2) / 3; last2 = last1; last = RawData;

    • @iforce2d
      @iforce2d  8 ปีที่แล้ว

      +KaspersMC if you read the page I linked to in the description, you can see that there is drift even without using any formula.

  • @adfj2240
    @adfj2240 7 ปีที่แล้ว

    At the begging of the video you mentioned that you are doing this in order to control the thrust produced by a motor , can you please upload or send me the the whole procedure ?
    that will be appreciated thank you !

    • @iforce2d
      @iforce2d  7 ปีที่แล้ว

      github.com/iforce2d/thrustTester

  • @ebealienthy
    @ebealienthy 4 ปีที่แล้ว

    Hi, I have a little problem:
    I use Hx711 and Pro Micro, I try both the 4 wire cell, and also the 3-wire one with 2 resistors.
    But after using the test, which is fine, and running the scketch, the cells work fine, for 1 minute,
    then they go to "zero" and from there they don't move anymore.
    Even with DiView, I see it working, but for 2 minutes, and then they stop.
    Do you have solutions? Thanks for the reply.

  • @JulioCesar-ck2vh
    @JulioCesar-ck2vh 7 ปีที่แล้ว

    Thank you very much, thanks to your tutorial I was able to understand in a simple and precise way how to proceed to develop my scale. Keep it up.

  • @sunshinelabz
    @sunshinelabz 6 ปีที่แล้ว

    Thanks... rewinding back and forth some how got ours load cell working... :-)

    • @iforce2d
      @iforce2d  6 ปีที่แล้ว

      In the two years since this video was uploaded, I think its just you that's confused so far.

  • @tobortine
    @tobortine 8 ปีที่แล้ว

    That was excellent. Now I'm wondering how to adapt this for a cycling power meter.

  • @pargyropoulos
    @pargyropoulos 8 ปีที่แล้ว

    Nice video! I think it would be easier to just skip the 2 LSB's to achieve more stable readings.

  • @pfsmith007
    @pfsmith007 7 ปีที่แล้ว

    your method of averaging is pretty cool.

    • @iforce2d
      @iforce2d  7 ปีที่แล้ว

      It's ok if you want an average of every measurement ever taken. But if you want an average of only recent measurements, a moving average is better.

    • @pfsmith007
      @pfsmith007 7 ปีที่แล้ว

      I was impressed with you ability to pull that out of you head on the fly. I'm just starting the the hx711 and your posting is helpful. thanks

    • @iforce2d
      @iforce2d  7 ปีที่แล้ว

      Pretty sure I have used this method before, there may be a little acting involved here... :)

  • @tobuslieven
    @tobuslieven 5 ปีที่แล้ว

    That's brilliant. Great job!

  • @mayur27verma26
    @mayur27verma26 7 ปีที่แล้ว

    sir what is the smallest size of loadcell.??? i want to measure the force on the tool in cnc turning, for tha i need the smallest load cell

  • @FUKYFILM
    @FUKYFILM 7 ปีที่แล้ว

    Great video! You helped me to finish my arduino project! Thank you!

  • @JayShah-ok8fy
    @JayShah-ok8fy 8 ปีที่แล้ว

    that was excellent.......i have a problem in coding of wire......i don't have datasheet of my load cell ,,it has white ,black, grey and green wires.......what are the function of wires ?please help me

    • @iforce2d
      @iforce2d  8 ปีที่แล้ว

      I don't have all the knowledge of the world in my head. Is there some documentation for your particular load cell you can check? You could also just try connecting it in various ways, there is not much that can go wrong.

  • @michaelmooc
    @michaelmooc 7 ปีที่แล้ว +2

    anyway to stabilize my load cell readings? my load cell gives me data that has a 2000 difference (by just doing cell.read())
    I have installed it onto a wooden plank end, my arduino is kinda old, and I may not be the greatest at soldering.

  • @surayaakter9435
    @surayaakter9435 8 ปีที่แล้ว

    sir, i have a problem. i attested load cell on a wood as like your video but load cell does not pass the signal...what can i do?

  • @LifeBloodMarketing
    @LifeBloodMarketing 8 ปีที่แล้ว

    Found you video after taking apart a broken kitchen scale.

  • @MiniZooTube
    @MiniZooTube 8 ปีที่แล้ว

    could the reads be going to fast for the chip so it keeps dropping in numbers?

  • @PhilipStubbs
    @PhilipStubbs 8 ปีที่แล้ว

    Cool. Once you are done with this, next up would be a dynamic balancing rig. :-)

  • @gunglaksman
    @gunglaksman 8 ปีที่แล้ว

    hello there, great explanation. I saw a lot of tutorials using analog pin as an output, is there a difference between using digital or analog ? thanks

  • @stevendavid9430
    @stevendavid9430 6 ปีที่แล้ว

    Hi my scale keeps showing low batt although i have change to fresh batts...wat could be wrong,?

  • @blackbear92201
    @blackbear92201 5 ปีที่แล้ว

    Super helpful video - thanks for posting!

  • @kartalozturk9087
    @kartalozturk9087 7 ปีที่แล้ว

    Hello iforce2d. Firstly, that is a great work. I tried to set up your work. But I have a problem on calibration to load cell. I could not stabilize my value. There is a huge fluctuation. Espacially, last four digit always change. Could you you help me about that. Thank you.

    • @iforce2d
      @iforce2d  7 ปีที่แล้ว

      same for me isn't it? 8:18

    • @kartalozturk9087
      @kartalozturk9087 7 ปีที่แล้ว

      iforce2d iforce2d Yes, same like that and the values always decrease I want to stabilize like 12:36 but I could not do that.

  • @tomcowden739
    @tomcowden739 8 ปีที่แล้ว

    Hi iforce2d,
    I was interested in the rate of data acquisition for this setup. What portion of the code could be modified to increase the number of readings on the serial display per second?

  • @brianballewsr20
    @brianballewsr20 7 ปีที่แล้ว

    These are strain based load cells configured in a Wheatstone bridge circuit. Most likely the bridge completion resistors are built into the IC. Due the current flow through these gauges, they generate heat. You also have a "cheap" ADC I assume has an internally regulated power supply (to the Wheatstone bridge circuit) and amplifier. Amps can have both gain errors and drift errors associated with them.
    The main reasons I could see the value drifting is -
    1-temperature changes due to heat generation or changes in ambient conditions.
    2-voltage supplied to the gauges is drifting
    3-the amplifier is drifting
    A good DAQ card for these types of measurement (16 bit ADC with SW programmable amp and excitation voltage) can cost over $1k and is calibrated by a metrology lab every year.
    So for the price, I would say your doing pretty good.

  • @cesarfranklerpomadiego1042
    @cesarfranklerpomadiego1042 7 ปีที่แล้ว

    Sorry, what happened, if use input analog for DT, SCX? I'm confused , waited for you answer , please.

  • @ibycus314
    @ibycus314 5 ปีที่แล้ว

    What happens if you load it centrally, rather than off to one side like you do?

    • @ibycus314
      @ibycus314 5 ปีที่แล้ว

      justlookin59 I feel like you might be able to get some deformation when center loading...

  • @stevendavid9430
    @stevendavid9430 6 ปีที่แล้ว

    I hv a weighing scale n the display n other functs works... but no matter wat i put on it...the display stays at zero could my loadcell be faulty? How do i check if my load cell is faulty??

  • @belcowin
    @belcowin 7 ปีที่แล้ว

    if it up side down, what number should output? minus 100g?
    push down & pull up forces can be measured with same circuit?

    • @calvin8199
      @calvin8199 7 ปีที่แล้ว

      Seungho Lee They're usually marked to be used in one direction, but in reality, yes, albeit the calibration probably won't be correct when used in the opposite direction.

  • @divyakshaprabhu7238
    @divyakshaprabhu7238 6 ปีที่แล้ว

    sir, i did same as u shown in above video . but am getting output 0 for different load.. any suggestion plz..

  • @santiagovelastegui2203
    @santiagovelastegui2203 7 ปีที่แล้ว

    Hi! thank you for the video. Just one question, how can I register o save the load cell data to later make a graph?

  • @kellymcguire9424
    @kellymcguire9424 8 ปีที่แล้ว

    Do you have a link for the Scales that you bought?? (i.e. @20:30)
    6 Bucks seems like a great price!!

    • @iforce2d
      @iforce2d  8 ปีที่แล้ว

      +Kelly McGuire This one: goo.gl/BSXsnl
      Looks like I must have used some of my points to get it down to $6

    • @kellymcguire9424
      @kellymcguire9424 8 ปีที่แล้ว

      Thanks

  • @melvinm1634
    @melvinm1634 5 ปีที่แล้ว

    Are load cells very susceptible to vibrations?

  • @kenswataru8075
    @kenswataru8075 8 ปีที่แล้ว

    do you got any guide for rasppberrypi.. im doing school project using the 1kg loadcell with rpi3 but not doing much because hard to find any references that using rpi..

    • @iforce2d
      @iforce2d  8 ปีที่แล้ว

      +John Tamiya no, I've never used a pi. It looks really easy to port though, it doesn't even require i2c or anything like that, just one clock pin and one data pin, see the HX711.cpp file.

  • @nallaparajuamareshvarma8471
    @nallaparajuamareshvarma8471 4 ปีที่แล้ว

    Can just tell the load cell specification like 1kg and how are u getting accurate reading

  • @markmaker2488
    @markmaker2488 3 ปีที่แล้ว

    Great tutorial!

  • @themanthis837
    @themanthis837 8 ปีที่แล้ว

    I have similar load cell, but i do not have an amplifier. I tried to hook up 5V to RED & BLACK wires and then measured the voltage with multi-meter across Red & Green wires & resistance between RED & GREEN wires. The values are not changing if i press the wage. So do you measure the actual voltage? How small is it & how to detect it?
    If you know any material I can read on how to detect the changes please let me know.

    • @iforce2d
      @iforce2d  8 ปีที่แล้ว

      I'm afraid I don't really know what kind of voltage we're talking here. I just assumed because an amplifier is need that the voltage change is really really small. Why not just get an amplifier, they only cost like a dollar or something.

    • @themanthis837
      @themanthis837 8 ปีที่แล้ว

      Got an amplifier & hooked up, result I get is 2V from 0V on the green/white wires, but when i apply pressure to the sensor the voltage is not changing. I will make the schematic & show you. Maybe Im wiring up something wrongly.

    • @themanthis837
      @themanthis837 8 ปีที่แล้ว

      When i was measuring the resistance I applied pressure on the sensor, the multi-meter did not show change in resistance in any of those measurements. Its a normal kitchen wage, It is in working condition. Is it wired properly? If yes, then how comes after the amp addition I get constant 1v +.. voltage on the green & white wire even tho im applying force on the sensor?
      www.upload.ee/image/5992612/pain_skeem.png
      www.upload.ee/image/5992605/IMG_1882.JPG

    • @odissey2
      @odissey2 5 ปีที่แล้ว

      The signal amplitude between white and green wires is on order of 100uV. Resolution of the average multimeter is not enough to see such small change.

  • @timtom3403
    @timtom3403 5 ปีที่แล้ว

    i have a 6 kg load cell
    if i put a weight of say 1 gram
    will it show the accurate result

    • @iforce2d
      @iforce2d  5 ปีที่แล้ว

      No way. You can see in the video the reading is bouncing around even more than that.

  • @DownhillAllTheWay
    @DownhillAllTheWay 6 ปีที่แล้ว

    Well, well - the reason I'm here is exactly the same interest. I'm also thinking of making a rig to measure thrust of various electric motors with various propellers. I'm also intending to couple it with an optical rev counter and ammeter. The Turnigy setup looks quite nice (I hadn't seen it before), but I want mine to do its test on model aircraft rather than on detached motors, so the force-measuring rig will have to be different.
    I see you originally posted this in March 2016. Did you complete the experiment, and what results have you had? Did you ever make any sort of temperature compensation, or did you simply decide not to stand a coffee too close to it? Another question - considering the jitter in the output figures, did you have the impression that a 24-bit A-D was overkill? Judging only from your video, It doesn't appear to have a sufficiently fine resolution. 24 bits is a count of 16.7 million! I had thought of just using the A-D converter in the Arduino.

    • @iforce2d
      @iforce2d  6 ปีที่แล้ว

      Here's my thrust tester main video and docs:
      th-cam.com/video/PfVJmci9IQQ/w-d-xo.html
      github.com/iforce2d/thrustTester
      I was looking for a resolution of at worst 10g, ideally 1g. I think it's ok for that level of usage.

    • @DownhillAllTheWay
      @DownhillAllTheWay 6 ปีที่แล้ว

      iforce2d - Thanks for the URLs. Haven't read them yet, but I will.
      With reference to the resolution, it's about what I thought. Dividing 5Kg by 2^24 gives a resolution of 0.3 milligrams. You can get 5Kg in 1g increments with 13 bits.

    • @iforce2d
      @iforce2d  6 ปีที่แล้ว

      5kg is just the rating of that aluminium bar - the range within which it will bend enough without breaking. The ADC is measuring a tiny tiny change in voltage, caused by the tiny tiny change in resistance when the bar bends. It knows nothing about a 5kg range. Apparently even when amplified that tiny change is still so tiny that the 10 bit ADC of the arduino is not sensitive enough to be useful, otherwise I'm sure nobody would bother with those load amplifier things at all.
      en.wikipedia.org/wiki/Wheatstone_bridge

  • @budinkomengstudio6197
    @budinkomengstudio6197 8 ปีที่แล้ว

    hi captain... is this coding suitable for all weight?? what i mean is, if i dont use 100g weight and i use 450g weight, is this coding still can function??

    • @iforce2d
      @iforce2d  8 ปีที่แล้ว

      of course, why not? Just multiply the number by 4.5

  • @niklaswikstrom9132
    @niklaswikstrom9132 8 ปีที่แล้ว

    Nice vid. I have been thinking of this to. Would be cool if you visualize the punch out speed with box2d with a small multirotor (not only quads) scaled to a human or trees or house standing next to it.
    Could maybe even set the weight, size, cell count and prop of the multirotor.
    And overkill: simulate throttle realtime from radio.
    Ooh and megaoverkill: online db of motors so you can test the feel of diffrent motors with your own multirotor.
    Ok, only in 2D.. But I would play with it. :)..
    Anyways keep the good vids coming. Nice work!

  • @schlummerkatze795
    @schlummerkatze795 6 ปีที่แล้ว

    Thank you! This video has been very helpful!

  • @timtom3403
    @timtom3403 5 ปีที่แล้ว

    what is the least weight in grams it can measure

  • @TopOneTime
    @TopOneTime 3 ปีที่แล้ว

    i dont know why but when i verify the code that you used in your video its just wont work i get something wrong at ( HX711 cell(2,3) ) and cell.read . Any ideas how to solve this?
    thank you

    • @iforce2d
      @iforce2d  3 ปีที่แล้ว

      No, not without some kind of specific error message. You have the HX711 library available right? 5:40

  • @cesarnoguera3168
    @cesarnoguera3168 4 ปีที่แล้ว

    hello can you help me? how could I use three load cells with the multi.h

  • @ruhulmashbu4751
    @ruhulmashbu4751 8 ปีที่แล้ว

    What's the name of the board ?? The one where the load cell as well as the hx711 are kept..??

    • @iforce2d
      @iforce2d  8 ปีที่แล้ว +2

      I don't understand. You mean the piece of wood they are attached to?? I found it on the floor in my shed.

    • @ruhulmashbu4751
      @ruhulmashbu4751 8 ปีที่แล้ว

      I tried the exact same procedure with your code... But only twice it worked.. Other time it doesn't read anything at all... just stays the same way... can you recommend any solutions?

  • @mingchengzhang5324
    @mingchengzhang5324 7 ปีที่แล้ว

    Hi, thank for sharing the video. Just one question, why my output value stucks at 16777215?

    • @mingchengzhang5324
      @mingchengzhang5324 7 ปีที่แล้ว

      And how to fix it?

    • @yashchiman6465
      @yashchiman6465 ปีที่แล้ว

      It's bcoz of 24 bit adc, output range is from 0 to 2^24-1, ie 0 to 16777215, your kept weight is max, or greater than maximum load