Basic scales, tested and working

Got the 12-bit ADC wired in this morning. Here’s a schematic

INA125 and MCP3202

INA125 and MCP3202

VS is the voltage in from the scale’s PSU. It’s nominally 7.5V but anything in the range 6.5V to 12V should be just fine and not kill anything.

Because the input voltage to the INA125 is more than 6.25V, I can use the 5V reference voltage from pin 15, which connects to pin 4 and is used to excite the load cell. Since we want to measure this accurately, the same VREF is used both as power and reference voltage by the MCP3202. I’m hoping that this will help with accuracy.

A common mistake I’ve seen is to connect pin 15, pin 4 and the 5V output from an Arduino. Mine seem to put out about 4.8V when they’re USB powered, they’re not even close to the stable 4.98V from the INA125 even if you feed them from a decent 7.5V PSU (say).

S+ and S- are the return from the load cell, these are amplified and passed on to the channel 0 input of the MCP3202. Since pin 5 of the INA125 is pulled to GND the output is given by Gain x (S+ – S-). It will saturate at VREF so the MCP3202 reads 0-4095.

I then decided to cobble it all together and show the 12-bit ADC value on the display.



The white display isn’t the easiest to see on camera. Here’s what happened when I chucked 2.985kg of crap on there:

With added crap!

With added crap!

So it’s gone from 557 to 1430. All fits with the calibration I did – but then it would. I’m going to have to get an accurate weight for a known chunky object and use that value. The other digital scales we have only work in multiples of 5g.

Here’s the display driver circuit

4 digit, 7 segment & MAX7219

4 digit, 7 segment & MAX7219

This circuit will be powered by +5V from the Arduino Pro Mini. I’ve tried to use consistent network names so SPICLK, SPIMOSI, SPIMISO and GND mean the same thing everywhere. There are 2 SPI devices so we need LEDSEL and ADCSEL to talk to each one over the same bus.

The software needs a little work but the basics of it are there. Next job is to analyze the push-on/push-off circuit to see if I can choose resistor values that actually work with the transistors I have.

Another option is to use a 555 timer as that’s a really simple on/off circuit and should work straight off the bat. If I can’t get the resistors sorted (or I run out of “arsed”) then I may well do that. Using a 555 timer isn’t great for battery life, but I’m not using batteries with these scales any more.

Oh, I forgot, there’s a crap video too…

[embedplusvideo height=”480″ width=”625″ editlink=”” standard=”″ vars=”ytid=HBo3a9YxP-o&width=625&height=480&start=&stop=&rs=w&hd=0&autoplay=0&react=0&chapters=&notes=” id=”ep5482″ /]


This entry was posted in Uncategorized. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *