有幾臺(tái)關(guān)鍵機(jī)器或昂貴的設(shè)備會(huì)因振動(dòng)而損壞。在這種情況下,需要一個(gè)振動(dòng)傳感器來(lái)確定機(jī)器或設(shè)備是否產(chǎn)生振動(dòng)。如果使用適當(dāng)?shù)膫鞲衅鱽?lái)檢測(cè)振動(dòng),那么識(shí)別持續(xù)振動(dòng)的物體并不是一件棘手的工作。市場(chǎng)上有幾種類型的振動(dòng)傳感器可以通過(guò)感應(yīng)加速度或速度來(lái)檢測(cè)振動(dòng),并且可以提供出色的結(jié)果。然而,在使用加速度計(jì)的情況下,這種傳感器過(guò)于昂貴。加速度計(jì)非常靈敏,可用于制作地震探測(cè)器電路。 但是,也很少有專用且廉價(jià)的傳感器可用于僅檢測(cè)振動(dòng),其中一種振動(dòng)傳感器是 SW-420,我們將與 Arduino Uno 接口。
所以在這個(gè)項(xiàng)目中,一個(gè)基本的振動(dòng)傳感器模塊與流行的 Arduino UNO 接口,每當(dāng)振動(dòng)傳感器檢測(cè)到任何振動(dòng)或抖動(dòng)時(shí),一個(gè) LED 就會(huì)開(kāi)始閃爍。
振動(dòng)傳感器模塊 SW-420

這是一個(gè)SW-420振動(dòng)模塊,可以工作在3.3V到5V之間。傳感器使用 LM393 比較器檢測(cè)超過(guò)閾值點(diǎn)的振動(dòng)并提供數(shù)字?jǐn)?shù)據(jù),邏輯低或邏輯高,0 或 1。在正常工作期間,傳感器提供邏輯低,當(dāng)檢測(cè)到振動(dòng)時(shí),傳感器提供邏輯高。模塊中提供三個(gè)外圍設(shè)備,兩個(gè) LED,一個(gè)用于電源狀態(tài),另一個(gè)用于傳感器輸出。此外,還提供了一個(gè)電位器,可進(jìn)一步用于控制振動(dòng)的閾值點(diǎn)。在本項(xiàng)目中,我們將使用 5V 為模塊供電。
所需組件
Arduino UNO
SW-420 振動(dòng)傳感器模塊
5mm LED(任何顏色)
跳線(連接線)
上傳程序的 USB 數(shù)據(jù)線
Arduino振動(dòng)傳感器電路圖
下面給出了將振動(dòng)傳感器與 Arduino uno 連接的示意圖 。

LED 連接在 D13 引腳上。該模塊使用 Arduino 中可用的 5V 引腳供電。接地和 5V 引腳用于為 Arduino 供電,而 A5 引腳用于從振動(dòng)傳感器獲取數(shù)據(jù)。
該電路是在 SW-420 模塊和 LED 與 Arduino Uno 連接的地方構(gòu)建的。

Arduino Uno 振動(dòng)傳感器編程
將 Arduino UNO 編程為接口振動(dòng)傳感器不需要太多努力,因?yàn)橹恍璞O(jiān)控輸入引腳即可得出結(jié)論。最后附上完整的代碼和工作視頻。
最初包含頭文件。由于本教程是在帶有 Arduino 擴(kuò)展的 Eclipse IDE 中編寫的,因此包含了 arduino 標(biāo)頭。此草圖也適用于 Arduino IDE,在 Arduino IDE 中使用此草圖時(shí),無(wú)需包含
#include
這里為 ON 和 OFF 定義了兩個(gè)宏。
#define 開(kāi) 1 #define 關(guān) 0
以下語(yǔ)句用于集成 LED 和振動(dòng)傳感器。振動(dòng)傳感器連接到引腳 A5。還使用了內(nèi)置 LED,它直接連接到板子中的引腳 13。5mm LED 也連接到引腳 13。
/* * 引腳說(shuō)明 */ intvibration_Sensor = A5; 整數(shù) LED = 13;
聲明了兩個(gè)整數(shù),其中傳感器當(dāng)前輸出和先前輸出將被存儲(chǔ),這將進(jìn)一步用于檢測(cè)是否發(fā)生振動(dòng)。
/* * 程序流程描述 */ int present_condition = 0; int previous_condition = 0;
聲明為外圍連接的同一引腳,配置引腳的方向。傳感器引腳作為輸入,LED 引腳作為輸出。
/*
* 引腳模式設(shè)置
*/
void setup() {
pinMode(vibration_Sensor, INPUT);
pinMode(LED,輸出);
}
編寫了一個(gè)函數(shù)以使 LED 閃爍兩次??梢酝ㄟ^(guò)更改延遲值來(lái)配置延遲。
無(wú)效 led_blink(void) {
digitalWrite(LED, ON);
延遲(250);
數(shù)字寫入(LED,關(guān)閉);
延遲(250);
數(shù)字寫入(LED,開(kāi));
延遲(250);
數(shù)字寫入(LED,關(guān)閉);
延遲(250);
}
在循環(huán)函數(shù)中,比較當(dāng)前條件和先前條件。如果這兩個(gè)不相同,則LED 開(kāi)始閃爍,直到兩者相同。啟動(dòng)時(shí),兩個(gè)變量保持 0,程序啟動(dòng)期間 LED 保持熄滅。當(dāng)有一些 virbraion 時(shí),present_condition變量變?yōu)?1 并導(dǎo)致開(kāi)始閃爍。當(dāng)振動(dòng)停止時(shí),兩個(gè)變量都變?yōu)?0,LED 停止閃爍。
無(wú)效循環(huán)(){
前一個(gè)條件=現(xiàn)在條件;
present_condition = digitalRead(A5); // 從 Arduino 的 A5 引腳讀取數(shù)字?jǐn)?shù)據(jù)。
if (previous_condition != present_condition) {
led_blink();
} 其他 {
數(shù)字寫入(LED,關(guān)閉);
}
}
這樣就完成了使用振動(dòng)傳感器對(duì) arduino UNO 的編程。最后一步是測(cè)試整個(gè)設(shè)置。
測(cè)試 Arduino 振動(dòng)傳感器電路
該電路不需要額外的面包板??梢允褂?Arduino UNO 板對(duì)其進(jìn)行簡(jiǎn)單測(cè)試。當(dāng)振動(dòng)傳感器被擊中或它是否改變其狀態(tài)時(shí),會(huì)監(jiān)控 LED。當(dāng)有一些振動(dòng)時(shí),LED 將閃爍連接到 Arduino UNO 的 Pin 13。如果振動(dòng)傳感器不起作用,請(qǐng)檢查連接和電源。避免傳感器和微控制器之間的任何松散連接。
/*//=============================================== =================================//
* 與 Arduino 接口的振動(dòng)傳感器
* 日期: - 15-04-2019
* 作者:- 蘇拉夫古普塔
* 對(duì)于:- circuitdigest.com
*/ //=============================================== ================================//
#include
#include
#define ON 1
#define 關(guān)閉 0
/*
* 引腳說(shuō)明
*/
int 振動(dòng)傳感器 = A5;
整數(shù) LED = 13;
/*
* 程序流程說(shuō)明
*/
int present_condition = 0;
int previous_condition = 0;
/*
* 引腳模式設(shè)置
*/
無(wú)效設(shè)置(){
pinMode(振動(dòng)傳感器,輸入);
pinMode(LED,輸出);
}
/*
* LED 閃爍
*/
無(wú)效led_blink(無(wú)效);
/*
* 主循環(huán)
*/
無(wú)效循環(huán)(){
以前的條件=現(xiàn)在的條件;
present_condition = digitalRead(A5); // 從 Arduino 的 A5 引腳讀取數(shù)字?jǐn)?shù)據(jù)。
if (previous_condition != present_condition) {
led_blink();
} 別的 {
數(shù)字寫入(LED,關(guān)閉);
}
}
無(wú)效led_blink(無(wú)效){
數(shù)字寫入(LED,開(kāi));
延遲(250);
數(shù)字寫入(LED,關(guān)閉);
延遲(250);
數(shù)字寫入(LED,開(kāi));
延遲(250);
數(shù)字寫入(LED,關(guān)閉);
延遲(250);
}
-
led
+關(guān)注
關(guān)注
243文章
24592瀏覽量
690761 -
振動(dòng)傳感器
+關(guān)注
關(guān)注
2文章
376瀏覽量
20555 -
Arduino
+關(guān)注
關(guān)注
190文章
6526瀏覽量
196891
發(fā)布評(píng)論請(qǐng)先 登錄
轉(zhuǎn):開(kāi)源基于Arduino的空氣檢測(cè)傳感器設(shè)計(jì)方案
arduino UNO采集多個(gè)姿態(tài)傳感器信息
帶有Arduino的Flex傳感器的制作
如何與ARDUINO一起使用振動(dòng)傳感器
帶有超聲波傳感器和LCD顯示屏的Arduino uno shield
霍爾傳感器與Arduino UNO接口及示例代碼
將Arduino uno與PIR運(yùn)動(dòng)傳感器連接
使用超聲波傳感器HC SR04和Arduino Uno制作超聲波距離傳感器
使用Arduino Uno和PIR傳感器的社交距離項(xiàng)目
帶有arduino uno的超聲波傳感器
與Arduino Uno接口超聲波傳感器開(kāi)源
使用Arduino Uno制作溫度和濕度傳感器
如何將超聲波傳感器與Arduino Uno連接
Arduino UNO和帶繼電器的振動(dòng)傳感器
振動(dòng)傳感器與Arduino UNO連接的教程
評(píng)論