|
針對(duì)網(wǎng)上很多用單片機(jī)控制雙向可控硅來(lái)實(shí)現(xiàn)無(wú)極調(diào)光或無(wú)極調(diào)速的例子,自己親自測(cè)試了很多是有問題的,不是出現(xiàn)不可調(diào)就是出現(xiàn)晃動(dòng)等問題。自己研究了幾天,經(jīng)過自己親自試驗(yàn)后確實(shí)可行的電路圖和源代碼發(fā)出了(在白熾燈與單相電風(fēng)扇實(shí)測(cè)是可以的),供大家參考,一起學(xué)習(xí)。請(qǐng)大家批評(píng)指正!
特別注意問題:1、電路圖左邊了兩個(gè)電路都為電壓過零檢測(cè)電路,可以選其一;2、雙向可控硅驅(qū)動(dòng)器芯必須是MOC3022/MOC3023(不帶過零的);3、注意雙向可控硅BTA06的引腳接線;
電路原理圖如下:
QQ截圖20180804215317.png (13.29 KB, 下載次數(shù): 102)
下載附件
2018-8-4 21:59 上傳
QQ截圖20180804215841.png (42.14 KB, 下載次數(shù): 79)
下載附件
2018-8-4 21:59 上傳
單片機(jī)源程序如下:
- #include "STC15WXXX.h"
- sbit lamp_pwm=P3^6;//可控硅位
- sbit key0=P3^4;//降低亮度按鍵位
- sbit key1=P3^5;//增加亮度按鍵位
- unsigned int inc;
- void delay1ms(unsigned int t)
- {
- unsigned int i;
- while(t--)for(i=0;i<580;i++);
- }
- void INT0s()interrupt 0//INT0外部中斷,過零檢測(cè)觸發(fā)
- {
- TR0=0;
- if(!key0)//降低亮度
- {
- inc+=100;
- if(inc>=9900)inc=9900;
- }
- if(!key1)//增加亮度
- {
- inc-=100;
- if(inc<=1000)inc=1000;
- }
- TH0=(65536-inc)/256;
- TL0=(65536-inc)%256;
- TR0=1;
- }
- void timer0()interrupt 1
- {
- unsigned char i;
- TR0=0;
- //給觸發(fā)脈沖
- lamp_pwm=0;
- for(i=0;i<20;i++); //延時(shí)20us
- lamp_pwm=1;//燈滅
- }
- void main()
- {
- P0M0 = 0x00;
- P0M1 = 0x00;
- P1M0 = 0x00;
- P1M1 = 0x00;
- P2M0 = 0x00;
- P2M1 = 0x00;
- P3M0 = 0x00;
- P3M1 = 0x00;
- P4M0 = 0x00;
- P4M1 = 0x00;
- P5M0 = 0x00;
- P5M1 = 0x00;
- P6M0 = 0x00;
- P6M1 = 0x00;
- P7M0 = 0x00;
- P7M1 = 0x00;
- P0=P1=P2=P3=P4=0xff;
-
- inc=9900;
- AUXR &= 0x7F; //定時(shí)器時(shí)鐘12T模式
- TMOD &= 0xF0; //設(shè)置定時(shí)器模式
- TMOD |= 0x01; //設(shè)置定時(shí)器模式
- TH0=(65536-inc)/256;
- ……………………
- …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼
所有資料51hei提供下載:
STC單相交流調(diào)光調(diào)壓調(diào)速控制.zip
(88.17 KB, 下載次數(shù): 170)
2018-8-4 22:01 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|
評(píng)分
-
查看全部評(píng)分
|