人體熱釋電探頭紅外感應模塊 人體感應開關HC-SR501藍板新款 綠板-淘寶網
HC-SR501 人體紅外感應電子模塊傳感器熱釋電探頭感應開關RD-624-tmall.com天貓
模塊信息
HC-SR501人體感應開關是一種基于紅外線技術的自動控制模塊,廣泛應用于安防、智能家居和自動控制等領域。
詳細介紹:
1. 基本概述
HC-SR501是一種低成本、高效率的熱釋電紅外傳感器,通過檢測人體或動物發出的紅外輻射變化來判斷其活動。其特點包括:
- 全自動感應:當人進入感應范圍時,模塊輸出高電平信號;人離開后,信號延時關閉并恢復為低電平。
- 靈敏度高:能夠檢測到微小的人體或動物移動。
- 低功耗:靜態電流低于50微安,適合電池供電的應用。
- 可調節性:通過旋鈕可調節感應距離和延時時間,靈活適應不同場景需求。
2. 工作原理
HC-SR501的工作原理基于熱釋電效應,其內部結構主要包括熱釋電元件、菲涅爾透鏡和信號處理電路:
- 熱釋電效應:人體溫度(約37℃)會發出特定波長的紅外線(約10μm),熱釋電元件通過檢測這種紅外輻射的變化,將其轉換為電信號。
- 菲涅爾透鏡:透鏡將紅外輻射聚焦到熱釋電元件上,提升檢測靈敏度和范圍。
- 信號處理:信號經過放大、濾波和邏輯判斷后,輸出高電平或低電平信號,供外部電路使用。
3. 技術參數
以下是HC-SR501的主要技術參數:
- 工作電壓:DC 4.5V - 20V。
- 靜態電流:<50μA。
- 輸出電平:高電平約3.3V,低電平約0V。
- 感應距離:可調范圍3米 - 12米。
- 感應角度:<120°錐角。
- 延時時間:可調范圍5秒 - 5分鐘。
- 觸發方式:支持兩種模式:
- 不可重復觸發(L模式):輸出高電平后,延時一段時間自動恢復為低電平。
- 可重復觸發(H模式):在延時時間內,如果持續檢測到人體活動,輸出高電平將保持,直到人離開后才恢復為低電平。
- 感應封鎖時間:默認2.5秒,可調范圍零點幾秒至幾十秒,用于抑制干擾。
4. 應用場景
HC-SR501因其易用性和高性價比,廣泛應用于以下領域:
- 智能家居:自動照明控制、智能家電互動。
- 安防監控:觸發報警、激活攝像頭等。
- 自動控制:如自動門禁、人體檢測裝置等。
- 工業自動化:用于檢測人員是否進入危險區域。
5. 安裝與使用注意事項
- 安裝方向:探頭雙元方向應與人體活動方向盡量平行,以提高感應靈敏度。
- 避免干擾:避免燈光等強光源直射模塊,同時盡量避免流動風的影響。
- 初始化時間:模塊通電后需約1分鐘初始化,期間可能輸出0-3次干擾信號。
- 調節旋鈕:
- 距離調節:順時針旋轉增加感應距離,逆時針減少。
- 延時調節:順時針旋轉延長輸出高電平時間,逆時針縮短。
- 觸發模式選擇:通過跳線帽選擇L(不可重復觸發)或H(可重復觸發)模式。
6. 與微控制器的連接與代碼示例
HC-SR501模塊僅需三根線連接到微控制器(如STM32或Arduino):
- VCC:接電源正極(如3.3V或5V)。
- GND:接地。
- OUT:輸出信號引腳,連接到微控制器的GPIO輸入引腳。
7. 總結
HC-SR501人體感應開關是一款功能強大、易于使用的傳感器模塊,適用于多種場景。其靈敏度高、功耗低、調節靈活,是自動化和智能化的理想選擇。如果您需要進一步了解其驅動程序或詳細應用,可以參考相關技術文檔或實驗案例。
用esp32的pin23連接 HC-SR501
硬件連接
觸摸按鍵模塊 (TTP223) ----> ESP32
----------------------------------------
VCC (5V) ----> 5V
GND ----> GND
OUT ----> GPIO23
軟件編寫(不可重復觸發(L模式))
test.ino主程序:
#include "HC_SR501.h"
#include "LED.h"// #define LED1 2void setup() { Serial.begin(9600);HC_SR501_Init(); // 初始化HC-SR501LED_Init();
}void loop() {if (HC_SR501_GetStatus() == HIGH) { // 如果檢測到人體// 執行相應的操作,例如觸發警報Serial.println("Motion detected!");LED1_ON();delay(3000);}else{// Serial.println("Motion not detected!");LED1_OFF();delay(3000);}// delay(1000); // 延時1秒,避免頻繁檢測// LED1_OFF();}
HC_SR501.h
#ifndef HC_SR501_H
#define HC_SR501_H#define HC_SR501_PIN1 23 // 定義HC-SR501連接的引腳為ESP32的Pin23void HC_SR501_Init(void) {pinMode(HC_SR501_PIN1, INPUT); // 將引腳設置為輸入模式
}uint8_t HC_SR501_GetStatus(void) {return digitalRead(HC_SR501_PIN1); // 讀取傳感器狀態,高電平表示檢測到人體
}#endif// 示例用法:
// #include "HC_SR501.h"
//
// void setup() {
// Serial.begin(9600);
// HC_SR501_Init(); // 初始化HC-SR501
// }
//
// void loop() {
// if (HC_SR501_GetStatus() == HIGH) { // 如果檢測到人體
// // 執行相應的操作,例如觸發警報
// Serial.println("Motion detected!");
// }
// }
LED.h
#define LED1 2void LED_Init(void) {pinMode(LED1, OUTPUT);// pinMode(LED2, OUTPUT);
}//////////////////////////////////LED1的操作函數///////////////////////////////
void LED1_ON(void) {digitalWrite(LED1, HIGH); //ON
}void LED1_OFF(void) {digitalWrite(LED1, LOW); //OF
}void LED1_TURN(void) //翻轉
{digitalWrite(LED1, !digitalRead(LED1)); //TURN
}// ////////////////////////////////LED2的操作函數////////////////////////////////
// void LED2_ON(void)
// {
// digitalWrite(LED2, HIGH);//ON
// }// void LED2_OFF(void)
// {
// digitalWrite(LED2, LOW);//OF
// }// void LED2_TURN(void)//翻轉
// {
// digitalWrite(LED2, !digitalRead(LED2));//TURN
// }// ///////////////////////////////LED3的操作函數////////////////////////////////
// void LED3_ON(void)
// {
// digitalWrite(LED3, HIGH);//ON
// }// void LED3_OFF(void)
// {
// digitalWrite(LED3, LOW);//OF
// }// void LED3_TURN(void)//翻轉
// {
// digitalWrite(LED3, !digitalRead(LED3));//TURN
// }// ///////////////////////////////LED4的操作函數////////////////////////////////
// void LED4_ON(void)
// {
// digitalWrite(LED4, HIGH);//ON
// }// void LED4_OFF(void)
// {
// digitalWrite(LED4, LOW);//OF
// }
// void LED4_TURN(void)//翻轉
// {
// digitalWrite(LED4, !digitalRead(LED4));//TURN/////////////////////////////////////////////////////////////////////////////////使用方法
// void setup() {
// OLED_Init();
// }// void loop() {
// LED1_ON(); // 點亮D7引腳LED
// }
功能描述
- 持續循環檢測 HC-SR501 傳感器的狀態。
- 若檢測到人體活動(傳感器輸出高電平),通過串口打印 "Motion detected!" 信息,點亮 LED 燈(板載led藍燈),并延時 3 秒。
- 若未檢測到人體活動(傳感器輸出低電平),關閉 LED 燈,并延時 3 秒