前言:什麼是滾珠傾斜開關?
在 Arduino 入門感測器中,滾珠傾斜開關(Tilt Switch Sensor) 是最簡單且實用的「姿勢與角度感測元件」。
它常被應用於:
倒地警報器(如老人跌倒防護、安全帽撞擊偵測)
遊戲手把或玩具的傾斜觸發
智慧防盜系統(物品被移位或傾斜時發出警報)
相比昂貴且複雜的三軸加速度計(如 MPU6050),滾珠開關成本極低、控制簡單,只需讀取 高電位(HIGH)或 低電位(LOW) 數位訊號即可完成觸發!
一、 滾珠傾斜開關(SW-520D)工作原理
常見的滾珠傾斜開關型號為 SW-520D,其外觀為一個小型金屬或塑膠圓柱管,內部包含:
兩根金屬電極(Pins):延伸至金屬管內部底部。
1~2 顆微型金屬滾珠:可以在金屬管內自由滾動。
觸發機制說明
直立/立起時: 內部的金屬滾珠受重力落至底部,同時接觸兩根金屬電極,使電路導通(Closed/ON)。
傾斜/倒下時(角度通常 ): 滾珠滾離底部電極,導致兩腳位之間斷開(Open/OFF)。
二、 實驗材料與電路接線圖
🛠️ 所需材料清單
Arduino Uno R3 開發板 × 1
2 腳位滾珠傾斜開關(SW-520D 裸晶元件) × 1
10kΩ 電阻 × 1(作為下拉電阻,防止腳位訊號懸空浮動)
實驗麵包板 × 1
杜邦線 × 3~4 根
🛍️ 準備好你的硬體工具了嗎? 推薦選購:米羅科技 – Arduino 程式學習爆款套件組(包含滾珠開關、各式感測器與必備電子零件)
🔌 電路接線圖與原理(下拉電阻配置)
當使用 2 腳位的裸晶滾珠開關時,因為只有兩根引腳,元件本身沒有分正負極。為了讓 Arduino 能夠穩定讀取高(HIGH)與低(LOW)電位,我們必須在電路中加入一顆 10kΩ 下拉電阻。
引腳連接步驟表
💡 運作原理說明:
直立導通時: 5V 電壓通過滾珠開關直接到達 Pin 2,Pin 2 讀取到 HIGH (5V)。
傾斜斷開時: 滾珠滾離,電路斷開。Pin 2 透過 10kΩ 電阻連接至 GND,穩定讀取到 LOW (0V)。
三、 Arduino 滾珠傾斜開關程式範例
由於沒有外接 LED 燈,本程式改為利用 Arduino 板載內建的 LED(Pin 13) 與 序列埠監控視窗(Serial Monitor) 來輸出監控結果:
💻 完整程式碼
/*
* 【Arduino入門教學】第19篇:2 Pin 滾珠傾斜開關實作
* 發佈單位:米羅科技文創學院
* 說明:讀取 2 Pin SW-520D 滾珠開關訊號,並透過 Serial Monitor 與板載 LED 顯示狀態
*/
const int TILT_PIN = 2; // 滾珠開關連接至 Pin 2
const int BOARD_LED = 13; // 使用 Arduino 開發板內建的 Pin 13 LED
int tiltState = 0; // 儲存開關狀態的變數
void setup() {
Serial.begin(9600); // 初始化序列埠通訊,鮑率 9600
pinMode(TILT_PIN, INPUT); // 設定 Pin 2 為數位輸入
pinMode(BOARD_LED, OUTPUT); // 設定板載 LED 為輸出模式
Serial.println("【Mirotek】滾珠傾斜開關測試開始...");
}
void loop() {
// 讀取 Pin 2 數位電位 (HIGH 或 LOW)
tiltState = digitalRead(TILT_PIN);
// 判斷開關狀態
if (tiltState == HIGH) {
// 導通狀態(通常為直立時)
digitalWrite(BOARD_LED, HIGH); // 點亮板載 L 燈
Serial.println("狀態:直立 / 導通 (HIGH)");
} else {
// 斷開狀態(傾斜時)
digitalWrite(BOARD_LED, LOW); // 熄滅板載 L 燈
Serial.println("⚠️ 警報:裝置已傾斜 / 斷開 (LOW)");
}
delay(200); // 簡短延遲 0.2 秒,避免序列埠刷頁過快並過濾機械彈跳
}
四、 常用語法與技術細節解析
⚡ 機械彈跳(Debounce)問題說明
由於滾珠開關內部是靠金屬珠碰撞電極導通,在晃動或臨界角度時,滾珠可能會有微小的震動彈跳,導致 Arduino 在短時間內讀到多次 HIGH/LOW 切換。在程式中加上小幅度的 delay(50~100) 或使用 防彈跳程式演算法(Debounce Delay) 能讓讀取更加穩定。
五、 常見問題與除錯 (FAQ)
Q1: 為什麼手沒動它,序列埠卻一直亂印「警報/沒警報」?
解答:
腳位懸空(Floating Pin): 如果使用的是 2Pin 獨立元件且沒有接 10kΩ 下拉電阻,數位腳位會接收到環境靜電干擾。請務必加上 下拉電阻 或改用
INPUT_PULLUP模式。放置角度處於臨界值: 請確認感測器安裝方向,確保平放時滾珠能完全接觸底部。
Q2: 滾珠傾斜開關與水銀開關(Mercury Switch)有什麼不同?
解答:
滾珠開關(SW-520D): 使用金屬小珠,安全無毒、耐碰撞,是目前主流且符合環保規範(RoHS)的選擇。
水銀開關: 利用液體水銀導通,精密度較高,但水銀含有劇毒且易碎,已被全面淘汰與禁售。
🔗 延伸閱讀與推薦課程


