I have a relay board with multiple relays (4) which is connected to an Arduino Uno. Each relay controls a lightbulb (~40-50W).

I'd like to measure the power consumption of the connected lightbulbs on the relay boards using the Arduino and some other component, and was wondering how could I achieve this (what that component should/could be)?

Thank you in advance.


Assuming that the requirements for accuracy are relaxed, it could be enough to use a current transformer around the wire for each lightbulb.
The secondary output of the transformer will provide a current proportional to the current through your lightbulb, but scaled down by the transformer ratio. This current output can be transformed into a voltage by feeding it through a resistor. This voltage can then be (full-wave) rectified and adjusted to feed it to an ADC input.

Neglecting phase shift and effects of a non-ideal voltage supply amongst others the power can be calculated as follows:

  • Calculate the effective current I(RMS value) through the lightbulbs based on the ADC input with the Arduino.
  • Set the effective supply voltage V to your regional equivalent (e.g. 230 V)
  • Calculate the Power P for one lightbulb as P = U*I using the Arduino.

Be aware that both options provided so far - current transformer and ACS712 (based on Hall-Effect) - are struggling in accuracy, when measuring low currents but they are relatively easy to implement. It could be more accurate and cheaper to measure the total current before you split it up to the relays and the following lightbulbs.


current sense module are available for Arduino

current sense modules

Also see this document to get more idea



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.