刘佑红 发表于 2025-5-28 09:54 电容限流获取过零信号?相位能够保证?电容的电流超前电压90°不会影响? |
50Hz市电使用可控硅过零触发调光?会不会出现闪烁? |
刘佑红 发表于 2025-5-28 09:54 桥式整流的交流输入与直流输出弄反了吧!能输出过零信号吗 |
jkangk123 发表于 2018-8-20 09:38 直接用带过零检测的光耦即可,例如:MOC3061 |
本帖最后由 刘佑红 于 2025-5-30 11:33 编辑 看到有朋友对过零信号还不太清楚,特发一个刚画的过零信号获得电路,虽没有实际测试,但应该没有问题。采用电容限流,可以避免电阻限流发热的问题。 ![]() 如想简化电路,可以使用内部是双发光二极管的光耦LTV354T等型号的,可以省去的D1-D4四个二极管。采用LTV354T光耦正脉冲过零信号,上升沿触发中断,可以简化外围电路,简化代码。如电路采用低压交流供电,则过零信号的取得就更简单了,如下图所示,我已应用在了交流点焊机控制板上。 ![]() |
我也仿制成功了, |
51hei图片_20250526093938.jpg (685.12 KB, 下载次数: 0)
51hei图片_20250526093929.jpg (692.51 KB, 下载次数: 0)
51hei图片_20250526093837.jpg (909.99 KB, 下载次数: 0)
我也仿制成功了,代码做了一些修改,我用的是STC15W402AS单片机 #include "STC15.h" sbit lamp_pwm=P3^4;//可控硅位 sbit key1=P1^2;//降低亮度按键位 sbit key2=P1^3;//增加亮度按键位 unsigned int inc; unsigned char trg1=0, trg2=0,cont1=0,cont2=0;//一定是全局变量 key1scan() { unsigned char a=!key1;//网上是异或运算a=key1^0x01,对于一位按键可以直接写成取反 trg1= a&(a^cont1); cont1=a; if(trg1&!key1) //网上是(trg1&key1)实际测试不能使用!!因为任何时候都不可能为真。只有改成(trg1&!key1)才可以完美执行!!! { inc+=1000; if(inc>=8000)inc=8000;//此处可以是自己需要执行的程序。(去掉前面的返回) } } key2scan() { unsigned char a=!key2;//网上是异或运算a=key2^0x01,对于一位按键可以直接写成取反 trg2= a&(a^cont2); cont2=a; if(trg2&!key2) { inc-=1000; if(inc<=1000)inc=1000;//此处可以是自己需要执行的程序。(去掉前面的返回) } } void timer_init() { inc=7000; TMOD|=0x01; TH0=(65536-inc)/256; TL0=(65536-inc)%256; IT0=1; //INT0下降沿触发 EX0=1; //外部中断允许 ET0=1; EA=1; //开总中断 AUXR &=~0X40; } void main() { unsigned int i; timer_init(); while(1) { key1scan(); key2scan(); for(i=0;i<60000;i++); //延时2us } } void INT0s()interrupt 0 using 0//INT0外部中断,过零检测触发 { TR0=0; TH0=(65536-inc)/256; TL0=(65536-inc)%256; TR0=1; } void timer1()interrupt 1 using 0//可控硅触发中断 { unsigned char i; lamp_pwm=0;//灯亮 for(i=0;i<20;i++);//延时2us lamp_pwm=1;//灯灭 } |
很不错,非常好的东西啊 |
现在看依旧很有说法 |
dianziren12 发表于 2023-6-15 10:57 保持可控硅驱动电压,避免过零或者电压低时可控硅无法导通,如果电路采用rc降压热地还可以省掉两个光耦, |
图中C1电容是什么作用,请大神指教 |
首先感谢楼主分享。![]() 1.这个不带有过零检测,会有抖动 2.制作成本太高了,可以考虑精简下 |
dj3365191 发表于 2019-8-20 10:46 我的也是和你一样的现象灯不亮 |
![]() 以下这些是不过零的: ![]() ![]() 总结:型号倒数第1个数字代表启动电流大小,1是15ma,2是10ma,3是5ma,CT301X系列的除外; 倒数第2个数字代表峰值电压,1是250V,2是400V,5是600V;倒数第2个数字为1,2,5的系列为不过零; ![]() 以下这些都事过零的: ![]() ![]() 总结:型号倒数第1个数字代表启动电流大小,1是15ma,2是10ma,3是5ma; 倒数第2个数字代表峰值电压,3是250V,4是400V,6是600V,8是800V;倒数第2个数字为3,4,6,8的系列为过零; |
盉飞沙 发表于 2019-3-22 14:47 现在有很多可控硅调光的LED灯,一般分为前沿触发或后沿触发,发须要单独的过零检测电路,不然LED的闪得很严重或电源异响 |
楼主 你那两个光耦用啥型号的 可控硅又是啥型号 |
void timer_init() { inc=0; TMOD|=0x01; TH0=(65536-inc)/256; TL0=(65536-inc)%256; IT0=1; //INT0下降沿触发 EX0=1; //外部中断允许 ET0=1; EA=1; //开总中断 } void INT0s()interrupt 0 using 0//INT0外部中断,过零检测触发 { TH0=(65536-inc)/256; TL0=(65536-inc)%256; TR0=1; if(!SW4) //降低亮度 { delay_ms(20); if(!SW4) { while(!SW4) switch(m) { case 0:inc=6000; m++;break; case 1:inc=4000; m++;break; case 2:inc=2000; m++;break; case 3:inc=5; m++;break; case 4:m=0; break; default: break; } } } } void timer1()interrupt 1 using 0//可控硅触发中断 { unsigned char i; P44=0; //灯亮 for(i=0;i<2;i++); //延时2us P44=1; //灯灭 } 我用100W的灯泡测试过,效果还可以;原理图就是楼上的图。 |
wsh62 发表于 2019-12-3 11:59 可以把你的原理图和程序发来看看嘛,非常感谢 |
改为一个按键,从暗到明4档,又从明到暗4档,已搞定。 |
终于淘汰了可控硅调光产品,不用再劳神费心了。 |
感谢楼主分享,学习下 |
wsh62 发表于 2019-11-14 11:21 楼主这个图调光有很多弊端,1:过零检测电路检测的过零时间和实际过零时间会有差异,解决方法可以,程序做 延时补偿,能达到调光效果! 2:过零检测使用运放来做,时间偏差会小很多! 3: 我做过此类调光,做了很多措施,最终还是在低亮度有所频闪!想了很多手段都没找到原因! 4:这个电路调光用作电动机类和热惯性大的应用是没问题的!白炽灯调光的频闪,真心无法忍受! |
能否把上面的程序改为一个按键,从暗到明4档,又从明到暗4档,多谢大师们指点。 |
盉飞沙 发表于 2019-3-22 14:47 我的想法是如果检测两个过零信号之间的时间,然后把这个时间分成50或者100段,1段导通的时候可控硅导通时间最长,灯泡最亮,100段导通的时候,可控硅导通时间最短,灯泡最暗。这种导通方式只适合电阻负载,不适合容性和感性负载,因为不是过零后导通。过零导通不是控制可控硅的导通角度,而是控制减少可控硅的导通周期。所以控制灯泡的时候会闪烁。仅供参考。 |
jkangk123 发表于 2018-8-20 09:38 既然是过零检测就是要过零的时候才能触发硬件。你没有硬件应该没法检测吧。 |
我也按这个电路做一个,刚开始光耦我用的是PC-17T1,没有成功,最后把光耦换成MOC3020,成功,效果很好。 |
谢谢分享程序与原理图 |
jkangk123 发表于 2019-5-3 15:48 我完全按照你给的原理图搭建的电路,而且还反复仔细分析过你的实物电路,也是和原理图一致的,但是烧录程序后始终没有任何的反应,灯根本不亮,我用LED灯代替光藕,程序烧录好上电调节上下键LED灯也是没有任何反应的, |
这个电路带感性负载有点不合适 |
SJ-123 发表于 2019-3-22 12:38 交流电反向导通的时候,你的可控硅还会导通吗 |
交流电负半周导通时候你的可控硅如何导通 |
SJ-123 发表于 2019-5-2 18:10 电路图和程序肯定是没问题的,实物都做出来了。 你的不亮可能还有很多原因,多找找问题出在哪 |
按照这个电路图和程序实际搭了个电路根本不能让灯亮呀 |
楼上的朋友,Q1是BTA-41双向可控硅,其实在本电路只无须用那么大的可控硅,一般的BTA-6就可以胜任了 |
请问一下,Q1的型号是什么呢?看不清楚。。。我也想做一个玩玩~~![]() |
请问各路前辈们 有没有不用硬件的过零检测 直接用软件做过零检测 |