PIR(被動(dòng)紅外)或運(yùn)動(dòng)傳感器用于檢測(cè)移動(dòng)人體或物體的運(yùn)動(dòng)。每當(dāng)有人進(jìn)入 PIR 傳感器的范圍內(nèi)時(shí),它的輸出引腳都會(huì)發(fā)出高電平。
今天,我們將簡(jiǎn)單地將PIR與PIC微控制器PIC16F877A連接。在此電路中,如果一些移動(dòng)物體進(jìn)入 PIR 傳感器的范圍內(nèi),蜂鳴器將開(kāi)始發(fā)出蜂鳴聲。
所需材料
圖片套件 3
紅外傳感器。
PIC16F877A 集成電路
40 - 引腳 IC 支架
性能板
20 MHz 晶體 OSC
內(nèi)螺紋和外螺紋伯格斯圖銷(xiāo)
33pf 電容器 - 2 個(gè)電容、100uf 和 10uf 電容。
680 歐姆、10K 和 560 歐姆電阻器
任何顏色的發(fā)光二極管
1 焊接套件
集成電路 7805
12V 適配器
蜂鳴器
連接線
面包板
紅外傳感器:
PIR 傳感器價(jià)格低廉、功耗低且易于使用的運(yùn)動(dòng)檢測(cè) Sesnor。PIR 傳感器只接收紅外線,不發(fā)射,這就是為什么它被稱(chēng)為被動(dòng)。PIR 感應(yīng)熱量的任何變化,如果有變化,它會(huì)在輸出時(shí)給出高電平。PIR 傳感器也稱(chēng)為熱釋電或紅外運(yùn)動(dòng)傳感器。
每個(gè)物體在加熱時(shí)都會(huì)發(fā)出一定量的紅外線,類(lèi)似于人體因體溫而發(fā)出紅外線。由于空氣和物體之間的摩擦,每個(gè)物體產(chǎn)生的紅外線。PIR傳感器的主要部件是熱釋電傳感器。除此之外,BISS0001(“微功率PIR運(yùn)動(dòng)檢測(cè)器IC”),一些電阻器,電容器和其他用于構(gòu)建PIR傳感器的組件。BISS0001 IC從傳感器獲取輸入并進(jìn)行處理,使輸出引腳相應(yīng)地高或低。
您還可以調(diào)整距離靈敏度和持續(xù)時(shí)間,一旦檢測(cè)到運(yùn)動(dòng),輸出引腳將處于高電平。它有兩個(gè)電位計(jì)旋鈕來(lái)調(diào)整這兩個(gè)參數(shù)。
電路圖
PIC微控制器:
為了對(duì)PIC微控制器進(jìn)行編程以連接PIR,我們將需要一個(gè)IDE(集成開(kāi)發(fā)環(huán)境),用于進(jìn)行編程。一個(gè)編譯器,我們的程序被轉(zhuǎn)換為MCU可讀形式,稱(chēng)為HEX文件。一個(gè)IPE(集成編程環(huán)境),用于將我們的十六進(jìn)制文件轉(zhuǎn)儲(chǔ)到我們的PIC MCU中。
Microchip免費(fèi)提供了這三個(gè)軟件。可以直接從其官方頁(yè)面下載。為了您的方便,我還提供了鏈接。下載后,將它們安裝在您的計(jì)算機(jī)上。如果您在這樣做時(shí)遇到任何問(wèn)題,可以查看最后給出的視頻。
要將我們的代碼轉(zhuǎn)儲(chǔ)或上傳到 PIC,我們需要PICkit 3。PICkit 3編程器/調(diào)試器是一種簡(jiǎn)單、低成本的在線調(diào)試器,由在 Windows 平臺(tái)上運(yùn)行 MPLAB IDE(v8.20 或更高版本)軟件的 PC 控制。PICkit 3編程器/調(diào)試器是開(kāi)發(fā)工程師工具套件不可或缺的一部分。除此之外,我們還需要其他硬件,如 Perf 板、焊臺(tái)、PIC IC、晶體振蕩器、電容器等。但是,隨著教程的進(jìn)行,我們會(huì)將它們添加到我們的列表中。
我們將使用MCU中提供的ICSP選項(xiàng)對(duì)PIC16F877A進(jìn)行編程。
要刻錄代碼,請(qǐng)執(zhí)行以下步驟:
啟動(dòng) MPLAB IPE。
將 PicKit 3 的一端連接到 PC,另一端連接到性能板上的 ICSP 引腳。
通過(guò)單擊連接按鈕連接到您的 PIC 設(shè)備。
瀏覽閃爍十六進(jìn)制文件,然后單擊程序。
代碼和說(shuō)明
首先,我們需要在 pic 微控制器中設(shè)置配置位,然后從 void main 函數(shù)開(kāi)始。
在下面的代碼中,“XC.h”是包含引腳和外設(shè)的所有友好名稱(chēng)的頭文件。此外,我們還在下面的代碼中定義了晶體振蕩器頻率、PIR 和蜂鳴器引腳連接。
#include
#define _XTAL_FREQ 20000000 //Specify the XTAL crystall FREQ
#define PIR RC0
#define Buzzer RB2
在空主()中,“TRISB=0X00”用于指示MCU將PORTB引腳用作輸出,“TRISC=0Xff”用于指示MCU將PORTB引腳用作輸入?!癙ORTB=0X00”用于指示MCU使RB3的所有輸出為低電平。
TRISB=0X00;
TRISC=0Xff;
PORTB=0X00; //Make all output of RB3 LOW
根據(jù)下面的代碼,每當(dāng) PIR 變高時(shí),蜂鳴器就會(huì)變高,否則它就會(huì)保持關(guān)閉狀態(tài)。
while(1) //Get into the Infinie While loop
{
if(PIR ==1){
Buzzer=1;
__delay_ms(1000); //Wait
}
else{
Buzzer=0;
}
}
}
帶PIC微控制器的PIR傳感器的工作:
該項(xiàng)目沒(méi)有任何復(fù)雜的硬件設(shè)置,我們?cè)俅问褂梦覀冊(cè)?a target="_blank">LED閃爍教程中創(chuàng)建的相同PIC微控制器板(如下所示)。只需根據(jù)連接圖將 PIR 傳感器模塊與PIC 微控制器板連接即可。完成連接后,只需按照上一教程中的說(shuō)明使用 PicKit 3 編程器轉(zhuǎn)儲(chǔ)代碼即可享受輸出。
上傳程序后,PIR 傳感器已準(zhǔn)備好提供輸出。每當(dāng)發(fā)射 IR 的人或物體進(jìn)入 PIR 范圍內(nèi)時(shí),它都會(huì)給輸出提供高電平。而且,基于該輸出,蜂鳴器將運(yùn)行。如果 PIR 輸出為高蜂鳴器輸入,則輸出為高電平,反之亦然。
您可以使用固定在 PIR 模塊上的兩個(gè)電位計(jì)來(lái)控制感應(yīng)距離和時(shí)間延遲。
// 'C' source line config statements
// CONFIG
#pragma config FOSC = HS // Oscillator Selection bits (HS oscillator)
#pragma config WDTE = OFF // Watchdog Timer Enable bit (WDT disabled)
#pragma config PWRTE = OFF // Power-up Timer Enable bit (PWRT disabled)
#pragma config BOREN = ON // Brown-out Reset Enable bit (BOR enabled)
#pragma config LVP = OFF // Low-Voltage (Single-Supply) In-Circuit Serial Programming Enable bit (RB3 is digital I/O, HV on MCLR must be used for programming)
#pragma config CPD = OFF // Data EEPROM Memory Code Protection bit (Data EEPROM code protection off)
#pragma config WRT = OFF // Flash Program Memory Write Enable bits (Write protection off; all program memory may be written to by EECON control)
#pragma config CP = OFF // Flash Program Memory Code Protection bit (Code protection off)
// #pragma config statements should precede project file includes.
// Use project enums instead of #define for ON and OFF.
#include
#define _XTAL_FREQ 20000000 //Specify the XTAL crystall FREQ
#define PIR RC0
#define Buzzer RB2
void main() //The main function
{
TRISB=0X00; //Instruct the MCU that the PORTB pins are used as Output.
TRISC=0Xff; //Instruct the MCU that the PORTB pins are used as Input.
PORTB=0X00; //Make all output of RB3 LOW
while(1) //Get into the Infinie While loop
{
if(PIR ==1){
Buzzer=1;
__delay_ms(1000); //Wait
}
else{
Buzzer=0;
}
}
}
-
微控制器
+關(guān)注
關(guān)注
48文章
7844瀏覽量
153386 -
PIC16F877A
+關(guān)注
關(guān)注
2文章
43瀏覽量
22012 -
PIR
+關(guān)注
關(guān)注
0文章
75瀏覽量
18116
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
PIC16F877A在proteus中讀寫(xiě)AT24C512
PIC16F877A串口發(fā)送查詢(xún)方式

PIC16F877A串口芯片電壓?jiǎn)栴}

PIC16F877A的UART通信和proteus仿真的資料合集免費(fèi)下載

PIC16F877A的T0定時(shí)器制作的電子鐘程序
PIC16F877A開(kāi)發(fā)板 數(shù)碼管動(dòng)態(tài)掃描實(shí)驗(yàn)

PIC16F877A開(kāi)發(fā)板 普通IO驅(qū)動(dòng)74595實(shí)驗(yàn)

PIC16F877A 看門(mén)狗定時(shí)器實(shí)驗(yàn)

用PIC16F877A和TB6612FNG電機(jī)驅(qū)動(dòng)的微型電路

將MCP4921與PIC16F877A接口進(jìn)行數(shù)模轉(zhuǎn)換的方法

使用熱敏打印機(jī)連接PIC16F877A并使用輕觸開(kāi)關(guān)實(shí)現(xiàn)打印的教程

評(píng)論