搜索
bottom↓
回复: 36

单片机 可控硅导通角

[复制链接]

出0入0汤圆

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

可控硅控制电路 (原文件名:22222222222222222.JPG)

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

 楼主| 发表于 2009-12-29 20:02:19 | 显示全部楼层
回复【楼主位】wgj600 小俊
-----------------------------------------------------------------------

我用的是AT89S51和STC89C51RC单片机,

出0入0汤圆

发表于 2009-12-29 20:11:14 | 显示全部楼层
轻轻说出自己的看法,
1. 双向可控硅,正负半波都可以导通
2. 50HZ的过零信号,用双变沿触发
3. 1S内要送100个触发信号出去
4. 单片机检测到的过零信号,与市电的正弦波的过零会有一点误差。

出0入0汤圆

 楼主| 发表于 2009-12-29 20:17:48 | 显示全部楼层
回复【2楼】touch_mcu
-----------------------------------------------------------------------
正负都可以,那如何控制可控硅的导通角?

出0入0汤圆

发表于 2009-12-29 20:36:49 | 显示全部楼层
回复【3楼】wgj600 小俊
-----------------------------------------------------------------------

检测到过零后,启动计时到你想到的延时时间后触发呀

出0入0汤圆

 楼主| 发表于 2009-12-29 21:05:35 | 显示全部楼层
回复【4楼】touch_mcu
-----------------------------------------------------------------------

那么延时的范围应该是多少呀?

出425入0汤圆

发表于 2009-12-29 21:09:08 | 显示全部楼层
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++;

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

以上希望对你有用。

出0入0汤圆

 楼主| 发表于 2009-12-29 21:35:39 | 显示全部楼层
回复【6楼】guolun
-----------------------------------------------------------------------

谢谢你和程序 ,可是我不太看得懂,因为我用的是汇编!能否用语句说明一下编写方法?
头像被屏蔽

出0入0汤圆

发表于 2009-12-30 10:24:11 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
头像被屏蔽

出0入0汤圆

发表于 2009-12-30 10:29:53 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

出0入0汤圆

发表于 2009-12-30 10:40:25 | 显示全部楼层
学习了

出0入0汤圆

发表于 2009-12-30 10:55:19 | 显示全部楼层
关注中。。。。。。。。。。。。。。。。。

出0入0汤圆

发表于 2009-12-30 11:38:45 | 显示全部楼层
同意【9楼】 bbs2009。
楼主采用的电路已经是过零触发的了。缘何控制可控硅的导通角?

出425入0汤圆

发表于 2009-12-30 16:52:28 | 显示全部楼层
过零触发的,我的程序不适合。12楼说的对。

出0入0汤圆

发表于 2009-12-30 18:32:43 | 显示全部楼层
不懂,学习了!

出0入0汤圆

 楼主| 发表于 2009-12-30 21:23:16 | 显示全部楼层
过零后就不能控制导通角吗?过零后延时改变导通角应该可以的呀,为何不行呢?大家能否发一张基于单片机控制可控硅导通角的电路图?谢谢!
头像被屏蔽

出0入0汤圆

发表于 2009-12-30 23:17:15 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

出0入0汤圆

 楼主| 发表于 2009-12-31 00:00:14 | 显示全部楼层
回复【17楼】bbs2009
-----------------------------------------------------------------------
谢谢!
那么能否给个调相的电路呢?比如用什么方法。

出0入0汤圆

发表于 2009-12-31 06:40:45 | 显示全部楼层
用西门子的TC785   陕西的TC787

出0入0汤圆

发表于 2009-12-31 06:42:27 | 显示全部楼层
还有kj041 kj042 型号太老了。国产的。特贵,不知还产吗

出0入0汤圆

发表于 2009-12-31 06:48:24 | 显示全部楼层
三相全控的话哦  也可以用变压器降压,用运放整形取得正确的过零点,用三角波调制,取得和给定相交叉的点,光耦给单片机;单片机只是驱动6相脉冲

出0入0汤圆

发表于 2009-12-31 06:49:33 | 显示全部楼层
如果过零点采自输出,可以相序自适应

出0入0汤圆

 楼主| 发表于 2009-12-31 12:56:10 | 显示全部楼层
我还是不明白?我的原理图为什么不能实现导通角控制呢?

出0入0汤圆

发表于 2009-12-31 15:22:23 | 显示全部楼层
【15楼】 wgj600 小俊
过零后就不能控制导通角吗?过零后延时改变导通角应该可以的呀,为何不行呢?

【23楼】 wgj600 小俊
我还是不明白?我的原理图为什么不能实现导通角控制呢?
================================================================================

  我在【12楼】已经说过,楼主采用的电路已经是过零触发的了。缘何控制可控硅的导通角?

  因为楼主提供的电路,一采用的是具有过零触发功能的光耦,二用它直接触发双向可控硅,所以,那个电路本身就是名副其实的过零触发电路,完全不是可以控制导通角的电路。
  在高电平信号驱动光耦的情况下,当交流电压(正向或负向)过零点时(实际有一点延迟,不过很小),立即触发双向可控硅(TRIAC)导通;解除光耦驱动信号后,TRIAC将在其电流降低到零时,自行关断。这就是楼主提供的电路的工作原理。

  楼主的原理图不是实现导通角控制的。也就是说,若要实现导通角控制,就必须设计或寻找可以做这件事的电路。现在是否明白了呢?

  至于用过零触发功能的光耦,来检测交流过零点,并依此计算延迟多少时间(多大的相位角)再去触发可控硅,实现导通角可控,那是另一个问题。不过请楼主注意,最终用来触发可控硅的,绝不是那个有过零触发功能的光耦(如果采用它的话,也仅仅用于过零检测),而是另有其主。楼主没有搞明白,也许就是这个弯子没有转过来的原因。

  不知我是否说到了点子上。如果还不明白的话,我只好再举一个例子:用料面粉,做出了馒头、面条,就不该再问“为什么做不出米饭?”

  好累啊!

出0入0汤圆

 楼主| 发表于 2010-1-3 17:21:15 | 显示全部楼层
回复【24楼】JQ_Lin
-------------------------------------------------------------------
谢谢你的耐心答复,我明白了,小弟非常感谢!至于导通角,我再多看看资料。

出0入8汤圆

发表于 2010-1-3 17:51:39 | 显示全部楼层
楼主,论坛里有很多关于可控硅调导通角的贴,你搜一搜!!

出425入0汤圆

发表于 2010-1-4 08:22:00 | 显示全部楼层

(原文件名:未命名.JPG)

出0入0汤圆

发表于 2010-4-29 20:18:27 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-5-2 22:48:15 | 显示全部楼层
不错,学习了

出50入10汤圆

发表于 2011-5-27 09:32:57 | 显示全部楼层
mark

出0入0汤圆

发表于 2012-5-7 12:42:16 | 显示全部楼层
正要做这个,标记一下。。。谢谢分享

出0入0汤圆

发表于 2012-5-7 16:23:16 | 显示全部楼层
汇编的:
int_ser:
        bts0        ac_in
        jmp        @f
        bset        f_l
        bts1        f_h
        jmp        int_ser20
        bclr        f_h
        jmp        int_ser10
@@:
        bset        f_h
        bts1        f_l
        jmp        int_ser20
        bclr        f_l
int_ser10:
        bclr        f_open
        clr        time_delay
        clr        time_open
int_ser20:
        bts0        f_open                ;开可控硅标志
        jmp        int_ser60
        incms        time_delay
        mov        a,time_delay
        sub        a,delay_ref        ;等多久才开
        bts1        fc
        jmp        int_ser90
        clr        time_delay
int_ser70:       
        bclr        out
        bset        f_open       
        jmp        int_ser90
int_ser60:
        incms        time_open
        mov        a,time_open        ;开多长时间
        sub        a,#10
        bts1        fc
        jmp        int_ser90       
        clr        time_open
int_ser80:
        bset        out       
int_ser90:
        pop
        reti

出145入215汤圆

发表于 2012-5-9 12:49:34 来自手机 | 显示全部楼层
过零触发是为了降低开关损耗,楼主是要移相触发,来控制输出电压!一个是开关一个是调压,要达到精准调压就必须检测过零点

出0入0汤圆

发表于 2012-10-14 19:39:40 | 显示全部楼层
正要做这个,标记一下。。。谢谢分享

出0入0汤圆

发表于 2012-11-18 15:57:39 | 显示全部楼层

正要做这个,标记一下。。。谢谢分享

出0入0汤圆

发表于 2013-8-12 00:26:16 | 显示全部楼层
                  
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-23 16:18

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表