搜尋程式碼

ESP32 教學 18/55 - 使用 ESP32 偵測傾斜 | SunFounder 嘅 ESP32 IoT 學習套件

ESP32 教學 18/55 - 使用 ESP32 偵測傾斜 | SunFounder 嘅 ESP32 IoT 學習套件

喺呢個教學入面,我哋會用SunFounder ESP32微控制器嚟整一個簡單嘅項目,用傾斜開關嚟偵測傾斜。當傾斜開關啟動嘅時候,LED會熄滅,而當佢企直嘅時候,LED就會着。呢個項目唔單止係認識傾斜感應器嘅好入門,仲係各種機械人應用嘅基礎。想睇詳細嘅視覺指南,記得睇上面連結嘅影片(影片00:00位置)。

傾斜開關

硬件解說

呢個項目用到嘅主要零件包括ESP32微控制器、一個傾斜開關同一個LED。ESP32係一個功能強大嘅微控制器,內置Wi-Fi同藍牙,好適合物聯網應用。傾斜開關係一個簡單嘅裝置,入面有個金屬波仔喺一個罐入面。當傾斜嘅時候,波仔會移動並切斷電路,等我哋可以偵測到傾斜狀態。LED會根據開關嘅狀態嚟視覺上顯示傾斜情況。除咗呢啲零件之外,我哋仲會用電阻嚟做限流同下拉用途。連接LED嘅220歐姆電阻確保LED安全運作,唔會攞太多電流。10k歐姆電阻就做傾斜開關嘅下拉電阻,確保當開關冇啟動嘅時候,輸入引腳讀到一個已知狀態。

數據手冊詳情

製造商 SunFounder
零件編號 ESP32
邏輯/IO電壓 3.3 V
供電電壓 5 V
輸出電流(每通道) 12 mA
峰值電流(每通道) 40 mA
PWM頻率指引 1 kHz
輸入邏輯閾值 0.8 V(低),2.0 V(高)
電壓降 / RDS(on) / 飽和 0.2 V
熱限制 85 °C
封裝 ESP32模組
備註 / 變體 包含Wi-Fi同藍牙功能

 

  • 確保用啱電阻值,防止整壞LED。
  • 保持接線整齊,避免短路。
  • 用下拉電阻確保傾斜開關讀數穩定。
  • 通電之前測試接線,避免零件損壞。
  • 確認傾斜開關嘅方向,確保功能準確。

接線指示

ESP32-18_tile_wiring

要接線,先處理傾斜開關,佢冇極性,所以可以任意方向連接。將傾斜開關嘅一個引腳連到3.3V供電,另一個引腳連到ESP32嘅引腳14。為咗確保引腳14喺開關冇啟動嘅時候讀到已知狀態,將一個10k歐姆電阻由同一引腳連到地。跟住攞LED插入麵包板,長腳(陽極)連到一個220歐姆電阻。將電阻嘅另一端連到ESP32嘅引腳26。LED嘅短腳(陰極)應該連到地。最後,將ESP32嘅接地引腳連到麵包板嘅接地軌,3.3V引腳連到電源軌。記得檢查所有接線,防止短路或者讀數錯誤。如果你跟住呢啲步驟,你應該有一個功能正常嘅傾斜感應器裝置,準備好寫程式。

程式碼示例同講解

程式碼首先定義傾斜開關同LED嘅引腳號碼。傾斜開關連到引腳14,LED連到引腳26。傾斜開關嘅狀態儲存喺變數tiltState入面。


// 設定引腳號碼
const int tiltPin = 14;  // 傾斜開關
const int ledPin = 26;   // LED

// 用嚟儲存傾斜狀態嘅變數
int tiltState = 0;

呢段顯示引腳分配同埋追蹤傾斜狀態嘅變數宣告。tiltPin設定為輸入嚟讀取開關狀態。喺setup()函數入面,初始化串行通訊,並為傾斜開關同LED設定引腳模式。咁確保ESP32可以讀取傾斜開關嘅輸入,並相應控制LED。


void setup() {
  Serial.begin(115200);
  // 初始化傾斜引腳為輸入
  pinMode(tiltPin, INPUT);
  // 初始化LED引腳為輸出
  pinMode(ledPin, OUTPUT);
}

呢個部分好重要,因為佢設定環境,令ESP32可以有效通訊,並根據傾斜開關狀態控制輸出。loop()函數會持續檢查傾斜開關嘅狀態。如果開關企直,LED就會着;如果傾斜,LED就會熄。當前狀態會打印到串行監視器嚟做除錯。


void loop() {
  // 讀取傾斜開關嘅狀態
  tiltState = digitalRead(tiltPin);

  Serial.println(tiltState);
  // 如果開關企直
  if (tiltState == HIGH) {
    // 着LED
    digitalWrite(ledPin, HIGH);
  } else {
    // 熄LED
    digitalWrite(ledPin, LOW);
  }
}

呢個循環會持續運行,令到可以實時監測傾斜開關狀態同相應嘅LED控制。輸出可以喺串行監視器度睇到,好容易驗證功能。

示範 / 預期效果

一旦所有接線正確且程式碼已上傳,你應該會見到當傾斜開關垂直時LED會亮起,而傾斜時就會熄滅。呢種傾斜狀態同LED反應之間嘅直接關聯,有效咁展示咗傾斜開關嘅功能。常見嘅錯誤包括要確保接線正確,同埋檢查電阻有冇適當放置以避免短路(影片12:00位置)。

影片時間標記

  • 00:00 開始
  • 1:44 項目介紹
  • 2:49 文件說明
  • 6:43 Arduino接線講解
  • 10:39 Arduino程式碼講解
  • 13:40 喺Arduino IDE度選擇ESP32開發板同COM埠
  • 15:22 項目傾斜示範

圖片

ESP32-18_tile_wiring
ESP32-18_tile_wiring
tilt_switch
tilt_switch
ESP32-18_tile_schematic
ESP32-18_tile_schematic
817-ESP32 Tutorial 18/55- Arduino code for tilt sensor
語言: C++
// Set pin numbers
const int tiltPin = 14;  // Tilt Switch
const int ledPin = 26;   // LED

// Variable for storing the tilt status
int tiltState = 0;

void setup() {
  Serial.begin(115200);
  // Initialize the tilt pin as an input
  pinMode(tiltPin, INPUT);
  // Initialize the LED pin as an output
  pinMode(ledPin, OUTPUT);
}

void loop() {
  // Read the state of the tilt switch
  tiltState = digitalRead(tiltPin);

  Serial.println(tiltState);
  // If the switch is upright
  if (tiltState == HIGH) {
    // Turn LED on
    digitalWrite(ledPin, HIGH);

  } else {
    // Turn LED off
    digitalWrite(ledPin, LOW);
  }
}

資源與參考資料

文件📁

冇文件可用。