+ Post New Thread
Page 1 of 2 1 2 LastLast
Results 1 to 20 of 25
  1. #1
    Full Member level 5
    Points: 1,872, Level: 10

    Join Date
    Sep 2016
    Posts
    299
    Helped
    1 / 1
    Points
    1,872
    Level
    10

    Ac motor speed control

    Click image for larger version. 

Name:	images.JPG 
Views:	3 
Size:	20.5 KB 
ID:	148617


    Hai friends,
    In my project I have to control speed of AC230V,50HZ,4A,single phase motor.I tried TRIAC BT136 with optocoupler 3041 but it switching on when the PWM is high but in low pulse its not working.....Then removed the optocoupler it working fine.
    Then used IRF540 but it always in ON condition.Its not responsible with PWM.


    Please provide suggestion to control the motor speed by using PWM controls

    •   AltAdvertisement

        
       

  2. #2
    Super Moderator
    Points: 256,166, Level: 100
    Awards:
    1st Helpful Member

    Join Date
    Jan 2008
    Location
    Bochum, Germany
    Posts
    44,682
    Helped
    13592 / 13592
    Points
    256,166
    Level
    100

    Re: Ac motor speed control

    MOC3041 is zero crossing detector device, use MOC3021.



  3. #3
    Advanced Member level 5
    Points: 14,504, Level: 29
    schmitt trigger's Avatar
    Join Date
    Apr 2013
    Posts
    2,414
    Helped
    784 / 784
    Points
    14,504
    Level
    29

    Re: Ac motor speed control

    For starters..... you don't trigger a Triac with PWM. You trigger it with phase control.

    Phase control is a trigger delay from zero the zero crossing.
    Additionally, not all single-phase motors are suitable for speed control. They are limited mostly to shaded pole ones.
    My batteries are recharged by "Helpful Post" ratings.
    If you feel that I've helped you, please indicate it as a Helpful Post


    1 members found this post helpful.

  4. #4
    Full Member level 5
    Points: 1,872, Level: 10

    Join Date
    Sep 2016
    Posts
    299
    Helped
    1 / 1
    Points
    1,872
    Level
    10

    Re: Ac motor speed control

    Quote Originally Posted by FvM View Post
    MOC3041 is zero crossing detector device, use MOC3021.
    MOC3021 with BT136 is suitable for speed control or have to change any other TRIAC also..?



  5. #5
    Full Member level 5
    Points: 1,872, Level: 10

    Join Date
    Sep 2016
    Posts
    299
    Helped
    1 / 1
    Points
    1,872
    Level
    10

    Re: Ac motor speed control

    Click image for larger version. 

Name:	BTA16a.PNG 
Views:	10 
Size:	11.3 KB 
ID:	149484

    This is my circuit used to control the speed of the motor.
    But I not working...Motor is either switching ON or OFF condition only....

    I can't control the speed of the motor by using the PWM pin..
    PWM is working fine,i checked it by connecting an LED with PWM pin which used for control the speed of the motor.

    - - - Updated - - -

    Quote Originally Posted by schmitt trigger View Post
    For starters..... you don't trigger a Triac with PWM. You trigger it with phase control.

    Phase control is a trigger delay from zero the zero crossing.
    Additionally, not all single-phase motors are suitable for speed control. They are limited mostly to shaded pole ones.
    No already speed of the motor is controlled by an mechanical switch...



  6. #6
    Super Moderator
    Points: 74,732, Level: 66
    Achievements:
    7 years registered
    Awards:
    Most Frequent Poster 3rd Helpful Member

    Join Date
    Apr 2014
    Posts
    15,164
    Helped
    3450 / 3450
    Points
    74,732
    Level
    66

    Re: Ac motor speed control

    Hi,

    as schmittt trigger already mentioned: donīt use PWM. It wonīt work.

    Read basics about phase control.
    In short: You need to detect zero cross of line voltage --> Then use a variable delay (the shorter the delay, the higher the speed) --> then trigger the Triac with the use of MOC3021.

    Klaus
    Please donīt contact me via PM, because there is no time to respond to them. No friend requests. Thank you.



  7. #7
    Full Member level 5
    Points: 1,872, Level: 10

    Join Date
    Sep 2016
    Posts
    299
    Helped
    1 / 1
    Points
    1,872
    Level
    10

    Re: Ac motor speed control

    Quote Originally Posted by KlausST View Post
    Hi,

    as schmittt trigger already mentioned: donīt use PWM. It wonīt work.

    Read basics about phase control.
    In short: You need to detect zero cross of line voltage --> Then use a variable delay (the shorter the delay, the higher the speed) --> then trigger the Triac with the use of MOC3021.

    Klaus
    If we SWITCHED the TRIAC using delay function means controller have to do that work only,because it will comes under infinite while loop.
    To avoid this one I need PWM control..

    Is their any other way to control the speed of the motor by using the PWM control..?



  8. #8
    Super Moderator
    Points: 256,166, Level: 100
    Awards:
    1st Helpful Member

    Join Date
    Jan 2008
    Location
    Bochum, Germany
    Posts
    44,682
    Helped
    13592 / 13592
    Points
    256,166
    Level
    100

    Re: Ac motor speed control

    Variable delay doesn't necessarily mean software delay loop, it can also use zero crossing interrupt and hardware timer.



    •   AltAdvertisement

        
       

  9. #9
    Super Moderator
    Points: 74,732, Level: 66
    Achievements:
    7 years registered
    Awards:
    Most Frequent Poster 3rd Helpful Member

    Join Date
    Apr 2014
    Posts
    15,164
    Helped
    3450 / 3450
    Points
    74,732
    Level
    66

    Re: Ac motor speed control

    Hi,

    A microcontroller PWM usually is not aligned (synchronized) to an external signal.

    But for phase control you need the mains zero cross as timing reference.

    --> any free running PWM (like a PWM usually works) will not work as phase control.

    *****
    Maybe you think the correct way, but in my eyes the phrase "PWM" is not useful (at least: misleading) for phase control.

    Klaus
    Please donīt contact me via PM, because there is no time to respond to them. No friend requests. Thank you.



    •   AltAdvertisement

        
       

  10. #10
    Advanced Member level 5
    Points: 14,504, Level: 29
    schmitt trigger's Avatar
    Join Date
    Apr 2013
    Posts
    2,414
    Helped
    784 / 784
    Points
    14,504
    Level
    29

    Re: Ac motor speed control

    Quote Originally Posted by venkates2218 View Post
    If we SWITCHED the TRIAC using delay function means controller have to do that work only,because it will comes under infinite while loop.
    To avoid this one I need PWM control..

    Is their any other way to control the speed of the motor by using the PWM control..?
    No
    It is not synchronized with the zero crossing.
    My batteries are recharged by "Helpful Post" ratings.
    If you feel that I've helped you, please indicate it as a Helpful Post



  11. #11
    Newbie level 4
    Points: 2,846, Level: 12

    Join Date
    Dec 2003
    Posts
    6
    Helped
    1 / 1
    Points
    2,846
    Level
    12

    Re: Ac motor speed control

    you have to check for zero crossing signal and switch on the triac with a delay from 0-10 ms . 0ms full on and 10ms full off



  12. #12
    Advanced Member level 5
    Points: 31,975, Level: 43
    Achievements:
    7 years registered

    Join Date
    Sep 2008
    Location
    cambridge
    Posts
    6,671
    Helped
    484 / 484
    Points
    31,975
    Level
    43

    Re: Ac motor speed control

    i used to work at a shower company where they controlled the speed of an AC motor (for the shower water pump) with just with a TO220 triac and a isolated
    Triac driver.
    It was very very rough, and noisy, but it worked.
    They were using PWM.
    They just kept occasionally turning the driver off for varied intervals.....WHEN on , they just kind of kept the drive on so that the triac didnt always turn off when the mains
    went back through zero.

    It was very noisy...some customers used to complain about the noise, but it was cheap.



  13. #13
    Advanced Member level 5
    Points: 16,348, Level: 30

    Join Date
    Nov 2012
    Posts
    2,993
    Helped
    727 / 727
    Points
    16,348
    Level
    30

    Re: Ac motor speed control

    They were using PWM.
    I am not so sure. Most of the simple controllers use use a phase delay control. Most use a RC circuit to generate the delay from the zero crossing. PWM is much more messy.

    The noise is due to the controller? My kitchen fan makes noise like a jet engine but it does not have any regulator.

    By the way, phase control (in some sense) is same as PWM (except that the waveform is not rectangular)...
    Last edited by c_mitra; 20th October 2018 at 16:12.



  14. #14
    Advanced Member level 5
    Points: 31,975, Level: 43
    Achievements:
    7 years registered

    Join Date
    Sep 2008
    Location
    cambridge
    Posts
    6,671
    Helped
    484 / 484
    Points
    31,975
    Level
    43

    Re: Ac motor speed control

    The noise was from the motor



  15. #15
    Advanced Member level 5
    Points: 16,348, Level: 30

    Join Date
    Nov 2012
    Posts
    2,993
    Helped
    727 / 727
    Points
    16,348
    Level
    30

    Re: Ac motor speed control

    The noise was from the motor
    The noise in my exhaust fan is (my guess; no study) is due to (i) unbalanced blades (ii) resonance and (iii) airflow turbulence.

    Noise due to blade unbalance is not going to change with speed (but the frequency and perception will change);

    Resonance will peak at a particular speed and appear to reduce both above and below (the resonance speed);

    Turbulence noise (airflow) perhaps depends on the geometry.

    AND this may perhaps be the case in your motor too.



  16. #16
    Full Member level 5
    Points: 1,872, Level: 10

    Join Date
    Sep 2016
    Posts
    299
    Helped
    1 / 1
    Points
    1,872
    Level
    10

    Re: Ac motor speed control

    Click image for larger version. 

Name:	optocoupler.png 
Views:	4 
Size:	8.3 KB 
ID:	151149

    The output side of the optocoupler is given to the PIC18F4520's RB0 pin and the below program is used
    Code:
    void interrupt ssr() {
        if (INTCONbits.INT0IF == 1) { //INTF flag raised, so external interrupt occured
            zc = 1;
            INTCONbits.INT0IF = 0;
        }
    }
    
    void System_init(void) {
    
        TRISA = 0b00000011;
        PORTA = 0b00000011;
    
        ADCON1 = 0XFF;
        CMCON = 0X07;
    
        TRISB = 0b11111111;
        PORTB = 0b11111111;
    
        TRISC = 0b00000000;
        PORTC = 000000000;
    
        TRISD = 0b00000000;
        PORTD = 0b00000000;
    
        TRISE = 0X00;
        PORTE = 0X00;
    
        
        INTCONbits.GIE = 1; //Enable Global Interrupt
        INTCONbits.INT0E = 1;
        INTCON2bits.INTEDG0 = 1;
        INTCONbits.INT0IF = 0;
    
       
    }
    
    void main(void) {
     
        System_init();
     
        while (1) {
            if (zc == 1) { //zero crossing occurred
                triac_1 = 1;
                DelayMs(1);
                triac_1 = 0;
                zc = 0;
            }
        }
    
    }

    By changing the delay is it possible to control the speed of induction motor..?



  17. #17
    Super Moderator
    Points: 256,166, Level: 100
    Awards:
    1st Helpful Member

    Join Date
    Jan 2008
    Location
    Bochum, Germany
    Posts
    44,682
    Helped
    13592 / 13592
    Points
    256,166
    Level
    100

    Re: Ac motor speed control

    By changing the delay is it possible to control the speed of induction motor..?
    "The delay" in the present code doesn't change the trigger time. Triac trigger pulse must be delayed relative to zero crossing. And you need a zero crossing detector that works equally for positive and negative zero crossings.



  18. #18
    Super Moderator
    Points: 79,232, Level: 68
    Achievements:
    7 years registered
    Awards:
    2nd Helpful Member
    betwixt's Avatar
    Join Date
    Jul 2009
    Location
    Aberdyfi, West Wales, UK
    Posts
    12,978
    Helped
    4332 / 4332
    Points
    79,232
    Level
    68

    Re: Ac motor speed control

    venkates2218, I think your problem is not understanding how triacs and SCRs work. Think of them as a switch you turn ON with a pulse at any time there is a voltage across them but you cannot turn them OFF again until the voltage across them has fallen to zero. You have gone through various stages of getting nearer to a solution but still miss the target.

    In the original design you use an optocoupler with zero crossing detector, this will only let you turn the triac ON at the point the AC reverses polarity and it will remain ON for the whole cycle. In other words you get the effect you noticed, it was on or off but had no 'mid' setting.

    You then changed to a non-zero crossing optocoupler which can trigger at any time, regardless of the voltage across it. That is slightly better because it lets you chop the AC waveform to reduce the effective power but without any synchronizm to the AC waveform it will trigger randomly. If you want to use that method, you have to decide the trigger pulse position as a delay from zero crossing but you have no voltage detector to do that. That method is normally called "Phase Control" rather than PWM because the position of the pulse decides the power, not its width.

    In your last code, assuming you take the output to RB0 from the emitter of the optocoupler and you ground the bottom of the 1K resistor, you get a low pulse near to zero crossing so you need to make sure you interrupt on the rising edge of the signal. However you then try to control the triac period by generating a variable width pulse. As I stated, triacs don't work like that, as soon as you trigger it ("triac_1 = 1;") it turns ON and stays ON. The delay and line "triac_1 = 0;" have no effect whatsoever. If you want to do it by phase control the delay has to be between the zero crossing point and the trigger pulse so your code is like this:
    Code:
         while (1) 
         {
            if (zc == 1) 
            { //zero crossing occurred
                DelayMs(your delay goes here)
                triac_1 = 1;
                triac_1 = 0;
                zc = 0;
            }
        }
    The delay can be anything from zero (maximum power) to the period of one whole AC cycle (20ms for 50Hz, 16.6mS for 60Hz) for minimum power.

    As Treez pointed out, there is another way to do it but it can be very noisy and harsh on the motor, you can turn the triac on for whole cycles, then turn it off and wait a while before turning it on again. It is rather like turning full power on and off with a manual switch and relying on the drag/load on the motor to slow it down. In theory if you get the switch timing just right you can control the speed but the rapid burst of full power stresses the motor and the switch and tends to be unreliable.

    Brian.
    PLEASE - no friends requests or private emails, I simply don't have time to reply to them all.
    It's better to share your questions and answers on Edaboard so we can all benefit from each others experiences.



  19. #19
    Advanced Member level 5
    Points: 16,348, Level: 30

    Join Date
    Nov 2012
    Posts
    2,993
    Helped
    727 / 727
    Points
    16,348
    Level
    30

    Re: Ac motor speed control

    I strongly suggest you insert a small delay between the two statements: triac_1=1; and triac_1=0;

    Logically it does not matter but perhaps it can improve reliability by holding on the triac_1 =1 for some time.

    If you are using an optimization compiler, it may even ignore triac_1=1 completely (it may not understand what you are trying to do).

    Just my opinion.



  20. #20
    Super Moderator
    Points: 29,140, Level: 41
    andre_teprom's Avatar
    Join Date
    Nov 2006
    Location
    Brazil
    Posts
    8,678
    Helped
    1100 / 1100
    Points
    29,140
    Level
    41
    Blog Entries
    9

    Re: Ac motor speed control

    Depending on whether your goal is to learn how to do it right, or just quickly solve a problem and if you're willing to deal with the drawbacks mentioned above that will arise from that, the solution to trigger full cycle for some periods and turn off for others, is effective in few cases, such as if the mechanical inertia compared to torque is high so that in the closed loop control the variation in the speed of rotation of the set becomes imperceptible.
    --------------------------------------------------------------------------------------------------
    Part of the world that you live in, You are the part that you're giving ( Renaissance )



    •   AltAdvertisement

        
       

--[[ ]]--