文章來(lái)源:《零起點(diǎn)學(xué)Proteus單片機(jī)仿真技術(shù)》。
本文是關(guān)于繼電器使用相關(guān)內(nèi)容。
繼電器廣泛應(yīng)用在工業(yè)控制中,通過(guò)繼電器對(duì)其他大電流的電器進(jìn)行控制。
繼電器控制原理圖如下。繼電器部分包括控制線(xiàn)圈和3個(gè)引腳,A引腳接電源,B引腳是常開(kāi)節(jié)點(diǎn),C引腳是常閉節(jié)點(diǎn)。繼電器沒(méi)有通電時(shí),常閉節(jié)點(diǎn)C構(gòu)成通路,燈泡2點(diǎn)亮;繼電器通電時(shí),線(xiàn)圈吸合,常開(kāi)節(jié)點(diǎn)B閉合,常閉節(jié)點(diǎn)C打開(kāi),燈泡1點(diǎn)亮,燈泡2關(guān)閉。

由于繼電器通電的電流很大,不能用單片機(jī)直接控制,需要用晶體管驅(qū)動(dòng),與控制蜂鳴器相同,用晶體管做開(kāi)關(guān)電路,用單片機(jī)控制晶體管的基極控制晶體管的導(dǎo)通和截止,從而控制繼電器的通電和關(guān)閉。
為搞清楚繼電器的工作原理,先用繼電器構(gòu)成一個(gè)控制電路,用開(kāi)關(guān)控制繼電器。原理圖如下所示:

需要注意:控制電路的電壓值必須配對(duì)。即供電與元件的電壓值必須一致,否則就會(huì)出問(wèn)題,要么不能驅(qū)動(dòng)(電壓太低),要么是電器燒毀(電壓太高)。
設(shè)置繼電器的電壓值,由12V改成5V,以符合VCC的電壓。電池和燈泡的電壓都改成250V。這樣,就有兩種電壓的電路,繼電器工作在5V電壓,燈泡則工作在250V電壓。開(kāi)關(guān)控制繼電器,繼電器線(xiàn)圈吸合會(huì)控制250V的電路導(dǎo)通,使燈泡點(diǎn)亮。
下面,接上單片機(jī),用單片機(jī)控制繼電器,用繼電器控制燈泡。在原來(lái)開(kāi)關(guān)的位置,換上NPN晶體管,再用單片機(jī)的P0.0引腳控制晶體管的基極,從而控制燈泡電路的導(dǎo)通與關(guān)閉。要注意,連接晶體管的電阻值要改為500Ω,否則電流太小,不能驅(qū)動(dòng)晶體管導(dǎo)通。proteus設(shè)計(jì)原理圖如下:

另外還需要加上兩個(gè)按鈕,用以控制繼電器的導(dǎo)通和截止,在P3.2和P3.3引腳分別接一個(gè)按鈕。
軟件設(shè)計(jì),當(dāng)P0.0引腳為高電平時(shí),NPN晶體管導(dǎo)通,繼電器導(dǎo)通,燈泡點(diǎn)亮。
/*
實(shí)現(xiàn)功能:繼電器使用,單片機(jī)引腳P0.0通過(guò)晶體管控制繼電器,兩個(gè)按鍵(連接到P3.2和P3.3)控制繼電器的導(dǎo)通與關(guān)閉
[2024-01-16] zoya
*/
#include <reg52.h>
sbit LIGHT_ON=P3^2;
sbit LIGHT_OFF=P3^3;
sbit SWITCH=P0^0;
// 延時(shí)函數(shù)
void delay(unsigned int i)
{
unsigned char j;
for(;i>0;i--)
{
for(j=0;j<125;j++);
}
}
void main()
{
SWITCH=0;
while(1)
{
// 開(kāi)燈
if(LIGHT_ON==0)
{
delay(10);
if(LIGHT_ON==0)
{
SWITCH=1;
}
while(!LIGHT_ON);
}
// 關(guān)燈
if(LIGHT_OFF==0)
{
delay(10);
if(LIGHT_OFF==0)
{
SWITCH=0;
}
while(!LIGHT_OFF);
}
}
}