有幾臺關鍵機器或昂貴的設備會因振動而損壞。在這種情況下,需要一個振動傳感器來確定機器或設備是否產生振動。如果使用適當的傳感器來檢測振動,那么識別持續振動的物體并不是一件棘手的工作。市場上有幾種類型的振動傳感器可以通過感應加速度或速度來檢測振動,并且可以提供出色的結果。然而,在使用加速度計的情況下,這種傳感器過于昂貴。加速度計非常靈敏,可用于制作地震探測器電路。 但是,也很少有專用且廉價的傳感器可用于僅檢測振動,其中一種振動傳感器是 SW-420,我們將與 Arduino Uno 接口。
所以在這個項目中,一個基本的振動傳感器模塊與流行的 Arduino UNO 接口,每當振動傳感器檢測到任何振動或抖動時,一個 LED 就會開始閃爍。
振動傳感器模塊 SW-420
這是一個SW-420振動模塊,可以工作在3.3V到5V之間。傳感器使用 LM393 比較器檢測超過閾值點的振動并提供數字數據,邏輯低或邏輯高,0 或 1。在正常工作期間,傳感器提供邏輯低,當檢測到振動時,傳感器提供邏輯高。模塊中提供三個外圍設備,兩個 LED,一個用于電源狀態,另一個用于傳感器輸出。此外,還提供了一個電位器,可進一步用于控制振動的閾值點。在本項目中,我們將使用 5V 為模塊供電。
所需組件
Arduino UNO
SW-420 振動傳感器模塊
5mm LED(任何顏色)
跳線(連接線)
上傳程序的 USB 數據線
Arduino振動傳感器電路圖
下面給出了將振動傳感器與 Arduino uno 連接的示意圖 。
LED 連接在 D13 引腳上。該模塊使用 Arduino 中可用的 5V 引腳供電。接地和 5V 引腳用于為 Arduino 供電,而 A5 引腳用于從振動傳感器獲取數據。
該電路是在 SW-420 模塊和 LED 與 Arduino Uno 連接的地方構建的。
Arduino Uno 振動傳感器編程
將 Arduino UNO 編程為接口振動傳感器不需要太多努力,因為只需監控輸入引腳即可得出結論。最后附上完整的代碼和工作視頻。
最初包含頭文件。由于本教程是在帶有 Arduino 擴展的 Eclipse IDE 中編寫的,因此包含了 arduino 標頭。此草圖也適用于 Arduino IDE,在 Arduino IDE 中使用此草圖時,無需包含
#include
這里為 ON 和 OFF 定義了兩個宏。
#define 開 1 #define 關 0
以下語句用于集成 LED 和振動傳感器。振動傳感器連接到引腳 A5。還使用了內置 LED,它直接連接到板子中的引腳 13。5mm LED 也連接到引腳 13。
/* * 引腳說明 */ intvibration_Sensor = A5; 整數 LED = 13;
聲明了兩個整數,其中傳感器當前輸出和先前輸出將被存儲,這將進一步用于檢測是否發生振動。
/* * 程序流程描述 */ int present_condition = 0; int previous_condition = 0;
聲明為外圍連接的同一引腳,配置引腳的方向。傳感器引腳作為輸入,LED 引腳作為輸出。
/* * 引腳模式設置 */ void setup() { pinMode(vibration_Sensor, INPUT); pinMode(LED,輸出); }
編寫了一個函數以使 LED 閃爍兩次。可以通過更改延遲值來配置延遲。
無效 led_blink(void) { digitalWrite(LED, ON); 延遲(250); 數字寫入(LED,關閉); 延遲(250); 數字寫入(LED,開); 延遲(250); 數字寫入(LED,關閉); 延遲(250); }
在循環函數中,比較當前條件和先前條件。如果這兩個不相同,則LED 開始閃爍,直到兩者相同。啟動時,兩個變量保持 0,程序啟動期間 LED 保持熄滅。當有一些 virbraion 時,present_condition變量變為 1 并導致開始閃爍。當振動停止時,兩個變量都變為 0,LED 停止閃爍。
無效循環(){ 前一個條件=現在條件; present_condition = digitalRead(A5); // 從 Arduino 的 A5 引腳讀取數字數據。 if (previous_condition != present_condition) { led_blink(); } 其他 { 數字寫入(LED,關閉); } }
這樣就完成了使用振動傳感器對 arduino UNO 的編程。最后一步是測試整個設置。
測試 Arduino 振動傳感器電路
該電路不需要額外的面包板。可以使用 Arduino UNO 板對其進行簡單測試。當振動傳感器被擊中或它是否改變其狀態時,會監控 LED。當有一些振動時,LED 將閃爍連接到 Arduino UNO 的 Pin 13。如果振動傳感器不起作用,請檢查連接和電源。避免傳感器和微控制器之間的任何松散連接。
/*//=============================================== =================================//
* 與 Arduino 接口的振動傳感器
* 日期: - 15-04-2019
* 作者:- 蘇拉夫古普塔
* 對于:- circuitdigest.com
*/ //=============================================== ================================//
#include
#include
#define ON 1
#define 關閉 0
/*
* 引腳說明
*/
int 振動傳感器 = A5;
整數 LED = 13;
/*
* 程序流程說明
*/
int present_condition = 0;
int previous_condition = 0;
/*
* 引腳模式設置
*/
無效設置(){
pinMode(振動傳感器,輸入);
pinMode(LED,輸出);
}
/*
* LED 閃爍
*/
無效led_blink(無效);
/*
* 主循環
*/
無效循環(){
以前的條件=現在的條件;
present_condition = digitalRead(A5); // 從 Arduino 的 A5 引腳讀取數字數據。
if (previous_condition != present_condition) {
led_blink();
} 別的 {
數字寫入(LED,關閉);
}
}
無效led_blink(無效){
數字寫入(LED,開);
延遲(250);
數字寫入(LED,關閉);
延遲(250);
數字寫入(LED,開);
延遲(250);
數字寫入(LED,關閉);
延遲(250);
}
-
led
+關注
關注
242文章
23295瀏覽量
661268 -
振動傳感器
+關注
關注
2文章
323瀏覽量
19828 -
Arduino
+關注
關注
188文章
6471瀏覽量
187225
發布評論請先 登錄
相關推薦
評論