人體紅外線感測器 ( PIR Motion Sensor )HC-SR501簡單實作
人體紅外線感測器 ( PIR Motion Sensor ) ,是用來做為警報器常見的元件之一,用途在於偵測會發出紅外線的物體的移動,而人體本來就會發射紅外線,面積又大,自然很容易就被偵測到,所以這個感測器拿來做為防盜等用途就非常適合。
SR501有兩個旋鈕可以調整,分別是敏感度(Sensitivity)和延遲時間(Delay),建議大家先調整一下,把延遲時間(Delay)先逆時針調到最底,也就是最低值,敏感度(Sensitivity)先順時針調到底,也就是最高值,這樣在測試時比較容易看到效果。等程式正常運作後,再自己試著調到適合的程度。
PIR Motion Sensor的接線很簡單,1正1負,再一個訊號線,這次我們把訊號線接到D9,VCC傑森實測,3.3V或是5V都運作正常。
程式方面就更簡單了,訊號線只會回傳0或1,代表有沒有偵測到物體在移動,就這樣,搞定!未來大家就可以結合蜂鳴器或燈號,做成完整的警報裝置囉!
雖然這個範例是針對SR501的,但其它像是SR505的型號,程式也是一樣的,只是運作的方式有些不同而已。傑森個人蠻推薦使用SR505的,不用調整就能用,效果真的好很多。
購買 HC-HR501 :https://www.jmaker.com.tw/products/sr501
購買 HC-HR505 :https://www.jmaker.com.tw/products/sr505
/*
本程式為人體紅外線感測器 ( PIR Motion Sensor )的範例
針對HC-HR501型號,SR505也適用本程式
傑森創工賣場:https://www.jmaker.com.tw
傑森創工粉絲團:
https://www.facebook.com/jasonshow
*/
int sensor = 9; //訊號線
void setup() {
Serial.begin(9600);
pinMode(sensor, INPUT);
}
void loop() {
int moving = digitalRead(sensor); //讀取D9是否有偵測到物體移動
if(moving==1){ //如果有物體移動
Serial.println("有東西在動!");
}
}