1. pwm占空比控制220v白熾燈
看你問題應該是出在你電路里沒有加過零檢測的原因。占空比控制交流負載是需要過零檢測的,控制原理是改變過零點之後的導通時間,在半個周期內導通時間越長輸出功率越大,反之越小。樓主的問題是由於你單片機產生的PWM和交流的50HZ周期波不同步造成的。。。希望對你有幫助
2. 用51單片機PWM控制固態繼電器調節白熾燈的亮度,怎麼燈一閃一閃的繼電器上寫的具有隨機和過零兩種接通
這種情況您可以嘗試:
1、是因為PWM頻率過低,周期應當在50ms以下,人眼才能形成視覺殘留,但是頻繁的啟動白熾燈,燈的壽命會急劇縮短;
2、你可以在燈前增加一個電感,電感在PWM占空時,將會釋放所儲存的電能,以持續對用電器供電;
3、不使用PWM,通過燈前串聯多個並聯的電阻(電容),改變流經的電流強弱。
這三種是我的一點建議,但是白熾燈啟動時會有一個較大電流,而且也不適用於頻繁啟動,否則,使用壽命將會非常短暫,祝你好運!
3. 基於MCU控制的無極交流調光控制器設計
1 調光控制器設計
在日常生活中,我們常常需要對燈光的亮度進行調節。本調光控制器通過單片機控制雙向可控硅的導通來實現白熾燈(純阻負載)亮度的調整。雙向可控硅的特點是導通後即使觸發信號去掉,它仍將保持導通;當負載電流為零(交流電壓過零點)時,它會自動關斷。所以需要在交流電的每個半波期間都要送出觸發信號,觸發信號的送出時間就決定了燈泡的亮度。
調光的實現方式就是在過零點後一段時間才觸發雙向可控硅開關導通,這段時間越長,可控硅導通的時間越短,燈的亮度就越低;反之,燈就越亮。
這就要求要提取出交流電壓的過零點,並以此為基礎,確定觸發信號的送出時間,達到調光的目的。
1.1 硬體部分
本調光控制器的框圖如下:
控制部分:為了便於靈活設計,選擇可多次寫入的可編程器件,這里選用的是ATMEL的AT89C51單片機。
驅動部分:由於要驅動的是交流,所以可以用繼電器或光耦+可控硅(晶閘管SCR)來驅動。繼電器由於是機械動作,響應速度慢,不能滿足其需要。可控硅在電路中能夠實現交流電的無觸點控制,以小電流控制大電流,並且不象繼電器那樣控制時有火花產生,而且動作快、壽命長、可靠性高。所以這里選用的是可控硅。
負載部分:本電路只能控制白熾燈(純阻負載)的亮度。
1.2 軟體部分
要控制的對象是50Hz的正弦交流電,通過光耦取出其過零點的信號(同步信號),將這個信號送至單片機的外中斷,單片機每接收到這個同步信號後啟動一個延時程序,延時的具體時間由按鍵來改變。當延時結束時,單片機產生觸發信號,通過它讓可控硅導通,電流經過可控硅流過白熾燈,使燈發光。延時越長,亮的時間就越短,燈的亮度越暗(並不會有閃爍的感覺,因為重復的頻率為100Hz,且人的視覺有暫留效應)。由於延時的長短是由按鍵決定的,所以實際上就是按鍵控制了光的強弱。
理論上講,延時時間應該可以是0~10ms內的任意值。在程序中,將一個周期均分成N等份,每次按鍵只需要去改變其等份數,在這里,N越大越好,但由於受到單片機本身的限制和基於實際必要性的考慮,只需要分成大約100份左右即可,實際採用的值是95。
可控硅的觸發脈沖寬度要根據具體的光耦結合示波器觀察而定,在本設計中取20 μs。程序中使用T1來控制這個時間。
對兩個調光按鍵的處理有兩種方式:一種是每次按鍵,無論時間的長短,都只調整一個台階(亮或暗);另一種是隨按鍵時間的不同,調整方法不同:短按只調整一個台階,長按可以連續調整。如前面所述,由於本設計中的台階數為95(N=95),如果使用前一種方式,操作太麻煩,所以用後者較為合理。
2 各單元電路及說明
2.1 交流電壓過零點信號提取
交流電壓過零點信號提取電路如圖2所示,圖中的同步信號就是我們需要的交流電壓過零點信號。各部分波形如圖3所示。
圖中整流後波形中的水平虛線表示光藕P52l輸入二極體的門限電壓。P521是TLP521的簡稱,下圖是其引腳圖。引腳圖中器件名的後綴「-1」表示包含一組光藕。
2. 2 主控單元
主控單元以AT89C51單片機為核心,交流電壓過零點信號提取電路中產生的同步信號SYN接到AT89C5l的INT0,此信號的下降沿將使AT89-C51產生中斷,以此為延時時間的起點。
三個按鍵只用於控制一路燈:一個為開關,另外兩個分別為提高亮度和降低亮度。
74HC573用於輸出控制可控硅的導通的觸發信號。
220V交流主電源導通區間、同步信號和觸發信號的時序關系如圖6所示。
圖中的陰影部分表示可控硅的導通區間,它的大小決定了燈的亮度。改變延時時間可改變觸發信號和同步信號的相位關系,也改變了可控硅的導通區間的大小,達到調光的目的。
2.3 驅動單元
圖中,L1_D是單片機輸出的觸發信號,該信號通過光控可控硅MOC3022去驅動可控硅T435。受控的白熾燈接在Ll和零線(圖中未畫出)之間。
MOC3022是DIP-6封裝的光控可控硅。其1、2腳分別為二極體的正、負極:4、6腳為輸出迴路的兩端;3、5腳不用連接。如圖8所示。
T435-400是可控硅,「4」表示主迴路電流是4A;「35」表示觸發端的最大電流是35mA,一般該端有最大電流的5%就可保證可靠地觸發。T435-400外型圖如圖9所示。
3 程序流程圖
4 結束語
本控制器使用了三個開關控制一路燈,主要是為了在教學過程中降低難度。也可改為一個開關控制一路燈,比如短按為開、關,第一次長按為降低亮度,連續的第二次長按為提高亮度等。電路不用改動,只需修改程序即可。
學生通過製作該調光控制器,可以掌握單片機、光藕和可控硅等方面的知識和使用技能,特別是後兩者,學生較少接觸。由於該調光控制器調光的效果比較好,對提高學生的學習興趣有很大幫助,教學效果良好。
4. 用51 單片機可以實現普通白熾燈的軟啟動及亮度調節嗎需要用些什麼請高手賜教!
樓上的瞎說啥呢!?不懂的話,就別胡說!
很簡單的東西!
五年前,我就做過。
單片機的一個外部中斷測交流電的過零點,外部中斷響應後,啟動定時器,預置初始值,定時器中斷後某個I/O口發脈沖串,此脈沖串去觸發雙向可控硅即可。
軟體改變定時器的初始值,使脈沖串在過零點之後0-10ms內變化,即可實現普通白熾燈的軟啟動及亮度調節。
5. 你好,我想用單片機輸出PWM信號控制IGBT的開關,進而控制白熾燈的亮度,進行調節。不知道是否可行如何做
可以的,脈沖調制,相當於調節了輸出的平均電流。。可以控制亮度的。。。
看看這個程序吧,控制IGBT的導通時間來調節吧。。具體我也沒用過呢。
1、學習目的:利用定時器產生PWM,了解原理和使用方法
2、硬體要求:LED燈 定時器
3、試驗現象:LED燈由亮到滅,由滅到亮逐步變化,也就是調光現象
------------------------------------------------*/
#include<reg52.h> //包含頭文件,一般情況不需要改動,頭文件包含特殊功能寄存器的定義
sbit LED = P1^2; //定義LED燈,通過LED顯示調光效果
unsigned char CYCLE; //定義周期 該數字X基準定時時間 如果是10 則周期是10 x 0.1ms
unsigned char PWM_ON ;//定義高電平時間
/******************************************************************/
/* 延時函數 */
/******************************************************************/
void delay(unsigned int cnt)
{
while(--cnt);
}
/******************************************************************/
/* 主函數 */
/******************************************************************/
main()
{
bit Flag;
TMOD |=0x01; //定時器設置 0.1ms in 12M crystal
TH0=(65536-100)/256;
TL0=(65536-100)%256; //定時0.1mS
IE= 0x82; //打開中斷
TR0=1;
CYCLE = 10; // 時間可以調整 這個是10調整 8位PWM就是256步
while(!Flag)
{
delay(20000); //延時時間,從一個亮度到下一個亮度的間隔時間,速度快就能看到連續效果
PWM_ON++; //這個使用較長延時,以便能看清楚變化過程
if(PWM_ON == CYCLE)
{ //這個里可以添加其他程序 如到最亮時候控制設備
Flag=1;
}
}
while(Flag) //亮度遞減 同上,是個相反的過程
{
delay(20000);
PWM_ON--;
if(PWM_ON == 0)
{
Flag=0;
}
}
}
/******************************************************************/
/* 定時器中斷函數 */
/******************************************************************/
void tim(void) interrupt 1 using 1
{
static unsigned char count;
TH0=(65536-100)/256;
TL0=(65536-100)%256; //定時0.1mS
if (count==PWM_ON)
{
LED = 1; //燈滅
}
count++;
if(count == CYCLE)
{
count=0;
if(PWM_ON!=0) //如果左右時間是0 保持原來狀態
LED = 0; //燈亮
}
}
6. 晶閘管的連接
這只是一個晶閘管,裡面沒有什麼外圍電路什麼的,就是幾個晶閘管連起來,在外麵包了個裝而已,如果你想設計一個硬體電路,用單片機控制晶閘管來控制白熾燈燈光的亮度的話,你應該是需要一個調壓模塊,所以我建議你最好買一個調壓模塊,有整個調壓模塊的,裡面晶閘管和外圍電路什麼的都包含,我想那樣應該簡單一點兒,這個晶閘管的說明好像現在還沒有啊。。。。。。。還是建議買一個調壓模塊,祝成功。。。。
7. 我想用51單片機控制家裡的電燈電路
電路如圖
8. 單片機控制雙向可控硅無級調光的過零電路怎麼弄啊
1. 不需要PWM調整占空比輸出,只需要固定為50%占空比脈沖信號輸出,也可以用定時器控制產生,頻率500Hz~1KHz,
2. 過零檢測信號可以用半波整流獲得
3. 用ATmega16控制市電220V/50HZ的白熾燈過於奢侈,最多用ATmega8L即可。注意電源設計,一般不隔離,調試注意安全。可控硅驅動電流需要足夠大,過大或者過小都會燒可控硅。
9. 關於單片機出來的PWM控制220V交流電中的白熾燈亮度
白熾燈直流交流無所謂,所以可以先把電源全波整流以後再用PWM控制場效應管