在本文中,單片機(jī)開(kāi)發(fā)工程師們分享了一個(gè)使用PIC單片機(jī)開(kāi)發(fā)的被動(dòng)紅外(PIR)傳感器模塊的報(bào)警器。在這個(gè)方案中,我們使用PIC12F635單片機(jī)進(jìn)行開(kāi)發(fā),持續(xù)監(jiān)控傳感器模塊的輸出,并在其激活時(shí)打開(kāi)蜂鳴器。
一、被動(dòng)紅外(PIR)報(bào)警器方案的原理
某些半導(dǎo)體材料具有暴露于熱紅外輻射時(shí)會(huì)產(chǎn)生表面電荷的特性。這種現(xiàn)象稱為熱電。被動(dòng)紅外(PIR)傳感器模塊的工作原理相同。人體以紅外線輻射的形式輻射熱量,最大約為9.4微米。人體的存在會(huì)導(dǎo)致熱釋電傳感器感應(yīng)到的周?chē)h(huán)境的IR輪廓發(fā)生突然變化。PIR傳感器模塊在板上具有儀表電路,該儀表電路將該信號(hào)放大到適當(dāng)?shù)碾妷弘娖揭灾甘具\(yùn)動(dòng)的檢測(cè)。
PIR傳感器需要大約10到60秒的初始穩(wěn)定時(shí)間才能正常運(yùn)行。在這段時(shí)間內(nèi),傳感器要熟悉周?chē)沫h(huán)境,并應(yīng)避免其視野內(nèi)的任何運(yùn)動(dòng)。PIR傳感器的典型范圍為6米,其設(shè)計(jì)旨在適應(yīng)緩慢變化的條件,例如隨著時(shí)間的流逝,周?chē)鷾囟确植嫉闹饾u變化。但是,傳感器會(huì)響應(yīng)任何輪廓的突然變化(例如,人體運(yùn)動(dòng))。這就是為什么不應(yīng)將PIR傳感器模塊放置在加熱器,交流電源插座或任何會(huì)在周?chē)h(huán)境中產(chǎn)生快速變化的地方的原因。
PIR傳感器模塊通常具有3針連接:Vcc,輸出和接地。引腳排列可能會(huì)有所不同,因此我建議查看制造商的數(shù)據(jù)表以確認(rèn)引腳。有時(shí)候,他們確實(shí)在板上靠近引腳的地方有標(biāo)簽。我所擁有的一個(gè)可以做到,它可以通過(guò)5-12V電源供電,因?yàn)樗哂凶约旱姆(wěn)壓器。當(dāng)檢測(cè)到運(yùn)動(dòng)時(shí),輸出變高。
此外,它還有3針跳線選擇,可用于單觸發(fā)或連續(xù)觸發(fā)輸出模式。這兩個(gè)位置帶有標(biāo)簽H和L。當(dāng)跳線位于H位置時(shí),當(dāng)反復(fù)重新觸發(fā)傳感器時(shí),輸出將保持高電平。在位置L,每次觸發(fā)傳感器,輸出就變高和變低。因此,在此模式下,連續(xù)運(yùn)動(dòng)將產(chǎn)生重復(fù)的高/低脈沖。傳感器模塊的前部具有菲涅耳透鏡,可將紅外光聚焦到傳感器元件上。
二、紅外報(bào)警器方案電路圖
該紅外報(bào)警器方案的電路圖非常簡(jiǎn)單,這里使用4節(jié)AA電池為電路供電,可提供6V電源。串聯(lián)使用一個(gè)二極管將電壓降至5.4V,因?yàn)镻IC單片機(jī)的工作電壓應(yīng)低于5.5V。此外,在電源極性相反的情況下,該二極管還可以為電路提供保護(hù)。我已經(jīng)使用NI-MH可充電電池(可提供4.8V)對(duì)電路進(jìn)行了測(cè)試,并且可以正常工作,但是我建議使用堿性電池(每個(gè)1.5V)以提高性能。你也可以使用9V電池,但是電路中需要LM7805穩(wěn)壓器IC。
PIR傳感器模塊的輸出通過(guò)PIC12F635的GP5(引腳2)進(jìn)行監(jiān)控。當(dāng)檢測(cè)到運(yùn)動(dòng)時(shí),此輸出約為3.3V(我的傳感器模塊的板上有3.3V穩(wěn)壓器IC)。你仍然可以使用該電壓作為PIC12F635的有效邏輯高電平,但我更喜歡使用該電壓來(lái)驅(qū)動(dòng)NPN晶體管(BC547)的基極,以便在集電極處獲得邏輯電壓的完整擺幅。現(xiàn)在,單片機(jī)監(jiān)視晶體管的集電極上的電壓。在正常情況下,晶體管截止,集電極輸出為邏輯高電平(+5V)。當(dāng)檢測(cè)到運(yùn)動(dòng)時(shí),傳感器模塊的高輸出使晶體管飽和,并且集電極處的電壓下降至邏輯低。觸發(fā)器的跳線選擇在H位置,因此只要運(yùn)動(dòng)存在,傳感器的輸出將保持有效。注意,PIC12F635單片機(jī)使用4.0 MHz的內(nèi)部時(shí)鐘源。在本方案中,MCLR功能被禁用,WDT為OFF。
LED通過(guò)串聯(lián)的限流電阻連接到端口GP4。電源打開(kāi)時(shí),LED閃爍3次。這表示系統(tǒng)已啟動(dòng)。端口引腳GP2驅(qū)動(dòng)壓電蜂鳴器。壓電蜂鳴器在其諧振頻率處提供最大的輸出聲壓。我使用的壓電蜂鳴器是EFM-290ED,其諧振頻率為3.4±0.5 KHz。玩了一點(diǎn)之后,我發(fā)現(xiàn)最大的輸出聲音約為3725 Hz。盡管規(guī)范說(shuō)工作電壓為7-12V,但僅用5V供電時(shí)會(huì)產(chǎn)生很大的聲音。
該方案用C語(yǔ)言編寫(xiě),并使用MikroC Pro for PIC進(jìn)行編譯。首次打開(kāi)電源時(shí),LED閃爍3次,表明系統(tǒng)已打開(kāi)電源。然后,單片機(jī)等待60秒鐘,然后開(kāi)始監(jiān)視PIR傳感器輸出。需要注意的是,首次開(kāi)啟電源時(shí),PIR傳感器需要此等待一小會(huì)時(shí)間才能穩(wěn)定下來(lái)。當(dāng)單片機(jī)檢測(cè)到傳感器被觸發(fā)時(shí),它以3725 Hz方波驅(qū)動(dòng)壓電蜂鳴器。MikroC具有用于生成聲音的內(nèi)置庫(kù)(Sound_Play())。另一個(gè)需要注意的問(wèn)題是當(dāng)感應(yīng)到運(yùn)動(dòng)時(shí)你想要讓警報(bào)響多長(zhǎng)時(shí)間,這取決于你對(duì)單片機(jī)進(jìn)行編程的設(shè)置。由于傳感器處于重新觸發(fā)模式,因此只要持續(xù)感測(cè)到運(yùn)動(dòng),蜂鳴器就會(huì)保持打開(kāi)狀態(tài)。如果運(yùn)動(dòng)消失,并且傳感器輸出變?yōu)檫壿嫷碗娖剑瑒t蜂鳴器不會(huì)立即停止,但仍會(huì)打開(kāi)約10秒鐘,但頻率略有不同(3570 Hz)。如果再次檢測(cè)到運(yùn)動(dòng),它將以其峰值諧振頻率(3725 Hz)驅(qū)動(dòng)壓電蜂鳴器。
三、紅外報(bào)警器方案源代碼
sbit Sensor_IP at GP5_bit; // sensor I/P
sbit LED at GP4_bit; // LED O/P
unsigned short trigger, counter;
void Get_Delay(){
Delay_ms(300);
}
void main() {
CMCON0 = 7;
TRISIO = 0b00101000; // GP5, 5 I/P‘s, Rest O/P’s
GPIO = 0;
Sound_Init(&GPIO,2);
// Blink LED at Startup
LED = 1;
Get_Delay();
LED = 0;
Get_Delay();
LED = 1;
Get_Delay();
LED = 0;
Get_Delay();
LED = 1;
Get_Delay();
LED = 0;
Delay_ms(60000); // 45 Sec delay for PIR module stabilizaTIon
counter = 0;
trigger = 0;
do {
while (!Sensor_IP) { // Sensor I/P Low
Sound_Play(3725, 600);
Delay_ms(500);
trigger = 1;
counter = 0;
}
if (trigger) {
Sound_Play(3570, 600);
Delay_ms(500);
counter = counter+1;
if(counter == 10) trigger=0;
}
}while(1);
} // End main()