找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 8694|回復(fù): 16
收起左側(cè)

單片機(jī)做可控硅控制調(diào)光,能檢測(cè)到過(guò)零脈沖但燈泡只出現(xiàn)不定時(shí)的閃爍,懇請(qǐng)大神們指點(diǎn)!

[復(fù)制鏈接]
ID:156494 發(fā)表于 2018-1-29 16:03 | 顯示全部樓層 |閱讀模式
本帖最后由 15240718601 于 2018-1-29 22:02 編輯

單片機(jī)能正確檢查到過(guò)零脈沖,但是延時(shí)移相程序控制不了燈泡亮度,只是偶爾慢閃,跳動(dòng)的特別厲害。

電路原理圖:

原理圖

原理圖

實(shí)體圖

實(shí)體圖

過(guò)零檢測(cè)波形

過(guò)零檢測(cè)波形

過(guò)零檢測(cè)波形

過(guò)零檢測(cè)波形


可控硅調(diào)光的單片機(jī)源碼:
  1. #include <reg52.h>//12c5a60s2單片機(jī)代碼
  2. sbit beep=P2^0;
  3. sbit pwmb=P3^3;
  4. sbit key=P3^4;
  5. unsigned int a,m,n,z,i,vaule,num;
  6. void delay_ms(unsigned int z)
  7.            {
  8.                 unsigned int m,n;
  9.                 for(m=z;m>0;m--)
  10.                 for(n=880;n>0;n--);        
  11.         }
  12. void delay90us(void)   //誤差 0us
  13. {
  14.     unsigned char a,b;
  15.     for(b=3;b>0;b--)
  16.         for(a=13;a>0;a--);
  17. }

  18. void di(){beep=0;delay_ms(50);beep=1;delay_ms(50);}

  19. void int0_init()                    //外部中斷0初始化函數(shù)  
  20. {  
  21.     EA = 1;     //打開(kāi)總中斷  
  22.     IT0 = 1;    /*設(shè)置中斷觸發(fā)方式:  
  23.                                     ITx = 0;  //  低電平觸發(fā)  
  24.                                   ITx = 1;  // 下降沿                   */  
  25.     EX0 = 1;    //打開(kāi)外部中斷  
  26. }
  27. void InitTimer0(void)
  28. {
  29.         TMOD = 0x01;
  30.    TH0=0xff;//定時(shí)0.1ms
  31.    TL0=0x9c;
  32.     EA = 1;
  33.     ET0 = 1;
  34.    //TR0 = 1;
  35. }
  36. void main()
  37. {
  38.         int0_init();
  39.         InitTimer0();
  40.         pwmb=1;
  41.         while(1)
  42.         {
  43.                            EA=1;
  44.                         if(key==0)
  45.                         {        
  46.                                 EA=0;                        
  47.                                 delay_ms(10);
  48.                         
  49.                                 if(key==0)
  50.                                 {
  51.                                                 di();
  52.                                         if(vaule==100)
  53.                                         vaule=0;
  54.                                         while(!key);
  55.                                         vaule++;
  56.                                 }
  57.                                 EA=1;        
  58.                         }
  59.         }        
  60. }


  61. void int0_isr(void) interrupt 0    //外部中斷0服務(wù)函數(shù)  
  62. {  
  63.         i++;
  64.         TR0=1;                     
  65. }  

  66. void Timer1Interrupt(void) interrupt 1
  67. {  
  68.         unsigned char i;
  69.     TH0=0xff;//定時(shí)0.1ms
  70.     TL0=0x9c;
  71.         a++;
  72.         num++;   
  73.         if(num==vaule)                //改變num的值即可改變移相觸發(fā)時(shí)間,即改變負(fù)載功率大小。num的范圍:0<num<100
  74.                 {
  75.                         TR0=0;
  76.                                                 num=0;
  77.                         pwmb=0;        //觸發(fā)MOC3061導(dǎo)通,即觸發(fā)可控硅導(dǎo)通
  78.                         for(i=0;i<5;i++);//延時(shí)2us
  79.                         pwmb=1;
  80.                                                 TH0=0xff;//定時(shí)0.1ms
  81.                                             TL0=0x9c;  
  82.                                 }        
  83. }
復(fù)制代碼

當(dāng)觸發(fā)脈沖相位超出過(guò)零區(qū)間時(shí)燈泡反而不亮!

當(dāng)觸發(fā)脈沖相位超出過(guò)零區(qū)間時(shí)燈泡反而不亮!

當(dāng)觸發(fā)電平在過(guò)零區(qū)間時(shí),燈泡就亮

當(dāng)觸發(fā)電平在過(guò)零區(qū)間時(shí),燈泡就亮
回復(fù)

使用道具 舉報(bào)

ID:123289 發(fā)表于 2018-1-29 19:04 | 顯示全部樓層
有一種情況需要你注意一下:
如果U4耐壓不夠,就會(huì)自動(dòng)觸發(fā)(當(dāng)電壓達(dá)到擊穿值時(shí)就導(dǎo)通,不受控)。所以請(qǐng)查一下U4的耐壓是多少?
回復(fù)

使用道具 舉報(bào)

ID:111634 發(fā)表于 2018-1-29 20:45 | 顯示全部樓層
本帖最后由 zl2168 于 2018-1-29 20:49 編輯

MOC3061是自動(dòng)過(guò)零觸發(fā),不需要過(guò)零脈沖。
交流電源通斷控制電路.jpg

回復(fù)

使用道具 舉報(bào)

ID:111634 發(fā)表于 2018-1-29 20:54 | 顯示全部樓層
可控硅控制調(diào)光有二種方法:一是在半周期內(nèi)調(diào)相觸發(fā),另一個(gè)是利用過(guò)零脈沖,調(diào)功觸發(fā)。
智能型即熱式熱水器控制實(shí)例.PNG
回復(fù)

使用道具 舉報(bào)

ID:58628 發(fā)表于 2018-1-29 21:03 | 顯示全部樓層
moc3061是過(guò)0觸發(fā)的,移不了相,且觸發(fā)電流好象要150MA
回復(fù)

使用道具 舉報(bào)

ID:156494 發(fā)表于 2018-1-29 21:17 | 顯示全部樓層
yzwzfyz 發(fā)表于 2018-1-29 19:04
有一種情況需要你注意一下:
如果U4耐壓不夠,就會(huì)自動(dòng)觸發(fā)(當(dāng)電壓達(dá)到擊穿值時(shí)就導(dǎo)通,不受控)。所以請(qǐng) ...

我把接控制的線拔去后就不會(huì)亮了
回復(fù)

使用道具 舉報(bào)

ID:156494 發(fā)表于 2018-1-29 21:18 | 顯示全部樓層
zl2168 發(fā)表于 2018-1-29 20:45
MOC3061是自動(dòng)過(guò)零觸發(fā),不需要過(guò)零脈沖。

那要呢,會(huì)怎樣?
回復(fù)

使用道具 舉報(bào)

ID:156494 發(fā)表于 2018-1-29 21:42 | 顯示全部樓層
yzwzfyz 發(fā)表于 2018-1-29 19:04
有一種情況需要你注意一下:
如果U4耐壓不夠,就會(huì)自動(dòng)觸發(fā)(當(dāng)電壓達(dá)到擊穿值時(shí)就導(dǎo)通,不受控)。所以請(qǐng) ...

觸發(fā)脈沖只在過(guò)零區(qū)間可以觸發(fā)可控硅,過(guò)零區(qū)間之外就不得了C:\Users\Administrator\Desktop\stc12c5a60s2
回復(fù)

使用道具 舉報(bào)

ID:156494 發(fā)表于 2018-1-29 21:53 | 顯示全部樓層
yzwzfyz 發(fā)表于 2018-1-29 19:04
有一種情況需要你注意一下:
如果U4耐壓不夠,就會(huì)自動(dòng)觸發(fā)(當(dāng)電壓達(dá)到擊穿值時(shí)就導(dǎo)通,不受控)。所以請(qǐng) ...

不是耐壓?jiǎn)栴},我要是拿去觸發(fā)脈沖燈泡是不亮的
回復(fù)

使用道具 舉報(bào)

ID:156494 發(fā)表于 2018-1-29 21:55 | 顯示全部樓層
只在過(guò)零時(shí)給觸發(fā)脈沖才有可能點(diǎn)亮燈泡,其他區(qū)間觸發(fā)卻沒(méi)有亮!
回復(fù)

使用道具 舉報(bào)

ID:111634 發(fā)表于 2018-1-30 16:23 | 顯示全部樓層
15240718601 發(fā)表于 2018-1-29 21:18
那要呢,會(huì)怎樣?

調(diào)功觸發(fā)。例如,以100個(gè)過(guò)零脈沖(小周期10ms)為一個(gè)大周期,控制導(dǎo)通小周期的個(gè)數(shù),即可控制LED亮度。
回復(fù)

使用道具 舉報(bào)

ID:111634 發(fā)表于 2018-1-30 16:26 | 顯示全部樓層
仔細(xì)體會(huì)理解我上一句話,在此基礎(chǔ)上編程,就能成功。祝你好運(yùn)!
回復(fù)

使用道具 舉報(bào)

ID:156494 發(fā)表于 2018-1-30 22:01 | 顯示全部樓層
abc123194 發(fā)表于 2018-1-29 21:03
moc3061是過(guò)0觸發(fā)的,移不了相,且觸發(fā)電流好象要150MA

確實(shí)是這樣的,謝謝
回復(fù)

使用道具 舉報(bào)

ID:156494 發(fā)表于 2018-1-30 22:06 | 顯示全部樓層
zl2168 發(fā)表于 2018-1-30 16:26
仔細(xì)體會(huì)理解我上一句話,在此基礎(chǔ)上編程,就能成功。祝你好運(yùn)!

恩恩謝謝,其實(shí)是我用錯(cuò)光耦了,帶過(guò)零檢測(cè)的光耦是不能任意截取觸發(fā)的,只能實(shí)現(xiàn)半波功率的開(kāi)啟和關(guān)斷
回復(fù)

使用道具 舉報(bào)

ID:156494 發(fā)表于 2018-1-30 22:14 | 顯示全部樓層
zl2168 發(fā)表于 2018-1-30 16:23
調(diào)功觸發(fā)。例如,以100個(gè)過(guò)零脈沖(小周期10ms)為一個(gè)大周期,控制導(dǎo)通小周期的個(gè)數(shù),即可控制LED亮度。

嗯,經(jīng)典,大師
回復(fù)

使用道具 舉報(bào)

ID:58628 發(fā)表于 2018-2-1 14:59 來(lái)自觸屏版 | 顯示全部樓層
abc123194 發(fā)表于 2018-1-29 21:03
moc3061是過(guò)0觸發(fā)的,移不了相,且觸發(fā)電流好象要150MA

更正,3061發(fā)光二極管電流為15ma
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表