在大多數項目中,檢測運動或運動一直很重要。在PIR傳感器的幫助下,檢測人/動物的運動變得非常容易。在這個項目中,我們將學習如何將 PIR 傳感器與 Arduino 等微控制器連接 。我們將 Arduino 與 PIR 模塊連接 ,并在檢測到移動時閃爍 LED 并發出蜂鳴器嗶嗶聲。生成此項目需要以下組件。
所需材料:
紅外傳感器:
PIR 傳感器代表被動紅外傳感器。它是一種低成本的傳感器,可以檢測人類或動物的存在。傳感器中存在兩種重要材料,一種是可以檢測生物體(人類/動物)的熱信號的熱釋電晶體,另一種是可以擴大傳感器范圍的菲涅耳透鏡。此外,PIR 傳感器模塊還為我們提供了一些調整傳感器工作的選項,如下圖所示。
兩個電位計(橙色)用于控制傳感器的靈敏度和觸發時間。基本上,傳感器的Dout引腳位于Vcc和Gnd引腳之間。該模塊工作在3.3V,但也可以用5V供電。在左上角,它還具有觸發引腳設置,可用于使模塊在兩種不同的模式下工作。一種是“H”模式,另一種是“I”模式。
在“H”模式下,當檢測到有人在范圍內時,輸出引腳Dout將變為高電平(3.3V),并在特定時間后變為低電平(時間由電位計設置)。在這種模式下,無論該人是否仍在范圍內或已離開該區域,輸出引腳都將變為高電平。我們在項目中以“H”模式使用我們的模塊。
在“I”模式下,當檢測到一個人在范圍內時,輸出引腳Dout將變為高電平(3.3V),只要他/她保持在傳感器范圍內的限制內,輸出引腳Dout就會保持高電平。一旦該人離開該區域,引腳將在可以使用電位計設置的特定時間后變低。
注意:電位計或引腳的位置可能因 PIR 傳感器供應商而異。按照絲印確定您的引腳排列
電路圖及說明:
下圖顯示了將Arduino與PIR模塊接口并閃爍LED /蜂鳴器的arduino運動檢測器項目的電路圖。
我們使用 Arduino 的 5V 電源軌為 PIR 傳感器供電。PIR 傳感器的輸出引腳連接到 2 ^德·^ Arduino的數字引腳。此引腳將是 Arduino 的輸入引腳。然后是 3^RD^Arduino的引腳連接到LED和蜂鳴器。該引腳將充當Arduino的輸出引腳。我們將對 Arduino 進行編程以觸發 3 上的輸出^RD^如果檢測到輸入為 2 的引腳 ^德·^ 針。完整的程序解釋如下。
對 Arduino 進行編程:
Arduino的程序非常簡單明了。要連接 Arduino PIR 傳感器 ,我們必須將引腳編號 2 分配為輸入,引腳編號 3 分配為輸出。然后,每當引腳 2 變為高電平時,我們必須產生一個不連續的觸發器。下面對每行進行說明。
在下面顯示的空白設置函數中,我們必須聲明連接到 PIR 輸出的引腳 2 將用作輸入,連接到 LED/蜂鳴器的引腳 3 將用作輸入。
void setup() {
pinMode(2, INPUT); //Pin 2 as INPUT
pinMode(3, OUTPUT); //PIN 3 as OUTPUT
}
然后我們繼續使用 loop() 函數。眾所周知,只要MCU通電,此處的代碼就會被執行。因此,我們始終使用 loop() 函數中的以下行來檢查 Pin 2 是否變高。
if (digitalRead(2) == HIGH)
如果我們發現特定引腳已變為高電平,則表示已觸發 PIR 模塊。所以,現在我們已經使我們的輸出引腳(引腳3)變高。我們以 100 毫秒的延遲打開和關閉此引腳,以便我們可以獲得閃爍或嗡嗡聲輸出。執行相同操作的代碼如下所示。
void setup() {
pinMode(2, INPUT); //Pin 2 as INPUT
pinMode(3, OUTPUT); //PIN 3 as OUTPUT
}
void loop() {
if (digitalRead(2) == HIGH) // check if PIR is triggered.
{
digitalWrite(3, HIGH); // turn the LED/Buzz ON
delay(100); // wait for 100 msecond
digitalWrite(3, LOW); // turn the LED/Buzz OFF
delay(100); // wait for 100 msecond
}
}
加工:
上面已經討論了這個arduino運動檢測器的電路和程序。現在,您可以按照上面給出的原理圖在面包板上構建該電路,并上傳本教程末尾的程序。連接完成后,您的設置應如下所示。
現在,打開 Arduino 電源并等待大約 50-60 秒,讓 PIR 傳感器進行校準。不要對在此期間獲得的輸出感到沮喪。之后,嘗試移動到 PIR 傳感器前面,您的 LED/蜂鳴器應該被觸發。
一段時間后應停止發出蜂鳴聲/閃爍聲;現在,您可以通過改變電位計來改變模塊的靈敏度或低時間,從而繞過輸出。
void setup() {
pinMode(2, INPUT); //Pin 2 as INPUT
pinMode(3, OUTPUT); //PIN 3 as OUTPUT
}
void loop() {
if (digitalRead(2) == HIGH)
{
digitalWrite(3, HIGH); // turn the LED/Buzz ON
delay(100); // wait for 100 msecond
digitalWrite(3, LOW); // turn the LED/Buzz OFF
delay(100); // wait for 100 msecond
}
}
-
微控制器
+關注
關注
48文章
7651瀏覽量
152124 -
Arduino
+關注
關注
188文章
6477瀏覽量
187844 -
PIR傳感器
+關注
關注
3文章
57瀏覽量
9752
發布評論請先 登錄
相關推薦
如何使用PIC微控制器和脈搏傳感器進行心跳監測
![如何使用PIC<b class='flag-5'>微控制器</b>和脈搏<b class='flag-5'>傳感器</b>進行心跳監測](https://file.elecfans.com//web2/M00/77/1D/pYYBAGNg3nSAaVSmAABIPnC_ZGs821.jpg)
求助,是否可以將CYUSB2014-BZXIT與AR0144CSSC00SUKA0-CPBR連接起來?
如何將PLC通信口與無線數據終端連接起來??
如何將IC的SCL和SDA引腳與FPGA板連接起來?
怎么才能使Atmel Studio 7.0將伺服電機與Atmega16 AVR微控制器連接起來?
如何將HLW8032與NodeMCU連接起來?
如何將ToF傳感器與IMX8MP處理器連接起來?
將HC-05和MSP430連接起來控制LED的方式
![<b class='flag-5'>將</b>HC-05和MSP430<b class='flag-5'>連接起來</b><b class='flag-5'>控制</b>LED的方式](https://file.elecfans.com/web2/M00/66/57/pYYBAGMMhs6ANPF8AARQmyDY8h0402.png)
將微型伺服電機與Atmega16連接起來的方法
![<b class='flag-5'>將</b>微型伺服電機與Atmega16<b class='flag-5'>連接起來</b>的方法](https://file.elecfans.com/web2/M00/68/83/pYYBAGMa5EyADtVMAARPvcDlllo978.png)
AN4309_將STM32L1xx微控制器與外部I2S音頻編解碼器連接起來播放音頻文件
![AN4309_<b class='flag-5'>將</b>STM32L1xx<b class='flag-5'>微控制器</b>與外部I2S音頻編解碼<b class='flag-5'>器</b><b class='flag-5'>連接起來</b>播放音頻文件](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評論