人體熱釋紅外傳感器
目錄
GPIO輸入的應用場景
人體熱釋紅外傳感器HC-SR501
電氣參數(shù)
功能特點
應用范圍
硬件電路
代碼實例
成果展示
資料獲取
推薦閱讀
上一個網(wǎng)文實現(xiàn)了流水燈,《利用STM32F103C8T6最小系統(tǒng)板點亮流水燈 》,這個主要用到了單片機的IO可以輸出高低電平的特性,程序里置1即輸出高電平;程序里置0即輸出低電平。
當然,GPIO除了對外可以輸出高低電平以外,單片機的IO還可以當做輸入使用,當與單片機的某個IO引腳相連的電壓為高電平的時候,程序中讀取該IO的值為邏輯“1”;當輸入的電壓為低電平的時候,程序中讀取該IO的值為邏輯“0”。
注意:
因為單片機的IO為TTL電平,所以輸入的電壓要注意電壓范圍,避免輸入電壓過高燒毀單片機IO引腳;
單片機的IO作為輸出使用時,注意輸出電流的能力是有限的,即一般只使用IO作為觸發(fā)信號,而不是作為功率IO使用;
補充:
TTL電平的電壓范圍:
輸出高電平>2.4V,輸出低電平<0.4V
輸入高電平≥2.0V,輸入低電平≤0.8V
GPIO輸入的應用場景
按鍵讀取
熱釋紅外人體感應傳感器
紅外接收頭
帶lm393的一些傳感器模塊,比如:熱敏傳感器、光照傳感器、聲音傳感器等模塊
這種模塊上面一般都有一個電位器,用于調(diào)節(jié)閾值。
這種模塊的輸出引腳一般標識為DO,可以輸出TTL信號,進而單片機可以到兩種狀態(tài),感應(達到)到目標,或者未感應(未達到)。
個別傳感器模塊還有一個模擬量輸出引腳,一般標識為AO,比如MQ2煙霧傳感器,通過其模擬信號輸出引腳AO與AD芯片或者單片機的ADC引腳相連,可以獲得強度值,這種方法可以不調(diào)節(jié)硬件的情況下,通過程序來控制響應閾值,更靈活。
人體熱釋紅外傳感器HC-SR501
電氣參數(shù)
工作電壓范圍:直流電壓4.5-20V
電平輸出:高3.3 V /低0V
觸發(fā)方式:L不可重復觸發(fā)/H重復觸發(fā)(默認重復觸發(fā))
延時時間:0.5-200S(可調(diào))可制作范圍零點幾秒-幾十分鐘
封鎖時間:2.5S(默認)可制作范圍零點幾秒-幾十秒
感應角度:<100度錐角
功能特點
全自動感應:人進入其感應范圍則輸出高電平,人離開感應范圍則自動延時關閉高電平,輸出低電平。
光敏控制(可自己購買了安裝,出廠時未設):模塊預留有位置,可設置光敏控制,白天或光線強時不感應。
觸發(fā)方式跳線選擇。
不可重復觸發(fā)方式:即感應輸出高電平后,延時時間段一結(jié)束,輸出將自動從高電平變成低電平;
可重復觸發(fā)方式:即感應輸出高電平后,在延時時間段內(nèi),如果有人體在其感應范圍活動,其輸出將一直保持高電平,直到人離開后才延時將高電平變?yōu)榈碗娖剑ǜ袘K檢測到人體的每一次活動后會自動順延一個延時時間段,并且以最后一次活動的時間為延時時間的起始點)。
具有感應封鎖時間(默認設置:2.5S封鎖時間):感應模塊在每一次感應輸出后(高電平變成低電平),可以緊跟著設置一個封鎖時間段,在此時間段內(nèi)感應器不接受任何感應信號。此功能可以實現(xiàn)“感應輸出時間”和“封鎖時間”兩者的間隔工作,可應用于間隔探測產(chǎn)品;同時此功能可有效抑制負載切換過程中產(chǎn)生的各種干擾。(此時間可設置在零點幾秒—幾十秒鐘)。
注意:
紅外線熱釋電傳感器根據(jù)實現(xiàn)原理,對人體的敏感程度還和人的運動方向關系很大。紅外線熱釋電傳感器對于徑向移動反應最不敏感, 而對于橫切方向 (即與半徑垂直的方向)移動則最為敏感。
==>所以安裝不對的話,可能會出現(xiàn)不工作的情況,另外,根據(jù)模塊實現(xiàn)的原理,靜止的人,無法感應。
傳感器只對移動或運動的人體起作用。
==>所以如果用于檢測球場或者教室內(nèi)是否有人的話,理論上來說,不是很準確。
應用范圍
安防產(chǎn)品
人體感應玩具
人體感應燈具
工業(yè)自動化控制等
??配合外圍電路,它能自動快速開啟各類白熾燈、熒光燈、蜂鳴器、自動門、電風扇、烘干機和自動洗衣機等裝置。
??特別適用于賓館、商場、庫房及家庭的過道、走廊等場所。
硬件電路
代碼實例
實現(xiàn)目標:
人體紅外熱釋感應模塊OUT引腳輸出高電平(檢測出有人)時,板載LED(PC13)亮,反之,LED滅。
我們將SR501的OUT引腳與核心板的PA5相連,并將PA5設置為輸入;詳細代碼見void SR501_Init(void)函數(shù)實現(xiàn);
為了控制板載LED的亮滅,需要將PC13設置為輸出;詳細代碼見void LED_Init(void)函數(shù)實現(xiàn);
main.c完整代碼如下:
//SR501_OUT初始化--PA5,設置成輸入
void SR501_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
//SR501_OUT
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
GPIO_Init(GPIOA, &GPIO_InitStructure);
}
// 板載LED初始化--PC13
void LED_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE); //使能PORTA時鐘
//SR501_OUT
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOC, &GPIO_InitStructure);
LED = 1;
}
int main(void)
{
//初始化
delay_init();
SR501_Init();
LED_Init();
while(1)
{
if(SR501_OUT)
{
LED = 0;
}
else
{
LED = 1;
}
delay_ms(10);
}
}
成果展示
當手靠近人體熱釋紅外傳感器時,綠燈亮;延時一定時間以后,綠燈滅。
資料獲取
微信公眾號后臺回復“SR501”,可以下載工程源碼及HC-SR501人體紅外熱釋感應模塊資料
推薦閱讀
STM32單片機最小系統(tǒng)詳解
STM32中精確延時函數(shù)的實現(xiàn)
基于STM32固件庫的MDK5工程建立
修改Keil工程名稱并添加其他模塊文件
利用STM32F103C8T6最小系統(tǒng)板點亮流水燈
喜歡請關注微信公眾號:程序員小哈
若覺得本次分享的文章對您有幫助,隨手點[在看]并轉(zhuǎn)發(fā)分享,也是對我的支持,謝謝各位。
免責聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺僅提供信息存儲服務。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!