Arduino使用HC-SR501感測是否有人在附近移動

2023/09更新

實驗目標

使用紅外線感測器(PIR Motion Sensor)感應人是否在移動或揮手。

實驗所需元件

1個紅外線感測器(PIR,型號HC-SR501),因為人體會發出紅外線,此感應器會感應人體所發出的紅外線,感測人的移動或揮手,本感應器屬於PIR(Passive Infrared Sensor,被動式紅外線感測器)不會主動發出紅外線,屬於被動接受人體所發出的紅外線。

實驗接線圖

連接HC-SR501,紅色線為5v,黑色線為GND,黃色線為輸出的訊號線接digital  pin  10。

程式碼

以下為PIR程式,若偵測到物體移動,將pin13的led點亮,輸出「Detected」;否則將pin13的led熄滅,輸出「No One」

程式碼解說

第1行:設定變數pirPin為10,表示紅外線感測器使用D10接腳。

第2行:設定變數ledPin為13,表示內建LED使用D13接腳。

第4到8行:在setup函式內,設定序列埠傳輸速度為9600bps(第5行),設定pirPin的接腳為輸入模式(第6行) ,設定ledPin的接腳為輸出模式(第7行)。

第10到21行:在loop函式內,使用函式digitalRead讀取pirPin的數位輸入數值到變數p(第11行)。若p等於HIGH,則點亮led上的LED,顯示「Detected」;否則熄滅led上的LED,顯示「No One」(第12到19行),延遲1秒(第20行)。

實驗圖片