使用紅外傳感器的自動洗手間燈

玖玖單片機 發佈 2022-04-17T16:08:02.490789+00:00

這個基於Arduino Uno和 IR 傳感器的項目用於自動打開和關閉洗手間燈。每當有人進入洗手間時,燈就會自動打開。當人離開洗手間時,燈就關閉。這將節省使用洗手間後由於誤開燈而產生的電費。電路和工作自動洗手間燈的電路圖如下圖所示。

這個基於Arduino Uno和 IR 傳感器的項目用於自動打開和關閉洗手間燈。每當有人進入洗手間時,燈就會自動打開。當人離開洗手間時,燈就關閉。這將節省使用洗手間後由於誤開燈而產生的電費。

電路和工作

自動洗手間燈的電路圖如下圖所示。它使用Arduino Uno (Borad1)、BC547 電晶體 (T1)、紅外 (IR) 傳感器模塊 (Module1 和 Module2) 和繼電器 (RL1) 構建。

紅外線傳感器

此處使用的IR傳感器 (FC-51),通常用於障礙物檢測。兩對紅外傳感器模塊用於檢測人員進出洗手間。

每個傳感器都有三個引腳,即 Vcc、Vout 和 GND。Vcc 引腳接入5V 直流電源,可從 Arduino Uno 的 5V 引腳獲取。傳感器的接地引腳(GND)可以連接到 Arduino Uno 的 GND 引腳。IR Module1 和 IR Module2 的 Vout 引腳分別連接到 Arduino Uno 的8 和 7 引腳。

5V繼電器

5V 機械繼電器 (RL1) 用於打開和關閉燈。典型的方糖型 5V 繼電器有五個端子,其中兩個用於給線圈通電。其餘為公共端 (COM)、常閉 (NC) 和常開 (NO) 端子。

把燈連接在繼電器的 NO 和 COM 觸點上。很明顯,在正常情況下,NO 引腳與 COM 引腳沒有任何接觸。當繼電器線圈通電時,COM 引腳和NO 引腳導通,燈泡獲得 220V 交流電源。繼電器的引腳細節如下圖所示。

220V 交流電源的火線(L) 通過繼電器連接到燈泡。零線 (N) 直接連接到燈泡。

當「in」傳感器(Module2)先檢測到人體, 然後是「out」傳感器(Module1)時,Arduino 控制器認為有人正在進入洗手間,並在 Board1 的引腳 9 處提供 5V。而來自 Arduino 輸出引腳的電流不足啟動繼電器。因此,使用npn電晶體T1(BC547)放大電流控制繼電器導通進而開燈。

當「out」傳感器檢測到有人,隨後「進入」傳感器也檢測到時,控制器認為有人正在離開並在引腳 9 輸出 0V,從而使繼電器斷電。火線斷開燈泡關閉。

軟體

Arduino Uno 用於計算兩個紅外傳感器的邏輯。程序是用Arduino IDE 1.8.5 編寫、編譯並上傳。

在代碼中,「void setup()」初始化引腳 7 和 8 作為輸入,以及引腳 9 作為輸出。void show () 是用於串行通信的函數。「void setup ()」如圖下圖所示。

「void loop()」包含要執行的邏輯。首先檢查「in」傳感器是否有障礙物(人)。如果有任何障礙物,在此階段,「out」傳感器尚未檢測到障礙物,則執行while循環,等待「out」 傳感器感應結果。

當人擋住「out」傳感器時,傳感器的輸出為低電平,則程序退出 while 循環,說明有人進入,進入人數遞增1。

反之亦然,否則為 else if 部分,人物出去計數值遞減。Show( ) 函數用於串口監視器,實際應用中不需要。

我反而覺得它比較適用於商店,用於和顧客打招呼,因為在公共洗手間計數,不會準確,因為同時進出的人可能有多個,也不能時亮時滅。但是它的用途不一定只用在控制衛生間的燈,還可以用於計數,檢測物體移動方向,並做出響應

關鍵字: