OpenEnergyMonitor Community

CT Sensor, Arduino, and 110V (USA) mains

I have been looking at the guides for interfacing a CT sensor to an Arduino and I see that I need a handful of parts to use with my SCT-013-000.

  • My Arduino is a 5V version, not a 3.3V version
  • A Burden resistor @ 33 Ohms.
  • 2x 10K Ohm resisters
  • 10uF capacitor

My question is, since the guides seem to mostly be referring to 220V, and I have 110V, do any of the resistors or capacitor change in values to take into account the voltage difference? I am only interested in determining load (amps), not voltage for my setup.

I know it’s a “silly question” for engineers, but I’m not one…

Many thanks,

As you’re dealing with current, not voltage, the effect is only a second-order one, i.e. you might need larger c.t’s than our standard 100 A one (which generally won’t fit on your service entrance wires), and consequently your burden resistor might be wrong for two reasons. Have you checked ‘Learn’ and the article about using the emonTx in N.America? Pretty much all of that is applicable to the Arduino too, but as well as changing the value of the burden resistor because of the different c.t.'s different output current, you might want to increase it also to suit the higher 5 V input of your Arduino. (The aim is to get 1.6 V rms developed across the burden resistor at the maximum current you expect.)

The sums are dead simple: Take the rated c.t secondary current, scale it proportionately in the ratio of your max. current to the c.t’s rated current, then calculate the resistor to give 1.6 V at that current, and choose the nearest available value below.

The rest of the input circuit won’t change.

If you’re looking at monitoring the main incoming supply, then just because you have a (say) 200 A service, don’t assume you will take that. Go round and add up all the appliances you can reasonably expect to have on at the same time, then add (say) 20% for safety. You’ll find it will still be significantly less. See here for the details.

Hi Robert,

OK, I am not going to be monitoring my mains, but just one 15A circuit. My application that I will be using the CT for is very specific (one circuit) and every time I do a web search on how to use this type of CT, pretty much everything comes back to the Open Energy Monitor web site. That’s why I asked my question here.

So, to confirm, it sounds like the resistors and capacitor values are the same regardless of the voltage then. Correct? “… you might want to increase it also to suit the higher 5 V input of your Arduino.” I mentioned 33Ω as this page (Learn | OpenEnergyMonitor) mentioned that value for a 5V Arduino.


My specific application is for a load sensor for a couple of my shop tools. One in particular has an induction motor that pulls a lot of current when it starts. I intend on crafting a controller that will sense when the motor starts, wait for the current to level out from it’s peak, then turn on a shop vac.

I am use to working with mains, so I already have a healthy respect for intermingling mains and low voltage. I will be using an IoT mechanical relay (not a solid state one) for switching on the shop vac.


Your peak “inrush” current is quite likely to be approaching the 100 A rating of the SCT-013-000, so I think the 33 Ω burden will be OK. Therefore all the components here will be correct.


The demo sketch that uses emonLib as it stands won’t be a great deal of help for you there, because it pre-supposes that you will measure a short sample of mains every few seconds. You don’t actually need the rms average value, or to remove the bias offset even (which both happen inside emonLib). If you simply detect the peak currents positive and negative, and take the difference as the peak-peak value, when that falls to a steady value you can start the vacuum motor.

You might find you need quite heavy suppression on that to prevent any spikes getting into the Arduino.

“Your peak “inrush” current is quite likely to be approaching the 100 A rating of the SCT-013-000”!! 100A inrush on a 15A circuit? That sounds scary.

“You might find you need quite heavy suppression on that to prevent any spikes getting into the Arduino.” Can you elaborate a bit on this? What would that look like. The relay module is similar to this one (2-Channel 5V Relay Module | SainSmart –

I’m a programmer by profession, so that part I can figure out (usually), but it’s the hardware I need some handholding when it’s something I have never done before.


I didn’t say exactly 100 A inrush, but “approaching”. Without knowing all the details of the motor, it’s hard to say, but depending on where you catch it on the mains cycle, and the size of the motor, it could be 5 or 6 times normal full load current. And if that’s 10 A, it’s half way to 100 A.
You might be able to find a value from the motor manufacturer’s catalogue.

Maybe time for a rethink. Take a look at the data sheet for the relay:
The contacts are rated at 3 A for inductive loads. You haven’t mentioned the motor you’ll be switching, but if it’s an extractor and another induction motor, and it’s rated at 3 A or more (~ 250 W ), you could be in trouble.

1 Like

Hi Robert,

The inductive motor is in my old ShopSmith Mark V 510. Without removing the cowling (non-trivial task), I can’t see the label on my specific motor, but a little internet search says it should be rated at 1-1/8 HP and 13.5A @ 115V. The other load I would be using this with (not at the same time!) is a DeWalt DWP611 compact router. It is rated at 1.25 HP peak and 7A @ 120V.

As far as the motor to be switched (thanks for checking on that), no, the shop vac is just a plain-old ShopVac brand vacuum (not a dust collector). It doesn’t have an inductive motor on it. That said, your research did give me pause to consider getting a relay with more than 10A capacity on it though.

Thanks for your time with my questions,

1 Like

It’s almost certainly got a universal motor. You should still check the rating and if possible measure the current, because I think it might be more than you suspect, especially at 120 V. Unless the load is a pure resistance, then you need to look at the contact rating with an inductive load, and choose the relay based largely on that. (The reason is, energy is stored in the magnetic field inside the iron of the motor, and when you break the current, it’s got nowhere to go, so it draws out an arc as the contacts separate, to try to keep the current circulating. And that’s why the contacts burn up and eventually fail.)

Yup, I just did. It’s 11.7A. I will look and see about the one below (30A relay), which should give me more than enough headroom!

If I understand Songle’s part numbers correctly, this one is the “Form A” (only normally open), which has a resistive load of 30A. As opposed to some models in the SLA line that are “Form C” (both NO & NC components) and only have a resistive load of 10A on the NC side and 20A on the NO side (which is the side I would use anyway). I’m not sure how they rate the relay at 30A in that case… :thinking:

Now, back to your other statement in regards to using a mechanical relay:

Any suggestions on what I would need to do for this? Or would that already be handled in the mini-board’s packaging for the Arduino interface?

Thanks a lot,

But that 30 A rating is still for a resistive load, whereas the “General Motor” (whatever that means?) rating is 1 HP. It’s a bitter choice than the first one you mentioned, but I wouldn’t guarantee that you’ll get a decent life out of it even so.

As for suppression, it’s something of a black art, and you’ll need to wait and see what happens. If you get resets or your sketch gets scrambled or there are odd effects that you can’t explain, that’s the most likely cause. The best way is to treat the problem at source. Keep the relay and the switched power wiring as far away as possible from the processor and its inputs, and keep the line and neutral as close to each other as possible (don’t have big loops). My starting point would be to add this: in parallel with the relay contacts.

Well! This has truly been a learning experience! My primary intent was to ask about the CT Sensor and I am learning all about mechanical relays.

I originally said mechanical relay and not solid state because I didn’t think that solid state relays would handle the amps, but it appears that some will handle larger amperage’s. This company has one that, on the small side, is rated at 25A (well OK, they have one at 10A, but I can’t use that one), then another at 40A.

Maybe this will be a better route. Just requires a minimum of 3V to trigger (up to 32V), so an Arduino should be able to trigger it just fine.

I don’t think ‘maybe’ - more like ‘Maybe this will be a better route.’. The zero crossing bit means that it’s going to generate much less interference both at switch-on and switch-off. I won’t guarantee it, but you’re unlikely to run into problems with this. It may even be cheaper in the long run when you factor in messing-about time and effort.

Just one caution: beware fakes! Some years ago (search the ‘Archived’ if you’re keen) someone came across a fake/counterfeit of a similar device.
See also

I did notice some folks complaining about counterfeits. Probably the difference between the $40+ version and the $2 versions!

Just did a quick check, after reading the article, on Digi-Key. Minimum of $41 to get at least a 25A version.

And here I thought this would be a cheap and easy project! (I already have all of the other components).

Again, thanks for all of your time with me on this.