輕鬆學習 C++ 與 ESP32:LED 控制


簡介

在嵌入式系統開發中,ESP32 是一款廣受歡迎的開發板,它具備強大的處理能力和無線通訊功能。在這篇文章中,我們將使用 C++ 的物件導向特性,通過建立一個 LED 控制的類別,來學習如何在 ESP32 上進行開發。我們將使用 ESP-IDF (Espressif IoT Development Framework) 和 Visual Studio Code 來進行實作。

開發環境設置

1. 安裝 Visual Studio Code,可從官方網站下載並且安裝。
2. 安裝 ESP-IDF 插件

創建一個新項目

1. 在 VS Code 中,按下 Ctrl (Cmd) + Shift + P,然後輸入 ESP-IDF: New Project。

2. 選擇一個樣板專案(如 blink example),設定專案名稱(例如 LED_Control),並選擇存儲路徑。

3. 此時,系統會自動為您生成一個新的 ESP-IDF 項目,其中包含基本的 CMake 文件和一個範例程式碼。

檔案結構

my_project/
├── CMakeLists.txt
├── main/
│ ├── CMakeLists.txt
│ └── main.cpp
└── ...
用 ESP32 學習 C++:LED 控制

使用 C++ 類別來控制 LED

打開 main/main.cpp 文件,將其修改為以下內容

程式碼詳細解釋

LEDController 類別:
提供三個主要方法:
1. turnOn():打開 LED。
2. turnOff():關閉 LED。
3. blink():讓 LED 閃爍一次,傳入的參數指定閃爍時間。
app_main() 函數:
我們在 app_main() 中執行了以下操作:
1. 打開 LED (turnOn()),並保持 LED 亮 2 秒。
2. 關閉 LED (turnOff()),並保持 LED 關閉 2 秒。
3. 讓 LED 閃爍 5 次,間隔 500 毫秒。
4. 再次 打開 LED 並保持亮 3 秒。
5. 最終關閉 LED。

編譯與燒錄

在 VSCode 視窗最下方中找到 "ESP32-IDF : Build, Flash and Monitor" ICON 執行和燒錄。

程式運行效果

運行程式後,您將在終端機中看到以下輸出:

結論

在這篇文章中,我們學習了如何使用 ESP-IDF 的 esplog 來管理日誌輸出,並展示了如何在 ESP32 上進行 LED 控制的同時記錄相關操作訊息。通過使用 ESP_LOGI(),我們可以方便地追蹤程式的執行狀態,這對於除錯和性能調試非常有幫助。

利用日誌系統,您還可以更靈活地設置不同級別的日誌輸出,以便在不同階段掌握程式運行的細節。希望這能幫助您更好地掌握 ESP32 開發中的日誌功能!