-
:loveliness:
-
回楼上:检测峰值,个人觉得不可靠。过零检测,稍有偏差,就会导致错漏过某个半波,灯就会闪烁。
照我贴出来的那个图呢,过零检测是很准的,也能调光,只是最小值为半波,不是全灭;
我还试过,用开关电源给单片机供电,用火线降压后直接接入单片机的检测脚,这样检测不准。50HZ的波形不对称,一个半波大概是8ms,另一个则成了12ms,调光效果很差;
我还试过,用变压器降压后的其中一路作检测信号,同时该变压器的输出,经整流、稳压后作单片机电源,这样检测脚的输入信号就没有波形不对称的现象,但是跟电网的过零点不符,有迟滞,也是不能无级调光;
综上所述,直接用火线来作检测信号,同时,用火线降压后作单片机电源,能可靠地检测到过零点。现存问题就是,如何让负半周也能可调。。。欢迎有兴趣的网友一起验证一下,呵呵
-
单片机程序很简单。过零检测--每到零点,方波翻转。此时在中断里移相,到指定角度,再开启。每10ms重复一次。
-
刚才用示波器看了,老是只能调整半波
-
怎么直接贴图啊?没图,大家交流起来不方便。今天发觉,把示波器去掉,稳定多了。不过还是有些许不规则的闪动。就是有时候漏掉一个波形。过零检测、中断计数,两个同时用上了,怎么还会这样呢?奇怪。而且,调得暗到一定程度时,就闪烁得厉害了。远没有模拟电路的调光器效果好
-
:loveliness: 主函数就是:初始化,然后while(1);
-
:) :) :) :loveliness: :loveliness: :loveliness:
-
这等资料也要卖钱?:@:
-
现在是单片机输出口脉宽无误,但是,负载的波形有点乱,有时候负半波会削去,灯光会闪烁。看了模拟电路的调光器的波形,那叫一个漂亮。。。我的软件有问题吗?
-
咱继续:AC220V,阻容降压给单片机供电,L线用电阻降压后,做过零检测;100US中断,中断中计数,并调整移相角。
/***************************中断0************************/
void timer0() interrupt 1 using 1 //
{
uchar hot_count; //加热计时器
uchar chk_old; //检测旧值
TH0 = 0xff; //100us中断
TL0 = 0x9c; //9c
if(chk!=chk_old)
{
hot_count = 0;
}
if(hot_count
-
有无闪烁调光的代码吗?
-
U盘的资料收集了不少,有时间我做个
-
入门的菜鸟!