可用於單片機控制可控硅電路中,可減小產品的體積和重量。……
后面的是通過單片機控制的可控硅,控制白熾燈的亮度
/////////////////////
過零檢測電路
電阻參數通過驗證,可用
//////////////////
我的硬件電路圖:
引用
大家看看這個用LM358的電路做過零檢測,AC0接51單片機的INT0非,下圖來源http://bbs.mydigit.cn/read.php?tid=221794
看看我的程序吧,是這樣的,就是用起來漸變時燈有些閃,還沒找到原因:
原因找到了,原來是做過零檢測的變壓器接到了負載(白熾燈)之后了,造成中斷信號受到干擾引起閃爍!!
程序上又稍改了一下時間參數,無級漸變,淡入淡出,見26樓視頻效果,這個程序很給力:
引用
#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char
#define ON 0
#define OFF 1
………………………………
void main()
{
TMOD = 0x11;
EA=1;
TCON=0x05;
………………
for(;;)
{
DispInfo( );
Display( );
keyscan( );
}
}
…………………………
void keyscan()
{
……………………
if(S1_num==0)
{
if (S2==0)
mDelay(10);
if (S2==0)
if (K_Less30s>59)
{
LampGradual();
}
}
}
void LampGradual()
{
Gradual=Lamp1;
K_Less30s=0; //按開關燈鍵間隔小於30秒標記及時長記錄
EX0=1; //開外部中斷0
ET0=1;
TR0=1;
ET1=1; //定時器1中斷允許
IT0=1; //INT0為下降沿觸發(以前忘了這個,漸變時卻不亮,呵呵)
On_Init=7000; //漸開定時觸發初始化為10ms,並遞減
Off_Init=4000; //漸關定時觸發初始化為0ms,並遞增
}
// ********************************************************************
void timer0() interrupt 1 //實時時鍾中斷程序
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
Time50ms++;
if(Time50ms==20) //實時時鍾走時累計
{
Time50ms=0;
Sec++;
if(K_Less30s<60) //|| OnTime==1 || OffTime==1 //***********按鍵后或定時時間到后開關燈*************
{
K_Less30s++;
if(K_Less30s==30) //30秒后********
{
K_Less30s=60; //封閉漸開漸關操作,
Lamp1=~Gradual;
EX0=0; //30秒后關中斷
ET1=0; //30秒后關定時器1
ET0=0;
TR0=0;
}
}
}
}
void INT0_AC0() interrupt 0 //外部中斷0,AC過0時,50Hz交流電每秒過零100次,每次間隔10ms
{
ET1=1; //定時器1中斷允許
TR1=0; //定時器1開始計時
if(Gradual==OFF) //漸開
{
--On_Init; //On_Init-=2; //每10ms
a=(65536-On_Init)/256; //定時初值
b=(65536-On_Init)%256;
}
if(Gradual==ON) //漸關
{
++Off_Init; //Off_Init+=2;
a=(65536-Off_Init)/256;
b=(65536-Off_Init)%256; //
} //
TH1=a;
TL1=b;
TR1=1; //開始計時
}
void timer1() interrupt 3 //定時器1中斷程序(燈漸變移相控制)
{
uchar i;
Lamp1=ON; //燈1的觸發脈沖
{
for(i=0;i<2;i++); //延時 X μs
Lamp1=OFF;
}
}
////////////////
3063是過零打開的,沒法調整導通角的,硬件上就不行了。個人建議還是換個光耦。
這個要選擇3020系列的非過零檢測的光耦,不過本人也不做硬件這類的,3020峰值電壓400v不知道耐壓夠不,程序我不會寫,可以給你個思路,自己寫程序
你 要一個過零檢測電路,一個可控硅觸發電路,這個你應該不成問題了,程序上,一個半波10ms,你要幾級調光就分把這個10ms分幾份,不是等份哦,要不調 光不均勻的,你可以自己實驗,我也說不上,每次單片機檢測到過零信號后就在,如果你要開的是第幾檔,你就在花去前面幾檔的時間后給空空硅電路一個觸發信 號,然后等下一個過零信號。
//////////////
過零檢測電路圖
發布: | 作者: | 來源: tianhaizhou | 查看:1598次 | 用戶關注:
如下圖所示為按上述思想設計的電壓正向過零檢測電路。220V的交流電首先經過電阻分壓,然后進行光電耦合,假設輸入的是A相電壓,則在A相電壓由負半 周向正半周轉換時,圖中三極管導通並工作在飽和狀態,會產生一個下降沿脈沖送入ADμC812的INT0引腳使系統進入中斷程序。微機系統進入中斷程序 后,發出采樣命令並從采樣保持器讀取無功電流值Iqm,這個無功電流即為A相的無功電流,經過1/4個周期電壓達到最大值,此時對電壓進行采樣,得到 UM,由UM=1.414U可以得到電壓有效值U。
///////////////////
過零檢測電路,如果需要十分精准可以用電阻分壓后用電壓比較器
過零的電阻只用一個100K很危險的,還是用兩個50K比較好。功率耐壓的問題。
因為是雙向觸發所以頻率有100hz哦,還行基本看不出閃