實驗說明:
在這篇使用ESP32搭配SW-420震動感測模組,當SW-420模組不震動時,震動開關呈閉合導通狀態,輸出端輸出低電位;震動時,震動開關瞬間斷開,輸出端輸出高電位。模組上有一個藍色十字形的電位器調節,可以根據自己的需要調整靈敏度。
SW-420震動感測模組是無方向性振動傳感器,一般可用在各種震動觸發,報盜報警,智能小車,地震報警,摩托車報警等。
材料:
- ESP32-E DevKit
- USB 傳輸線
- SW-420震動感測模組
- 直插LED
- 220Ω直插電阻
- 麵包板
- 麵包板跳線
▼ 購買IoT物聯網學習教材:
相關知識:
SW-420震動開關常閉型元件在沒有震動時,震動軸靜止,導針A和導針B處於導通狀態,平時任何角度開關都是導通狀態,當受到振動或移動時,震動軸會產生移動或振動,從而導致導針A和B會出現斷開。
這種開關的特點是平時一般處於導通狀態,當發生振動時會短暫斷開,所以它的靈敏度很高。 SW-420沒有震動時電路是導通的,所以也被稱作常閉式震動傳感器。
程式:
int shockPin = 17; //SW-420震動感測器DO信號腳 連接到ESP32 GPIO17
int ledPin = 16; //LED連接到ESP32 GPIO16
byte value; //宣告value變數。
void setup() {
Serial.begin(9600);
pinMode(ledPin,OUTPUT); //設定ledPin的接腳為輸出模式
pinMode(shockPin,INPUT); //設定shockPin的接腳為輸入模式
}
void loop() {
value = digitalRead(shockPin);
Serial.println(value);
//若value等於1,則點亮ledPin上的LED;否則熄滅ledPin上的LED
if (value == 1){
digitalWrite(ledPin,HIGH);
}else{
digitalWrite(ledPin,LOW);
}
delay(100);
}
程式說明:
將程式碼下載到ESP32後,當SW-420模組不震動時,震動開關呈閉合導通狀態,輸出端輸出低電位,LED燈熄滅;震動時,震動開關瞬間斷開,輸出端輸出高電位,LED燈點亮。