在大多數(shù)項目中,檢測運動或運動一直很重要。在PIR傳感器的幫助下,檢測人/動物的運動變得非常容易。在這個項目中,我們將學(xué)習(xí)如何將 PIR 傳感器與 Arduino 等微控制器連接 。我們將 Arduino 與 PIR 模塊連接 ,并在檢測到移動時閃爍 LED 并發(fā)出蜂鳴器嗶嗶聲。生成此項目需要以下組件。
所需材料:
紅外傳感器:
PIR 傳感器代表被動紅外傳感器。它是一種低成本的傳感器,可以檢測人類或動物的存在。傳感器中存在兩種重要材料,一種是可以檢測生物體(人類/動物)的熱信號的熱釋電晶體,另一種是可以擴大傳感器范圍的菲涅耳透鏡。此外,PIR 傳感器模塊還為我們提供了一些調(diào)整傳感器工作的選項,如下圖所示。
兩個電位計(橙色)用于控制傳感器的靈敏度和觸發(fā)時間?;旧?,傳感器的Dout引腳位于Vcc和Gnd引腳之間。該模塊工作在3.3V,但也可以用5V供電。在左上角,它還具有觸發(fā)引腳設(shè)置,可用于使模塊在兩種不同的模式下工作。一種是“H”模式,另一種是“I”模式。
在“H”模式下,當(dāng)檢測到有人在范圍內(nèi)時,輸出引腳Dout將變?yōu)楦唠娖剑?.3V),并在特定時間后變?yōu)榈碗娖剑〞r間由電位計設(shè)置)。在這種模式下,無論該人是否仍在范圍內(nèi)或已離開該區(qū)域,輸出引腳都將變?yōu)楦唠娖健N覀冊陧椖恐幸浴癏”模式使用我們的模塊。
在“I”模式下,當(dāng)檢測到一個人在范圍內(nèi)時,輸出引腳Dout將變?yōu)楦唠娖剑?.3V),只要他/她保持在傳感器范圍內(nèi)的限制內(nèi),輸出引腳Dout就會保持高電平。一旦該人離開該區(qū)域,引腳將在可以使用電位計設(shè)置的特定時間后變低。
注意:電位計或引腳的位置可能因 PIR 傳感器供應(yīng)商而異。按照絲印確定您的引腳排列
電路圖及說明:
下圖顯示了將Arduino與PIR模塊接口并閃爍LED /蜂鳴器的arduino運動檢測器項目的電路圖。
我們使用 Arduino 的 5V 電源軌為 PIR 傳感器供電。PIR 傳感器的輸出引腳連接到 2 ^德·^ Arduino的數(shù)字引腳。此引腳將是 Arduino 的輸入引腳。然后是 3^RD^Arduino的引腳連接到LED和蜂鳴器。該引腳將充當(dāng)Arduino的輸出引腳。我們將對 Arduino 進行編程以觸發(fā) 3 上的輸出^RD^如果檢測到輸入為 2 的引腳 ^德·^ 針。完整的程序解釋如下。
對 Arduino 進行編程:
Arduino的程序非常簡單明了。要連接 Arduino PIR 傳感器 ,我們必須將引腳編號 2 分配為輸入,引腳編號 3 分配為輸出。然后,每當(dāng)引腳 2 變?yōu)楦唠娖綍r,我們必須產(chǎn)生一個不連續(xù)的觸發(fā)器。下面對每行進行說明。
在下面顯示的空白設(shè)置函數(shù)中,我們必須聲明連接到 PIR 輸出的引腳 2 將用作輸入,連接到 LED/蜂鳴器的引腳 3 將用作輸入。
void setup() {
pinMode(2, INPUT); //Pin 2 as INPUT
pinMode(3, OUTPUT); //PIN 3 as OUTPUT
}
然后我們繼續(xù)使用 loop() 函數(shù)。眾所周知,只要MCU通電,此處的代碼就會被執(zhí)行。因此,我們始終使用 loop() 函數(shù)中的以下行來檢查 Pin 2 是否變高。
if (digitalRead(2) == HIGH)
如果我們發(fā)現(xiàn)特定引腳已變?yōu)楦唠娖剑瑒t表示已觸發(fā) PIR 模塊。所以,現(xiàn)在我們已經(jīng)使我們的輸出引腳(引腳3)變高。我們以 100 毫秒的延遲打開和關(guān)閉此引腳,以便我們可以獲得閃爍或嗡嗡聲輸出。執(zhí)行相同操作的代碼如下所示。
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
}
}
加工:
上面已經(jīng)討論了這個arduino運動檢測器的電路和程序?,F(xiàn)在,您可以按照上面給出的原理圖在面包板上構(gòu)建該電路,并上傳本教程末尾的程序。連接完成后,您的設(shè)置應(yīng)如下所示。
現(xiàn)在,打開 Arduino 電源并等待大約 50-60 秒,讓 PIR 傳感器進行校準。不要對在此期間獲得的輸出感到沮喪。之后,嘗試移動到 PIR 傳感器前面,您的 LED/蜂鳴器應(yīng)該被觸發(fā)。
一段時間后應(yīng)停止發(fā)出蜂鳴聲/閃爍聲;現(xiàn)在,您可以通過改變電位計來改變模塊的靈敏度或低時間,從而繞過輸出。
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
}
}
-
微控制器
+關(guān)注
關(guān)注
48文章
7570瀏覽量
151627 -
Arduino
+關(guān)注
關(guān)注
188文章
6472瀏覽量
187331 -
PIR傳感器
+關(guān)注
關(guān)注
3文章
57瀏覽量
9715
發(fā)布評論請先 登錄
相關(guān)推薦
評論