I have intention to use a triac to drive a 2000w heating element and also use the triac to dim the power of the heating element itself.
I've found tons of examples of circuits to dim a light bulb using Arduino (zero crossing detection+moc3021 to drive the triac), and I was wondering if I can use the same principle for the heating element.
I'd like also to ask of you think the BTA16 is an appropriate triac to drive the 2000w load)
For a heater you are better off using burst mode triggering of the triac, not the phase control used for lighting. This means you turn the triac on for some number of cycles then off for some. For example if you want 25% heating power you could have the triac on for 5 cycles then off for 15. This works with a heater because they respond slowly to the change of input so you don't notice it. With a light if you tried to do this it would flicker horribly.
Cycle means one positive and one negative part of the mains waveform in succession, so in terms of zero crossings look for a zero crossing then after 2 more you have a cycle.
The time between 2 adjacent zero crossings is a half cycle.
Ideally you should only switch cycles not half cycles because a half cycle represents DC, you need the equal opposite half cycle for true AC, although this is probably a pendant point and not really a problem for a heater.
One more question Sir.
Shall I give a pulse (like 100microseconds) to the triac at every cycle or I can keep the triac on for the entire duration of the cycles I want to keep it on?
This means if I want to have full power, I need to have the triac gate always ON?
You need a short pulse at the start of every half cycle that you want the triac on, so 2 pulses for a complete cycle. As far as I know you won't do any harm by driving the gate for the whole half cycle, other than wasting some power.
A "standard" U.S power outlet is rated for 15A, so you can't normally get 2000W. (There is actually 220V "split phase" into the house and there are special 220V outlets for electric clothes dryers, electric, ranges, water heaters, etc. For these, 30A is not uncommon.)
And what is the general physical equation that tells me the max driving power of the triac based on the voltage?
The limiting factor is CURRENT. More precisely the POWER dissipated by the TRIAC which depends on the current and the on-voltage drop/loss across the TRIAC. The off-voltage isn't usually a problem. So it's actually "easier" with 220V since the current is half for the particular
wattage. In any case, you'll probably need a heat sink!
Shall I give a pulse (like 100microseconds) to the triac at every cycle or I can keep the triac on for the entire duration of the cycles I want to keep it on?
This means if I want to have full power, I need to have the triac gate always ON?
I's OK to hold a TRIAC on with DC. That's done "everyday" with AC solid state relays.
Note that almost all heating & cooling systems work by cycling on & off, especially if there is temperature feedback. Your home furnace & air conditioning work this way, your oven, your refrigerator, etc. When you turn-on a heater it normally turns-on at full power and then it shuts-off when it reaches the target temperature. (Usually, there is some slight hysteresis or "swing" so it goes slightly-above and slightly below the target and doesn't turn on & off several times per minute, etc.). If you try to continuously adjust the power to "exactly the right amount" you can easily get an unstable system that undershoots & overshoots the target even more!
And with a simpler on-off system and zero-crossing opto-isolator makes sure it only turns-on at zero crossing and the latching nature of a TRIAC means it only turns-off at a zero crossing and you don't need any phase detection.