PIR(被動紅外)或運動傳感器用于檢測移動人體或物體的運動。每當有人進入 PIR 傳感器的范圍內時,它的輸出引腳都會發出高電平。
今天,我們將簡單地將PIR與PIC微控制器PIC16F877A連接。在此電路中,如果一些移動物體進入 PIR 傳感器的范圍內,蜂鳴器將開始發出蜂鳴聲。
所需材料
圖片套件 3
紅外傳感器。
PIC16F877A 集成電路
40 - 引腳 IC 支架
性能板
20 MHz 晶體 OSC
內螺紋和外螺紋伯格斯圖銷
33pf 電容器 - 2 個電容、100uf 和 10uf 電容。
680 歐姆、10K 和 560 歐姆電阻器
任何顏色的發光二極管
1 焊接套件
集成電路 7805
12V 適配器
蜂鳴器
連接線
面包板
紅外傳感器:
PIR 傳感器價格低廉、功耗低且易于使用的運動檢測 Sesnor。PIR 傳感器只接收紅外線,不發射,這就是為什么它被稱為被動。PIR 感應熱量的任何變化,如果有變化,它會在輸出時給出高電平。PIR 傳感器也稱為熱釋電或紅外運動傳感器。
每個物體在加熱時都會發出一定量的紅外線,類似于人體因體溫而發出紅外線。由于空氣和物體之間的摩擦,每個物體產生的紅外線。PIR傳感器的主要部件是熱釋電傳感器。除此之外,BISS0001(“微功率PIR運動檢測器IC”),一些電阻器,電容器和其他用于構建PIR傳感器的組件。BISS0001 IC從傳感器獲取輸入并進行處理,使輸出引腳相應地高或低。
您還可以調整距離靈敏度和持續時間,一旦檢測到運動,輸出引腳將處于高電平。它有兩個電位計旋鈕來調整這兩個參數。
電路圖
PIC微控制器:
為了對PIC微控制器進行編程以連接PIR,我們將需要一個IDE(集成開發環境),用于進行編程。一個編譯器,我們的程序被轉換為MCU可讀形式,稱為HEX文件。一個IPE(集成編程環境),用于將我們的十六進制文件轉儲到我們的PIC MCU中。
Microchip免費提供了這三個軟件。可以直接從其官方頁面下載。為了您的方便,我還提供了鏈接。下載后,將它們安裝在您的計算機上。如果您在這樣做時遇到任何問題,可以查看最后給出的視頻。
要將我們的代碼轉儲或上傳到 PIC,我們需要PICkit 3。PICkit 3編程器/調試器是一種簡單、低成本的在線調試器,由在 Windows 平臺上運行 MPLAB IDE(v8.20 或更高版本)軟件的 PC 控制。PICkit 3編程器/調試器是開發工程師工具套件不可或缺的一部分。除此之外,我們還需要其他硬件,如 Perf 板、焊臺、PIC IC、晶體振蕩器、電容器等。但是,隨著教程的進行,我們會將它們添加到我們的列表中。
我們將使用MCU中提供的ICSP選項對PIC16F877A進行編程。
要刻錄代碼,請執行以下步驟:
啟動 MPLAB IPE。
將 PicKit 3 的一端連接到 PC,另一端連接到性能板上的 ICSP 引腳。
通過單擊連接按鈕連接到您的 PIC 設備。
瀏覽閃爍十六進制文件,然后單擊程序。
代碼和說明
首先,我們需要在 pic 微控制器中設置配置位,然后從 void main 函數開始。
在下面的代碼中,“XC.h”是包含引腳和外設的所有友好名稱的頭文件。此外,我們還在下面的代碼中定義了晶體振蕩器頻率、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引腳用作輸入。“PORTB=0X00”用于指示MCU使RB3的所有輸出為低電平。
TRISB=0X00;
TRISC=0Xff;
PORTB=0X00; //Make all output of RB3 LOW
根據下面的代碼,每當 PIR 變高時,蜂鳴器就會變高,否則它就會保持關閉狀態。
while(1) //Get into the Infinie While loop
{
if(PIR ==1){
Buzzer=1;
__delay_ms(1000); //Wait
}
else{
Buzzer=0;
}
}
}
帶PIC微控制器的PIR傳感器的工作:
該項目沒有任何復雜的硬件設置,我們再次使用我們在LED閃爍教程中創建的相同PIC微控制器板(如下所示)。只需根據連接圖將 PIR 傳感器模塊與PIC 微控制器板連接即可。完成連接后,只需按照上一教程中的說明使用 PicKit 3 編程器轉儲代碼即可享受輸出。
上傳程序后,PIR 傳感器已準備好提供輸出。每當發射 IR 的人或物體進入 PIR 范圍內時,它都會給輸出提供高電平。而且,基于該輸出,蜂鳴器將運行。如果 PIR 輸出為高蜂鳴器輸入,則輸出為高電平,反之亦然。
您可以使用固定在 PIR 模塊上的兩個電位計來控制感應距離和時間延遲。
// '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;
}
}
}
-
微控制器
+關注
關注
48文章
7572瀏覽量
151645 -
PIC16F877A
+關注
關注
2文章
43瀏覽量
21840 -
PIR
+關注
關注
0文章
74瀏覽量
17888
發布評論請先 登錄
相關推薦
評論