人體紅外線感測器 ( PIR Motion Sensor ) ,是用來做為警報器常見的元件之一,用途在於偵測會發出紅外線的物體的移動,而人體本來就會發射紅外線,面積又大,自然很容易就被偵測到,所以這個感測器拿來做為防盜等用途就非常適合。

可能會有不同工廠推出的款式VCC和GND相反,建議拆開圓蓋確認

SR501有兩個旋鈕可以調整,分別是敏感度(Sensitivity)和延遲時間(Delay),建議大家先調整一下,把延遲時間(Delay)先逆時針調到最底,也就是最低值,敏感度(Sensitivity)先順時針調到底,也就是最高值,這樣在測試時比較容易看到效果。等程式正常運作後,再自己試著調到適合的程度。

PIR Motion Sensor的接線很簡單,1正1負,再一個訊號線,這次我們把訊號線接到D9,VCC傑森實測,3.3V或是5V都運作正常。

程式方面就更簡單了,訊號線只會回傳0或1,代表有沒有偵測到物體在移動,就這樣,搞定!未來大家就可以結合蜂鳴器或燈號,做成完整的警報裝置囉!

雖然這個範例是針對SR501的,但其它像是SR505的型號,程式也是一樣的,只是運作的方式有些不同而已。傑森個人蠻推薦使用SR505的,不用調整就能用,效果真的好很多。

HC-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("有東西在動!");  
  }
}