天天看點

一文讀懂傾斜傳感器(傾斜計)的使用方法

傾斜傳感器子產品簡介

傾斜傳感器子產品如下圖所示。

一文讀懂傾斜傳感器(傾斜計)的使用方法

傾斜傳感器可以檢測方向或傾斜度。它檢測傳感器是否完全直立或是否傾斜。

這使得它非常有用,例如在玩具、機器人和其他工作方法取決于傾向的器具中使用。

工作原理

傾斜傳感器是圓柱形的,内部包含一個自由導電滾動球,下面有兩個導電元件(杆)。

一文讀懂傾斜傳感器(傾斜計)的使用方法

它的工作原理如下:

  • 當傳感器完全直立時,球落到傳感器底部并連接配接兩極,進而允許電流流動。
  • 當傳感器傾斜時,球不接觸兩極,電路開路,電流不流動。

這樣,傾斜傳感器就像一個開關,根據其傾斜度打開或關閉。是以,它将向 Arduino 提供數字資訊,即高電平或低電平信号。

引腳接線

将傾斜傳感器連接配接到 Arduino 上非常簡單。隻需将一個引腳連接配接到 Arduino 數字引腳,并将 GND 連接配接到 GND。

注意:引腳上需要使用 10k歐姆 的上拉電阻。

一文讀懂傾斜傳感器(傾斜計)的使用方法

示例

在此示例中,如果傳感器直立,則 LED 将關閉;如果傳感器傾斜,則 LED 将打開。

一文讀懂傾斜傳感器(傾斜計)的使用方法
int ledPin = 12;         
int sensorPin = 4;
int sensorValue;
int lastTiltState = HIGH;   // sh上傳從傾斜傳感器讀取的資料
    

long lastDebounceTime = 0;  // 最後一次切換輸出引腳的時間
long debounceDelay = 50;    //延時
 
void setup(){
  pinMode(sensorPin, INPUT);
  digitalWrite(sensorPin, HIGH);
  pinMode(ledPin, OUTPUT);
  Serial.begin(9600);
}
 
void loop(){
  sensorValue = digitalRead(sensorPin);
  // 如果開關因噪音或按壓而改變
  if (sensorValue == lastTiltState) {
    // 時間複位
    lastDebounceTime = millis();
  } 
  if ((millis() - lastDebounceTime) > debounceDelay) {
 
    lastTiltState = sensorValue;
  }
  digitalWrite(ledPin, lastTiltState);

  Serial.println(sensorValue);
  delay(500);
}