標(biāo)題: 單片機(jī)控制繼電器通斷電設(shè)計(jì) [打印本頁]

作者: Vanessa    時(shí)間: 2017-3-24 21:39
標(biāo)題: 單片機(jī)控制繼電器通斷電設(shè)計(jì)
題目是通過單片機(jī)來控制繼電器從而達(dá)到通斷電的效果,通過DC12V電壓或者DC5V電壓來控制AC220V的通斷。然后達(dá)到的效果是類似5s5s斷,之后每1s累加一次,即下一次6s5s斷,再下一次7s通,5s...... 直至40s通,5s斷,持續(xù)循環(huán)這樣的
附有我畫的一部分原理圖,因?yàn)閯偨佑|,想知道一個(gè)繼電器能實(shí)現(xiàn)嗎?然后就是通過c語言編程實(shí)現(xiàn)功能呢還是需要怎么搞原理圖

作者: yzwzfyz    時(shí)間: 2017-3-25 01:12
基本正確,可以實(shí)現(xiàn)。
但復(fù)按鈕,接法不當(dāng),復(fù)位一次后,C3上的電放不掉。就不能再?gòu)?fù)位了。要等電容自放電結(jié)束,這需要很長(zhǎng)時(shí)間。
作者: zl2168    時(shí)間: 2017-3-25 09:05
2003驅(qū)動(dòng)電路7路用了一路,真可惜。沒有性價(jià)比更好的方案嗎?
作者: imxuheng    時(shí)間: 2017-3-26 11:13
用三極管驅(qū)動(dòng)繼電器就行了,給繼電器線圈并聯(lián)一個(gè)二極管來保護(hù)繼電器線圈。如果你要做調(diào)光建議用光耦+可控硅硬件電路,PWM控制方式
作者: 199419zzq    時(shí)間: 2017-3-26 14:31
原理圖正確,就看你編程能不能實(shí)現(xiàn)了
作者: wysh_2004    時(shí)間: 2017-3-26 14:42
三極管驅(qū)動(dòng)繼電器會(huì)省點(diǎn),繼電器觸點(diǎn)處應(yīng)并上一個(gè)消火花電容
作者: Vanessa    時(shí)間: 2017-3-26 18:00
zl2168 發(fā)表于 2017-3-25 09:05
2003驅(qū)動(dòng)電路7路用了一路,真可惜。沒有性價(jià)比更好的方案嗎?

三極管接法查的比較容易壞,正在考慮要不要用2003驅(qū)動(dòng)數(shù)碼管
作者: Vanessa    時(shí)間: 2017-3-26 18:01
imxuheng 發(fā)表于 2017-3-26 11:13
用三極管驅(qū)動(dòng)繼電器就行了,給繼電器線圈并聯(lián)一個(gè)二極管來保護(hù)繼電器線圈。如果你要做調(diào)光建議用光耦+可控 ...

調(diào)光是什么呢
作者: Vanessa    時(shí)間: 2017-3-26 18:01
199419zzq 發(fā)表于 2017-3-26 14:31
原理圖正確,就看你編程能不能實(shí)現(xiàn)了

正在往出憋程序
作者: Vanessa    時(shí)間: 2017-3-26 18:02
yzwzfyz 發(fā)表于 2017-3-25 01:12
基本正確,可以實(shí)現(xiàn)。
但復(fù)按鈕,接法不當(dāng),復(fù)位一次后,C3上的電放不掉。就不能再?gòu)?fù)位了。要等電容自放電 ...

能給個(gè)建議改正嗎,有點(diǎn)不太懂,謝謝
作者: Vanessa    時(shí)間: 2017-3-26 19:13
yzwzfyz 發(fā)表于 2017-3-25 01:12
基本正確,可以實(shí)現(xiàn)。
但復(fù)按鈕,接法不當(dāng),復(fù)位一次后,C3上的電放不掉。就不能再?gòu)?fù)位了。要等電容自放電 ...

那應(yīng)該怎么改呢?
作者: gcb2012    時(shí)間: 2017-3-26 19:14
用個(gè)8050驅(qū)動(dòng)繼電器
作者: 越快樂越墮落    時(shí)間: 2017-3-26 21:09
直接用三極管驅(qū)動(dòng)繼電器,加一個(gè)保護(hù)繼電器的二極管就好了,用ULN2003太浪費(fèi)了
作者: Vanessa    時(shí)間: 2017-3-26 22:14
越快樂越墮落 發(fā)表于 2017-3-26 21:09
直接用三極管驅(qū)動(dòng)繼電器,加一個(gè)保護(hù)繼電器的二極管就好了,用ULN2003太浪費(fèi)了

已經(jīng)改成三極管的了
作者: zl2168    時(shí)間: 2017-3-26 22:15
Vanessa 發(fā)表于 2017-3-26 18:00
三極管接法查的比較容易壞,正在考慮要不要用2003驅(qū)動(dòng)數(shù)碼管

只要在繼電器驅(qū)動(dòng)線圈兩端并聯(lián)二極管就可。
作者: imxuheng    時(shí)間: 2017-3-27 08:31
Vanessa 發(fā)表于 2017-3-26 18:01
調(diào)光是什么呢

不是用來做調(diào)光啊,看來我猜錯(cuò)了。調(diào)光把燈的亮度進(jìn)行調(diào)節(jié)
作者: Chandler1983    時(shí)間: 2017-3-29 16:42
用三極管驅(qū)動(dòng),繼電器。也可以用可控硅控制。
作者: wxc19960311    時(shí)間: 2017-4-11 23:09
原理圖基本沒錯(cuò)誤,程序中如果能達(dá)到設(shè)計(jì)的那樣,完全可以實(shí)現(xiàn)。加油
作者: dzbj    時(shí)間: 2017-4-11 23:41
我寫了一個(gè) 不知道對(duì)不對(duì) 一起學(xué)習(xí)吧

bit flag_one=0;                //第一次工作標(biāo)記
uchar num1s=0;                //1s計(jì)數(shù)器
uchar n=5;                        //總秒數(shù)計(jì)數(shù)器

void mast()        //主控
{
        if(flag_one==0)                //如果 第一次工作標(biāo)記為0 這里是你要求的第一次5s開5s關(guān)
        {
                jk=1;                                //繼電器吸合
                num1s=0;                        //延時(shí)5s
                while(num1s<n);
                jk=0;                                //繼電器關(guān)閉
                num1s=0;                        //延時(shí)5s
                while(num1s<n);
                flag_one=1;                        //第一次工作標(biāo)記置1 不再運(yùn)行5s間隔的狀態(tài)
                n++;                                //總秒數(shù)計(jì)數(shù)器自加
        }

        jk=1;                                //繼電器吸合
        num1s=0;                        //延時(shí)5+n秒 每次+1S
        while(num1s<n);
        n++;                                //總秒計(jì)數(shù)器自加
        jk=0;                                //繼電器關(guān)閉
        num1s=0;                        //延時(shí)5s 你要求開時(shí)間每次+1S 關(guān)時(shí)間不變
        while(n<5);
}

void Server_Time0() interrupt 1        //定時(shí)器服務(wù)程序
{
        TH0 = xx;                        //重裝定時(shí)初值 1s
        TL0 = xx;                        //重裝定時(shí)初值 1s
       
        num1s++;                        //1s計(jì)數(shù)器自加       
}

void main()
{
        Init_Time();        //定時(shí)器初始化 沒給你寫 基礎(chǔ)程序了

        while(1)
        {
                mast();                        //調(diào)用 主控程序
        }
}
作者: dzbj    時(shí)間: 2017-4-11 23:47
Vanessa 發(fā)表于 2017-3-26 18:00
三極管接法查的比較容易壞,正在考慮要不要用2003驅(qū)動(dòng)數(shù)碼管

三極管沒有很容易壞 現(xiàn)在有很多集成片子 有UN2008 當(dāng)年沒這些片子的時(shí)候 還不都是三極管干 也沒見幾個(gè)壞的

我喜歡用N-MOS 比三極管好用 不需要電流 51的準(zhǔn)雙向端口直接就能驅(qū)動(dòng)了
作者: dzbj    時(shí)間: 2017-4-11 23:52
剛才少看最后一句了 補(bǔ)上

bit flag_one=0;                //第一次工作標(biāo)記
uchar num1s=0;                //1s計(jì)數(shù)器
uchar n=5;                        //總秒數(shù)計(jì)數(shù)器

void mast()        //主控
{
        if(flag_one==0)                //如果 第一次工作標(biāo)記為0 這里是你要求的第一次5s開5s關(guān)
        {
                jk=1;                                //繼電器吸合
                num1s=0;                        //延時(shí)5s
                while(num1s<n);
                jk=0;                                //繼電器關(guān)閉
                num1s=0;                        //延時(shí)5s
                while(num1s<n);
                flag_one=1;                        //第一次工作標(biāo)記置1 不再運(yùn)行5s間隔的狀態(tài)
                n++;                                //總秒數(shù)計(jì)數(shù)器自加
        }

        jk=1;                                //繼電器吸合
        num1s=0;                        //延時(shí)5+n秒 每次+1S
        while(num1s<n);
        n++;                                //總秒計(jì)數(shù)器自加
        jk=0;                                //繼電器關(guān)閉
        num1s=0;                        //延時(shí)5s 你要求開時(shí)間每次+1S 關(guān)時(shí)間不變
        while(n<5);
//剛才沒看見你最后一句話沒寫這段
        if(n==40)                        //判斷總次數(shù) 如果總次數(shù)是40
        {
                flag_one=0;                        //第一次工作標(biāo)記清零                       
                n=5;                                //總秒數(shù)計(jì)數(shù)器置5
        }
}

void Server_Time0() interrupt 1        //定時(shí)器服務(wù)程序
{
        TH0 = xx;                        //重裝定時(shí)初值 1s
        TL0 = xx;                        //重裝定時(shí)初值 1s
       
        num1s++;                        //1s計(jì)數(shù)器自加       
}

void main()
{
        Init_Time();        //定時(shí)器初始化 沒給你寫 基礎(chǔ)程序了

        while(1)
        {
                mast();                        //調(diào)用 主控程序
        }
}
作者: nonr_spur    時(shí)間: 2017-4-12 16:22
三極管驅(qū)動(dòng)繼電器
作者: liuchunlong    時(shí)間: 2017-5-5 10:01
dzbj 發(fā)表于 2017-4-11 23:52
剛才少看最后一句了 補(bǔ)上

bit flag_one=0;                //第一次工作標(biāo)記

請(qǐng)問,用單片機(jī)控制固態(tài)繼電器,再控制高頻電磁閥每秒鐘開關(guān)50次,請(qǐng)問這個(gè)程序應(yīng)該怎么寫
作者: Vanessa    時(shí)間: 2017-5-10 20:24
dzbj 發(fā)表于 2017-4-11 23:52
剛才少看最后一句了 補(bǔ)上

bit flag_one=0;                //第一次工作標(biāo)記

謝謝,我已經(jīng)編出來了
作者: 明天美好    時(shí)間: 2017-5-10 21:32
原理圖正確,帶上計(jì)時(shí)器按時(shí)間輸出基本就行了
作者: 電子黑火藥    時(shí)間: 2018-10-20 14:21
想要樓主的程序




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1