pwm ac voltage for heater element

I have a 2200w 220vac water heater element that i want to run at 25 50 75 100% power. can i simply use an arduino board to pwm a solid state relay at the desired duty cycle to achieve this task? thanks Brian

Yes, you can - with some details.

o You will need to heat sink the relay. The big ones with two screw holes are designed for this. Bolt the relay to sheet of metal or get a vaned aluminum heat sink - maybe even a fan.
o You will need a relay that can be controlled with a 5V DC logic level input (or 3.3V if your Arduino is 3.3V).

Be careful with the mains! One wrong move and you can be KILLED.

can i simply use an arduino board to pwm a solid state relay at the desired duty cycle to achieve this task?

No you can't, despite what the previous poster said. :o

A solid state relay once on stays on until the end of the current AC cycle. Therefore applying PWM will have no effect on how long the load is on.
You can get solid state relays that allow dimming, it is these that you can use a filtered PWM signal to control the load. These have a special circuit inside them that effects phase control modulation. That is depending on the input voltage there is a small delay each cycle before it turns on for the rest of the cycle. Most SSRs do not have this feature.

Well, there's PWM as it comes out of the PWM pins, or there's the much slower stuff you do in software.
25, 50, 75 and 100% could just be
1 second on, three seconds off
2 seconds on, 2 seconds off
3 seconds on, 1 second off.
on permanently.
(or multiples thereof)

But, as Mike said, driving a SSR at 400+ Hz is barmy.

As I understand it you can control the frequency of the pwm signal with programming in the arduino. second, what exactly are these ssr's called so I can find one grumpy mike. THanks brian

Sorry, I wasn't very clear. I was not thinking of the actual PWM output on the Arduino, but rather what AWOL stated. A heater element usually doesn't react fast enough to need a PWM frequency faster than some multiple of the 50/60Hz line frequency, which can be done easily in software and won't be a problem with the zero-crossing requirement of the SSRs.

As I understand it you can control the frequency of the pwm signal with programming in the arduino

Yes but I don't think it will go so slow.

what exactly are these ssr's called

Various things look for dimming or "phase angle control"

Anyway with a heater is is easy to just turn it on and off in software just like a blinking LED.

Duh? what the hell was I thinking, that is a great idea guys.
something like:

25%
digitalWrite(SSR, HIGH);
delay(125);
digitalWrite(SSR, LOW);
delay(375);

50%
digitalWrite(SSR, HIGH);
delay(250);
digitalWrite(SSR, LOW);
delay(250);

...............and so on.

As it turns out, that's the way most home microwave ovens work. The magnetron that generates the microwaves has only one setting -- 100%. If you set the cooking power to 80%, the oven cycles for 8 seconds on, then 2 seconds off, etc. Hey, maybe they could use a microcontroller to do that! :wink:

-Mike

Hi all,

First post on this forum, but been reading for a while...

I am intending something similar and am happy with what has been discussed in this thread. However, for my project, I would want to do other things while the heater is on. ie. not trapped at a loop in the program.

I would want to be able to set out put at say 50% and then continue to perform calculations and update a display while the output remains at 50% unitil changed again...

Does anybody have any guidance on this?

Many thanks in advance!

It always puzzled me why you would want to run a water heater at a fraction of its rated power. Water has a huge thermal capacity and heating only small volume of it takes a lot of power. Its far more efficient (not to mention simpler) to turn the power on and off at 100% in line with the temperature of the water. Its not going to rapidly cycle unless you have a tiny amount of water (less than a cupful) and huge heat losses.

Its not a problem slow cycling in software, you only need look as far as 'Blink without delay' for how to do it without having the processor stalled half the time. I consider using the delay function as a failure.....

Well, there's PWM as it comes out of the PWM pins, or there's the much slower stuff you do in software.
25, 50, 75 and 100% could just be
1 second on, three seconds off
2 seconds on, 2 seconds off
3 seconds on, 1 second off.
on permanently.
(or multiples thereof)

I am successfully running a 600C Kiln heater element with the Arduino and well heatsinked SSR using AWOL's method. The heater temperature is maintained using the PIDlibrary.

No reason to use the FAST PWM with a heater element, as others have said.

Note that if you DO use fast PWM... expect to have a really warm SSR.