I am trying to control speed of a single phase fan motor using triac phase control, across a optoisolated boundary. The motor could be of shaded-pole or capacitor-run type, between 30 and 200W.
My circuit looks like this:
4K7 1N4001 47K 4N25 .-|___|----- 5V ___ | Active --| -| Neutral ------------' |>'---- Gnd
From uC 120R -----. '------o-----o----o------o--- Active | | | | | | | 470R.-. | | | | | | | | .-. | | | | | | | | | | | MOC3021 360R '-' | | | | | | ___ | | '-' | | | .----|___|-----o | | | | | _|_ | ' | .-.M | V -> V_A | _|_ | | |O --- - / | | V_A | | |V --- 100nF | '--------------)--- / | | '-' | ----' | | --- | | | | --- | | --- | 100N| | | 47nF --- | | | | | | | | ___ | '------o-----o----o--UUU-o------- To load 100uH T405-600 or BT137 (created by AACircuit v1.28.6 beta 04/19/05
The 4N25 optocoupler detects the zero crossing, a microcontroller turns on an optotriac LED after the required delay, and holds it on until about 20deg before the end of the half cycle.
I have noticed that 100% power (where the voltage across triac is almost always zero) is at about 25deg for a 173W capacitor-run motor, 60deg for a
50W shaded pole motor. This is giving me two problems:- If I turn on the triac eariler than this point, I start to get 'half-waving' (?) but I can't see why this happens? Shouldn't it just continue to run at 100%?
- Since I don't know what motor my users will plug into it, how do I prevent this happening? My zero crossing comes straight from the mains - could I put the zero crossing detector across the triac to detect when the triac turns off and have my timing referenced to that point instead?
I also notice that on the shaded-pole motor, the circuit doesn't seem to turn on the triac properly at high firing angles. Starting at 140deg, I can see where the triac is being turned on, the voltage across the triac dips to zero briefly but then rises back up to mains voltage. At about 125 deg it starts to do the negative half cycles properly, then positive half cycles start working from about 92deg. Does anyone know why this might happen?
Thanks for any help.