找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 9754|回复: 18
收起左侧

单片机触发双向可控硅问题 过零点检测没问题 ,导通角接近于零,电压只有100多v

[复制链接]
ID:69679 发表于 2015-5-29 21:23 | 显示全部楼层 |阅读模式
20黑币
我用单片机触发可控硅,输出最大值只有132v,用示波器看了一下波形,过零点检测没问题 ,导通角接近于零,可能是什么问题导致的电压只有一百多伏?

最佳答案

查看完整内容

今天我试验成功了,通过软件调节触发时间(导通角)可以实现调节交流电压220/185/160/130V,硬件原理图如下,实际参数也是图中所标注的,我没接电机是直接用万用表测量motor两端电压的。图中没贴出直流稳压电路部分,P1.0是单片机输出触发信号的(低电平有效),int0输出的是过零信号给单片机外部中断。 软件还需要优化一下,按键调节那里没处理好(应该是和中断有时间冲突),按键有时失灵,贴出简单的程序。 #include sb ...
回复

使用道具 举报

ID:74245 发表于 2015-5-29 21:23 | 显示全部楼层
今天我试验成功了,通过软件调节触发时间(导通角)可以实现调节交流电压220/185/160/130V,硬件原理图如下,实际参数也是图中所标注的,我没接电机是直接用万用表测量motor两端电压的。图中没贴出直流稳压电路部分,P1.0是单片机输出触发信号的(低电平有效),int0输出的是过零信号给单片机外部中断。
软件还需要优化一下,按键调节那里没处理好(应该是和中断有时间冲突),按键有时失灵,贴出简单的程序。


#include <reg52.h>
sbit singal=P1^0; //触发信号
sbit key=P1^1;          //调压的按键
char t;                          //调节导通角的时间
void delayms(unsigned int x)
{
        unsigned int i,j;
        for(i=x;i>0;i--)
        {
                for(j=110;j>0;j--);
        }
}                                         

void main()
{
        EA=1;
        EX0=1;
        IT0=1;   //外部中断下降沿触发

        singal=1;
        while(1)
                {
                        if(key==0)
                        {
                                t++;
                                if(t==4)
                                {
                                        t=0;
                                }
                                while(!key);
                        }       
                }
}

void ex0()interrupt 0
{
        delayms(t);
        singal=0;
        delayms(5-t);
        singal=1;
}
QQ图片20150601195219.png

评分

参与人数 2威望 +4 黑币 +45 收起 理由
admin + 35 回帖助人的奖励!
海哥沧海一笑 + 4 + 10 很给力!

查看全部评分

回复

使用道具 举报

ID:69679 发表于 2015-5-29 21:34 | 显示全部楼层
用的是 bt137  单片机用的是60s2,触发用的是定时器,用示波器看触发脉冲很稳定,用万用表测只有132v,调节电压只能调节0到132v,就是找不到问题出在哪
回复

使用道具 举报

ID:74245 发表于 2015-5-29 21:47 来自手机 | 显示全部楼层
我也遇到过这样的问题。。。还没解决。软件上试试这样改进,过零后马上触发,然后到下一个零点到来之前再去掉触发信号,就是把触发信号的时间加长。

评分

参与人数 2黑币 +44 收起 理由
admin + 35 回帖助人的奖励!
海哥沧海一笑 + 9 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:69679 发表于 2015-5-29 22:15 | 显示全部楼层
yesonjob 发表于 2015-5-29 21:47
我也遇到过这样的问题。。。还没解决。软件上试试这样改进,过零后马上触发,然后到下一个零点到来之前再去 ...

我试了一下问题还是没有解决,但还是要谢谢你
回复

使用道具 举报

ID:74245 发表于 2015-5-30 08:15 | 显示全部楼层
海哥沧海一笑 发表于 2015-5-29 22:15
我试了一下问题还是没有解决,但还是要谢谢你

你再看看我有个帖子,贴了过零检测波形和触发波形的图片,可以参考下。
图片的波形是我从现成的产品上测得的可用的,只是我自己模仿却还不能调压,可能程序有问题。

评分

参与人数 2黑币 +45 收起 理由
admin + 35 回帖助人的奖励!
海哥沧海一笑 + 10 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:69679 发表于 2015-5-30 10:01 | 显示全部楼层
yesonjob 发表于 2015-5-30 08:15
你再看看我有个帖子,贴了过零检测波形和触发波形的图片,可以参考下。
图片的波形是我从现成的产品上测 ...

#include "stc12c5a60s2.h"
sbit scr1=P3^6;//直热可控硅引脚
sbit scr2=P3^5; //蓄热可控硅引脚
unsigned int a;
unsigned int p_time1,p_time2;
void interrupt_init()
{
TMOD|=0X11;
EA=1;
ET0=1;
ET1=1;
IT0=0;
EX0=1;
   p_time1=2000;
   p_time2=2000;
}
void it0() interrupt 0
{
  TR0=0;
  TR1=0;
  TH0=(65536-p_time1)/256;
  TL0=(65536-p_time1)%256;
  TH1=(65536-p_time2)/256;
  TL1=(65536-p_time2)%256;
  TR1=1;
  TR0=1;
}

void t0_time() interrupt 1
{
  scr1=0;
  a=500;
  while(a--);
  scr1=1;  
  TR0=0;
}
  
void t1_time() interrupt 3
{
  scr2=0;
  a=500;
  while(a--);
  scr2=1;
  TR1=0;
}
void main()
{
interrupt_init();
    while(1);
}




触发脉冲.jpg
过零检测和触发脉冲.jpg

评分

参与人数 1黑币 +35 收起 理由
admin + 35 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:69679 发表于 2015-5-30 10:16 | 显示全部楼层
我在给别人做项目,其他模块程序都已经调试完,就在可控硅这卡住了,在这里拜托各位了,硬件都换了一遍,程序也调试了好几遍,就是不见效果
回复

使用道具 举报

ID:81546 发表于 2015-5-30 11:00 | 显示全部楼层
你的电路图呢?是哪个位置的电压只有100多伏呢?

评分

参与人数 1黑币 +35 收起 理由
admin + 35 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:81546 发表于 2015-5-30 11:02 | 显示全部楼层
这个电压的输出波形呢?你的可控硅是单向的吧?是半波整流吧?如果是半波整流,132伏就较正常了。

评分

参与人数 1黑币 +10 收起 理由
海哥沧海一笑 + 10

查看全部评分

回复

使用道具 举报

ID:69679 发表于 2015-5-30 12:06 | 显示全部楼层
zhuzhiwei 发表于 2015-5-30 11:02
这个电压的输出波形呢?你的可控硅是单向的吧?是半波整流吧?如果是半波整流,132伏就较正常了。

用的是bt137 双向可控硅,正半周触发一次,负半周触发一次,输出电压是灯泡两端电压。
u=4009169445,3857958471&amp;fm=21&amp;gp=0.jpg
回复

使用道具 举报

ID:81561 发表于 2015-5-30 12:58 | 显示全部楼层
你用的可能是单向可控硅上句错了。
你的可能触发宽度不够。
你想啊,刚过零时,可控硅两端电压很小,触发电流很小,触发不了。

评分

参与人数 2黑币 +45 收起 理由
admin + 35 回帖助人的奖励!
海哥沧海一笑 + 10 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:61876 发表于 2015-5-30 13:03 | 显示全部楼层
根据电路看,这样触发方式不是很好,一个问题是接在灯泡一端的电阻的阻值很关键,阻值过大会使触发电流过小,阻值过小又会使触发电压过低,并且作为负载的灯泡的功率的大小也对触发产生影响,所以建议换一种触发方式来试一下,又会有所改变的,可控硅全部导通后,灯泡端电压往往略高于电源电压。

评分

参与人数 2黑币 +45 收起 理由
admin + 35 回帖助人的奖励!
海哥沧海一笑 + 10 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:69679 发表于 2015-5-30 15:08 | 显示全部楼层
leeyeage 发表于 2015-5-30 12:58
你用的可能是单向可控硅上句错了。
你的可能触发宽度不够。
你想啊,刚过零时,可控硅两端电压很小,触发 ...

你这个问题,我已经试验过了,无论是触发脉冲时间加长,还是出发时刻后移,效果都不变,我想问题应该不在程序上,谢谢回复
回复

使用道具 举报

ID:69679 发表于 2015-5-30 20:02 | 显示全部楼层
gaozhaohong 发表于 2015-5-30 13:03
根据电路看,这样触发方式不是很好,一个问题是接在灯泡一端的电阻的阻值很关键,阻值过大会使触发电流过小 ...

明天试一下,谢谢,十分感谢
回复

使用道具 举报

ID:74245 发表于 2015-6-1 08:20 | 显示全部楼层
过零检测那里电路原理图是怎样的,会不会存在移相?

评分

参与人数 1黑币 +35 收起 理由
admin + 35 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:69679 发表于 2015-6-1 14:25 | 显示全部楼层
yesonjob 发表于 2015-6-1 08:20
过零检测那里电路原理图是怎样的,会不会存在移相?

不会,用示波器看了
回复

使用道具 举报

ID:69679 发表于 2015-6-1 23:07 | 显示全部楼层
yesonjob 发表于 2015-6-1 20:01
今天我试验成功了,通过软件调节触发时间(导通角)可以实现调节交流电压220/185/160/130V,硬件原理图如下 ...

非常感谢
回复

使用道具 举报

ID:883242 发表于 2024-1-19 17:02 | 显示全部楼层
单片机IO口驱动电流太小了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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