I'm looking for cheaper ways to measure current in a load switched by optoisolated TRIACs, without losing galvanic isolation (no breakdown below a couple kV) between the microcontroller and the load. The rms current can be anything between 100mA and 5A. A Hall effect sensor would work (say, ACS722), but it would cost me around $5.

Here's what I've got so far:

  • Regular optocouplers (eg 4n25, LOC110): bad choice because I can't just put them in series since my currents are too high. Maybe there is some way to bias the LED and use it in parallel with a shunt resistor? Would be dirt cheap if it worked.
  • Shunt resistor + isolation amplifier (eg TLP7820, LIA130S, AMC1100, ADUM3190): with these I can amplify the voltage on a shunt resistor (say, 0.05R). Problem is, I now need a low voltage supply on the mains side. Also, isolation amplifiers aren't much cheaper than Hall sensors. Isolation can be achieved by optical coupling, thick gates (eg AMC1100) or even magnetic isolation (ADUM3190), but they all seem pretty much the same to me.
  • Current transformers (eg 56200C): these seem like the ideal solution, but everything I find seems designed for SMPSs that operate way above 60Hz. I'm not too sure how to get them or to specify them. The examples I find at digital retailers are all ferrite cores and don't even bother to specify primary inductance or saturation current. Shouldn't I use silicon steel cores instead of ferrite? Should I buy the cores and have someone wind them in bulk? Anyway, it should cost me about $3.50 assuming I get the 56200C, make a primary with 2 turns (that's 7.2µH on the primary I guess?) and amplify the output of the secondary with a cheapo opamp.
  • \$\begingroup\$ You can get low-frequency current transformers fairly easily. This one should suit your needs, for example: digikey.com/product-detail/en/cr-magnetics-inc/CR3111-3000/… \$\endgroup\$
    – Hearth
    May 9 '18 at 14:52
  • \$\begingroup\$ Though if $5 is too expensive for you, a current transformer isn't the way to go, I suppose. \$\endgroup\$
    – Hearth
    May 9 '18 at 14:54
  • 1
    \$\begingroup\$ Look for 'ferrite ring cores', they are fairly cheap, for example. You could wind by hand perhaps 10 or several 10s of turns of thin enamelled copper as a secondary, and the hole is large enough to pass an insulated 5A capable primary wire through as well, which gives you the isolation. If you're happy to amplify the low output voltage, then you're done. That specific 4c65 is probably not the best grade, you want higher ur ideally, but it shows you where to start. \$\endgroup\$
    – Neil_UK
    May 9 '18 at 15:12
  • 1
    \$\begingroup\$ Yes, T38 ferrite is way better for a current transformer, for example. Cheaper too. ur = 10k. Though according to EPCOS, T36 is their grade for current transformers. \$\endgroup\$
    – Neil_UK
    May 9 '18 at 15:27
  • 2
    \$\begingroup\$ answer to question b: in a puddle of electronics grade RTV, or secured to the PCB with a nylon or SS screw, or TyRap. \$\endgroup\$
    – AlmostDone
    May 9 '18 at 16:20

Depending on the cost to you of winding thin enamelled copper wire through a ferrite toroid, a practical answer may be to wind your own toroid. This is of course simply making what manufacturers sell as 'current transformers'. If you can save costs by going for only a few turns of secondary, or a small ring core, then you win.

There are two ways you can use a toroid wound like this on a current-carrying cable to detect or measure the current. The first is as a current transformer, the second is a current-driven voltage transformer. They behave quite differently.

In a current transformer, you short circuit the secondary, or at least load with a very low value resistor, the burden resistor. This keeps the voltage down, and the secondary current that flows cancels most of the primary current and so prevents the core from saturating. A 'typical' core with a decent volume secondary that's near-shorted is unlikely to saturate. The transfer gain will be consistent from part to part and with temperature, being dominated by the turns ratio. No particular permeability is required, only that it be 'high'. Cores are readily available with relative permeability from 2k to 10k.

The core flux can be calculated as follows. Calculate the secondary current from the turns ratio. Calculate the secondary voltage from this and the total secondary resistance, winding + burden resistor. Calculate the transformer volts per turn required. Now calculate the rate of change of flux (B field times core cross section) required to generate that volts per turn, and convert that to peak flux. Note this calculation does not require the core length or the permeability.

In a current-driven voltage transformer, you leave the secondary open circuit, and detect the voltage. There is no secondary current to counteract the primary current, and so a low core permeability must be used to limit the flux to below saturation. The transfer gain will depend on the core permeability, which will vary by part and with temperature. This is why measurement transformers are usually operated in current mode. This could also be regarded as a cored Rogowski Coil.

To calculate the core flux we divide the peak primary current by the core magnetic length to give us the peak H field. This is multiplied by permeability to give us the peak flux density. The core relative permeability will typically need to be low, in the low 100s, maybe even high 10s. These cores are advertised as being suitable for inductors.

Of course with both modes, if you only need detection of the primary current, rather than linear measurement, then it doesn't matter whether the core saturates or not.

The achievable cost depends critically on your quantities. If you want 1-10, you can wind them yourself, while watching TV. If you want 100, you and your friends can make them. If you want 1,000,000, then you can commission a custom part from a toroid winding company, value engineered to your specification. If you want 1,000 to 100,000 then you're in trouble, a custom part is out of the question. The best you can do is try to get a decent quantity deal on a part that's already being made.


Go on Aliexpress and buy some cheap current transformers from less than $1 up. That is your easiest choice.

If you know the current is sinusoidal, then you can run an opto from a comparator in the current sensor. When the current is low, the duty cycle will be low, when the current is high the duty cycle will approach 100%. Current may be calculated.

You might be able to do the same thing using a sensitive magnetic (hall) switch magnetically coupled to the load current (above pcb track, wrapped in coil etc.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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