So I have a feeds container and I put a hole in the bottom. Using my servo, I open and close
the hole so that it would drain on my load cell.
My problem is that I am not getting the desired weight. The load cell measures different values from what I am expecting.
The reason is maybe that my servo when opened may not allow a consistent flow of feeds.
I already tried to make some adjustment on the code but the weights difference are in random. For example I am expecting 100 grams, but sometimes I am getting 80, or 65 or 110.
Can you please give me some advice on how to achieve this?
I know there could be some mechanical issue that I could not figure out. I am also not a Mechanical Engineer and just some weekend DIYer so I am seeking some advice.
If speed is not vital, try say 10 immediate repetitions of 10 gms. If delivery really is close to ‘random’, that should improve accuracy. Easy to code too.
Interesting, I haven't thought of this. I could not perfect the draining of the feeds because it depends on the consistency of the feeds.
So, maybe what you are suggesting is to...
move the servo a little and drain the feeds
measure the weight and check if it is closer to the target
if not, open the servo again and calculate how much time I should make it open
if within the desired range, no more servo movement.
Note, I am not targetting super perfect weight but somehow I need it to be closer to my desired weight as I do not want my chickens to be underfed or overfed.
Is my understanding correct of what you are suggesting. Thanks by the way.
Any delivery system would benefit from feedback in the loop.
Weighing small additions should work well, you just have to let the mass on the pan settle - you can't weigh it as it is accumulating.
Adding the feedback could be a second phase to be undertaken if it proves necessary. We tracked the food auger for the cat and it was considered good enough at dispensing 9 to 11 grams at a time and as I said better when several spins were looked at.
I am not aruging against feedback however you can do it, just saying that it would make sense to get a version 0.0 working, you'll be dragged across a few learning curves and ditches as it is.
FWIW I've seen mechanical means of weighing and dumping an amount of <whatever>.
See:
Filling the reservoir is not critical at all. Filling the bucket might need more care. The Arduino could detect the delivery of a bucket load and turn off the bucket filling.
That's good plan.
If your setup doesn't have auger and is just gravity fed, the time needed depends on fill level of your container.
So set the initial opening time to for example 70%, then measure weight, calculate next opening time based on the previous feed rate.
Something like that. There would be various possible approaches to implementation. The main challenge is the deadtime (delay) between the feed addition and the availability of an accurate measurement. But presumably you are not in a hurry, and can wait out this delay.
Haha, like the guy in the video I have personal experience with the "Sandy Andy" mechanism and fond memories of building one or more accurately helping my father help me build one...