6
\$\begingroup\$

I have a vintage 0-30A DC ammeter (picture below) and I want it to display my PC's CPU usage for a DIY project. After doing a bunch of research, here's how I would do it:

The PC will send CPU usage data to an Arduino, which will then regulate the voltage (through pulse width modulation PWM) based on the CPU usage data. My understanding is that the Arduino can regulate voltage between 0-5 V, and I will write a program to determine the right amount of voltage to swing the needle to where I need it on the ammeter. So I need to find a way to swing the needle to 30 A on the ammeter (which reflects 100% CPU utilisation) with 5 V power.

With my very limited knowledge in electronics, I guess I need to use the good ol' Ohm's law here:

resistance = voltage/current = 5 V/30 A = 167 mΩ

My question is: Do I just put a 167 mΩ resistor in series with the ammeter and Arduino and it'll generate a 30 A current to move the needle on the ammeter to the maximum? And a 30 A current sounds high. Does that mean I'll have to use wires with the right "thickness"?

Enter image description here

Enter image description here

\$\endgroup\$
9
  • 14
    \$\begingroup\$ Do you really want to waste 150 W just for displaying your CPU usage? \$\endgroup\$
    – Arsenal
    Jul 29, 2022 at 6:38
  • 14
    \$\begingroup\$ I'd remove the shunt resistor (which is in parallel with the coil) from the ammeter. That way it'll become much more sensitive (sensitive enough that you can probably drive it directly with the arduino). \$\endgroup\$
    – jms
    Jul 29, 2022 at 6:47
  • 10
    \$\begingroup\$ There will be a large shunt resistor inside the ammeter. Remove that, then see how much current is required for full scale deflection. \$\endgroup\$
    – HandyHowie
    Jul 29, 2022 at 6:48
  • 2
    \$\begingroup\$ @Arsenal haha the thing we do for love. Jokes aside, thank you for pointing that out, I didn't think of the wattage. \$\endgroup\$
    – foo
    Jul 29, 2022 at 7:28
  • 1
    \$\begingroup\$ @Jasen yes the horseshoe-shaped thingy is magnetic. I think it's more like a moving-coil ammeter. But anw I'm very inexperienced so I might be wrong. \$\endgroup\$
    – foo
    Jul 29, 2022 at 10:21

5 Answers 5

8
\$\begingroup\$

It is presumed that there is no external shunt across the meter terminals.

On going through the second photograph, it appears that there is an internal shunt in the form of a brass strip bridging the meter terminals.

The same may be confirmed using an analog multimeter.

enter image description here

The multimeter shown has four resistance ranges with multipliers (x 1 Ω), (x 10 Ω), (x 100 Ω) and (x 1 kΩ) and test currents of 150 mA, 15 mA, 1.5 mA and 150 μA respectively.

To start with, the resistance across the meter terminals is to be measured in the (x 1 kΩ) range and then progressively downwards, if required. This is to prevent a higher test current swinging the pointer beyond full scale and damaging it.

A very low resistance reading confirms the presence of an internal shunt.

A finite higher reading confirms the absence of one. The meter resistance is to be noted. The current, for full scale deflection of the meter, may be estimated from the deflection of the meter and the test current.

In case the meter has an internal shunt, the same is to be removed and the above readings taken.

Should the current for full scale deflection be 'I' mA and the meter resistance be 'r' Ω, then the value of the resistance 'R' (to be added in series with the meter for 5 V full scale deflection) is given by the equation

R = [(5 * 1000) / I] - r.

\$\endgroup\$
9
  • \$\begingroup\$ I literally just read your answer in another thread. Amazing answer as usual. I just measured the resistance like you said. It reads 0.3Ω so I guess there is an internal shunt. I'll try to find a way to remove it. Thank you! \$\endgroup\$
    – foo
    Jul 29, 2022 at 8:38
  • 5
    \$\begingroup\$ Yes, the shunt will often not look like a typical resistor. A metal strip is more typical. They are often calibrated in the factory by shaving the strip until it has the exact resistance. \$\endgroup\$
    – Mattman944
    Jul 29, 2022 at 8:46
  • 1
    \$\begingroup\$ that's very informative @Mattman944. I was wondering how they could achieve the desired resistance with just a piece of metal. \$\endgroup\$
    – foo
    Jul 29, 2022 at 8:47
  • \$\begingroup\$ My pleasure, Foo! \$\endgroup\$
    – vu2nan
    Jul 29, 2022 at 9:54
  • 1
    \$\begingroup\$ @foo For bonus points, take out the paper card and print a similar one with a more accurate label... not CPU LOAD, that's too short and boring... how about CORE THROUGHPUT (%) \$\endgroup\$
    – user253751
    Jul 29, 2022 at 17:02
9
\$\begingroup\$

What you have is a Weston Elelctrical Instrument Corp. Model 304.

Given that this model is seen (on the internet) with many different scales, it's likely a sensitive movement that is used with an external shunt, now I'm going to guess it's a 50uA movement as that's a fairly common rating.

Put 10 kiloohms in series with it and connect 5V and see what happens.

\$\endgroup\$
1
  • \$\begingroup\$ From other answers and comments, it looks like a shunt external to the movement itself, but internal to the meter housing. \$\endgroup\$ Jul 30, 2022 at 21:41
6
\$\begingroup\$

You are thinking it too complex.

  1. You need to remove the shunt resistor (if at all present).

  2. You need to determine the resistance of the coil (by ohmmeter)

  3. You need to determine the voltage or the current for the full needle deflection. You need a few resistors (probably 100k, 10k, 1k) and a voltage source. Most of these things expect 50mV for full deflection. It may as well be some similar value like 10mV, 20mV or 100mV.

  4. Your Arduino approach is a gross overkill. What you need is an usb-controlled DAC or PWM.


Frame challenge: If you are brave, you can use the "PC speaker" output (modern motherboards still do have one) - it can do PWM or FM rather easy. Here, the only additional hardware you will need is a single resistor to match the 3.3V or 5V PWM output to whatever sensitivity your meter has.

\$\endgroup\$
5
  • \$\begingroup\$ that sounds like a nice approach. I've never heard of usb-controlled DAC before but will definitely look into it. \$\endgroup\$
    – foo
    Jul 30, 2022 at 1:00
  • 1
    \$\begingroup\$ #4 makes no sense. Grabbing a $1 Arduino clone from your parts bin and typing “analogWrite(Serial.read())” is by far the fastest way to get a “usb-controlled DAC”. In most cases you don’t need a real DC voltage, but if you do an RC filter solves that. Meanwhile some audio outputs are AC coupled so that won’t work. Also audio outputs are typically ~1V amplitude, not 3.3V or 5V \$\endgroup\$
    – Navin
    Jul 30, 2022 at 20:16
  • 1
    \$\begingroup\$ $1 Arduino clone is still as complex as any other Arduino. You need code to run on the Arduino and another code to run on the PC. \$\endgroup\$
    – fraxinus
    Jul 30, 2022 at 20:50
  • \$\begingroup\$ I've never heard of usb-controlled DAC before Any USB-based audio output device is one already. Grab the cheapest USB audio output dongle you can get. put a diode in series between the line output and the meter movement, done. Drive a square wave into the audio output, amplitude controls the meter deflection. The current shunt has to be removed. That's all. Doesn't get any simpler. \$\endgroup\$ Jul 31, 2022 at 5:18
  • \$\begingroup\$ @Kubahasn'tforgottenMonica audio devices tend to be dc-decoupled. \$\endgroup\$
    – fraxinus
    Jul 31, 2022 at 6:55
3
\$\begingroup\$

After looking at the second photo you have added, it looks like the shunt resistor that would be required for 30A FSD may have originally been external to the meter and that the meter really only really needs a few hundred uA for FSD.

You should test how many uA/mA are required to get full scale deflection of the meter using a low voltage power supply, a multimeter and a variable resistor or a selection of resistors in series.

You may find that the meter is usable for what you want and that you dont need to put 30A through it.

\$\endgroup\$
3
  • \$\begingroup\$ I just measured the resistance across the ammeter terminals. The result (0.3Ω) seems small so I guess the shunt was indeed external. I don't have a fancy power supply to play with so I could only try with a 9V battery; the ammeter read 1-1.5A. Not sure what to make of that I'll play around a bit more. \$\endgroup\$
    – foo
    Jul 29, 2022 at 8:31
  • 3
    \$\begingroup\$ Hi Foo, The result (0.3 Ω) confirms the presence of a shunt! \$\endgroup\$
    – vu2nan
    Jul 29, 2022 at 8:35
  • 1
    \$\begingroup\$ The shunt would be in parallel to the meter, and you would expect the shunt to have a low resistance. \$\endgroup\$
    – HandyHowie
    Jul 29, 2022 at 8:35
2
\$\begingroup\$

30A at 5V is 150W

To get 30A through a resistor at 5V you'll need to use V/I = R, so 167mΩ as you've got.

So you need a 150W, 167mΩ resistor. That will be hard to find and expensive. But possible. It will also be a significant heater.

The problem is you do not have a 30A source. You have an Arduino which can provide 10s of mA out of each pin (the datasheet will tell exsactly how much). So you're going to need a different current source. You could either build/get a current amplifer, which is possible via transistors etc. Or you could take the lot more practical idea and don't use a ameter for your scale. Find a volt meter. That will be a lot eaiser (and a lot less power hungry).

Alternatively you could use your Arduino to communicate to a controllable constant current source. These are usually used to drive LEDs or similar where you want to vary the brightness. There are quite a few LED back light driver ICs out there which will do what you want. Connecting them up is stright foward if you follow the data sheet. They will need a seperate power supply however. In theory you might get away with just driving the ammeter with one of them, but you'll probably need to put some sort of load in series to have a known votlage drop (I would suggest a set of LEDs) but details of that would depend on which current controller IC you are using.

Ammeters are designed to have as low resistance as possible, as they are measuring what flows through them. Voltmeters are the inverse, they have a high resistance. If you could find a 0-5V DC voltmeter you could plug that onto the output of your Arduino no problem.

\$\endgroup\$
2
  • \$\begingroup\$ Thank you. I've learned a lot from this answer. Looks like it'll be hard to get it done with this ammeter. I'll probably just find a vintage 5V voltmeter (I like the vintage look) but where's the fun in that :) Thanks again. \$\endgroup\$
    – foo
    Jul 29, 2022 at 7:22
  • \$\begingroup\$ By "mR" do you mean "mΩ"? \$\endgroup\$
    – Nayuki
    Jul 29, 2022 at 21:34

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.