单片机 可控硅导通角

2020-01-27 11:31发布

请教:我用单片机控制可控硅调压,控制可控硅的导通角:
    当外部中断接到同步信号(50hz)中断后,中断方式:边沿触发,那么是不是1S内应该中断100次,但可控硅是整流器件,在正向电压时才导通,那么1S内应该导通的波头有50个。
    如果控制导通角的话,是不是应该在每个周期的高电平(即10MS)处开始延时控制导通角,我想问的是:当外部中断0中断的时候,如果中断的是下降沿,单片机收到的是低电平,这个时候肯定不能延时导通,这个时候应该如何处理?是延时吗等下一个中断吗?可我用的是外部中断0,是不是也要做判断高电平或低电平?还是如何处理。请高手指教 。谢谢!!!!!!!!能否给一个编程思路

可控硅控制电路 (原文件名:22222222222222222.JPG)
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
32条回答
wgj600
1楼-- · 2020-01-27 16:30
回复【楼主位】wgj600 小俊
-----------------------------------------------------------------------

我用的是AT89S51和STC89C51RC单片机,
touch_mcu
2楼-- · 2020-01-27 20:59
轻轻说出自己的看法,
1. 双向可控硅,正负半波都可以导通
2. 50HZ的过零信号,用双变沿触发
3. 1S内要送100个触发信号出去
4. 单片机检测到的过零信号,与市电的正弦波的过零会有一点误差。
wgj600
3楼-- · 2020-01-27 23:49
回复【2楼】touch_mcu
-----------------------------------------------------------------------
正负都可以,那如何控制可控硅的导通角?
touch_mcu
4楼-- · 2020-01-28 01:09
回复【3楼】wgj600 小俊
-----------------------------------------------------------------------

检测到过零后,启动计时到你想到的延时时间后触发呀
wgj600
5楼-- · 2020-01-28 06:06
 精彩回答 2  元偷偷看……
guolun
6楼-- · 2020-01-28 09:09
void T1_fun(void) interrupt 3      //中断时间为0.333ms,一个交流半波10ms,就有30个时间段(PWM_Count)。你要在90度触发,就设置DCHL_PWM为 15,
        {        static uchar DCHL_Pulse,DCHR_Pulse;
                if ( DCHL_Pulse>0 )
                        DCHL_Pulse--;
                if ( DCHR_Pulse > 0 )
                        DCHR_Pulse--;                
                if ( DCHL_Pulse == 0 ) DCHL = 1;
                if ( DCHR_Pulse == 0 ) DCHR = 1;
                PWMCount++;
                if ( PWMCount == DCHL_PWM )
                        {        if ( DCHL_ON )
                                        {        DCHL_ON = 0;
                                                DCHL = 0;
                                                DCHL_Pulse = 1;        //如果在前面,脉冲就没有了。                                               
                                        }
                        }
                if ( PWMCount == DCHR_PWM )
                        {        if        ( DCHR_ON )
                                        {        DCHR_ON = 0;
                                                DCHR = 0;
                                                DCHR_Pulse = 1;
                                        }
                        }                       
                if ( BeeTime > 0 )
                        {        BeeTime--;
                                if (BeeTime==0) BEEP = 0;
                        }                                                                         
        }



void INT1_fun(void) interrupt 2
        {        PWMCount = 0;
                ms20++;

如果是四象限的可控硅,每个半波都可以导通。

以上希望对你有用。

一周热门 更多>