Relay consumes less current

I drive 3 omron 5Vdc relays using standalone atmega328. Each relay coil consumes 42 mA as such. My assumption is something aorund (42*3) 126mA + .... But in the circuit When i drive these 3 relays using resistor and transistor it consumes only 87mA in total for 3 relays. ... Why is that? does that mean the circuit is not right.
Please help me with this ?

  1. the load in mA is dependent on voltage
  2. rated/documented values are usually worst case
  3. there is probably nothing wrong with your circuit
  4. The current it takes to initially energize a relay may not be the same as what it takes to hold it energized. IE; there may be an initial current/voltage spike that could be deadly to the ATMEGA device

Thanks.. I appreciate that..

for the 4th point.. regarding the initial large current and voltage spike is there any way i can prevent that entering the Atmega when it is powered .

It would really help if we could see your circuit! I hope you're not driving the relays directly from port pins as 42mA is too much and can damage the ATmega328.

You are right.. Actually I am not giving the arduino output directly to relay.. I use resistor and transistor inbetween. it works just fine...

for the 4th point.. regarding the initial large current and voltage spike is there any way i can prevent that entering the Atmega when it is powered .

You are using transistors. That should be enough to keep the Atmega isolated unless you take into account what the relay does to your power source. A weak power source may cause your Atmega to reset when the coils energize... and not protecting the circuit from the spike created when the coil de-energizes can create unwanted spikes interfering with the rest of the circuit. Hopefully you followed a transistor/relay sample circuit that uses a de-spiking/clamping diode across the coil.