我相信,對于習慣了使用Arduino的朋友們,開始使用ESP32的GPIO引腳可能會遇到一些棘手的問題。
ESP32并非和Arduino一模一樣,因此在選擇引腳時需要注意一些差異,以避免不必要的麻煩。
本文將為你提供從Arduino到ESP32 GPIO引腳平穩過渡的指南,讓你輕松解決各種問題。
基礎篇內容
引腳使用注意事項
電源引腳
ADC引腳
DAC引腳
PWM引腳
Touch引腳
學會看硬件的說明書
要了解ESP32,最簡單的就是找到技術規格書,又叫做datasheet(點擊原文鏈接)。技術規格書通常包含了硬件和軟件方面的詳細信息,能夠幫助你更全面地了解ESP32的功能和性能。
為了高效清晰與嚴謹,技術規格書一般很“不人性化”,對于不習慣閱讀技術內容的人,非常容易讓人看得頭昏眼花,所以我會掰開揉碎了講,只要把這篇文章看完,你也能了解ESP32引腳的使用方式與注意事項。
技術規格書(點擊原文鏈接)
ESP32 Wroom32引腳圖:lastminuteengineers.com
如何正確使用引腳
搭配這個表格可以了解使用引腳的注意事項,如果你是零基礎,可以先不用著急搞清楚這么多引腳,只要記住:
先使用16~33引腳練習,其他慢慢跟著不同項目了解。
名稱 | GPIO | 是否可用 | 原因 |
D0 | 0 | 使用要注意 | 在啟動期間必須為高電平,編程時必須為低電平 |
TX0 | 1 | 不可 | 傳輸引腳,用于閃存和調試 |
D2 | 2 | 使用要注意 | 在啟動期間必須為低電平,同時連接到板載LED |
RX0 | 3 | 不可 | 接收引腳,用于閃存和調試 |
D4 | 4 | 可 | |
D5 | 5 | 使用要注意 | 在啟動期間必須為高電平 |
D6 | 6 | 不可 | 用于連接模組上 集成的 SPI flash,不建議用于其他功能。 |
D7 | 7 | 不可 | 用于連接模組上 集成的 SPI flash,不建議用于其他功能。 |
D8 | 8 | 不可 | 用于連接模組上 集成的 SPI flash,不建議用于其他功能。 |
D9 | 9 | 不可 | 用于連接模組上 集成的 SPI flash,不建議用于其他功能。 |
D10 | 10 | 不可 | 用于連接模組上 集成的 SPI flash,不建議用于其他功能。 |
D11 | 11 | 不可 | 用于連接模組上 集成的 SPI flash,不建議用于其他功能。 |
D12 | 12 | 使用要注意 | 在啟動期間必須為低電平 |
D13 | 13 | 可 | |
D14 | 14 | 可 | |
D15 | 15 | 使用要注意 | 在啟動期間必須為高電平,如果拉低則阻止啟動日志 |
D16 | 16 | 可 | |
D17 | 17 | 可 | |
D18 | 18 | 可 | |
D19 | 19 | 可 | |
D21 | 21 | 可 | |
D22 | 22 | 可 | |
D23 | 23 | 可 | |
D25 | 25 | 可 | |
D26 | 26 | 可 | |
D27 | 27 | 可 | |
D32 | 32 | 可 | |
D33 | 33 | 可 | |
D34 | 34 | 使用要注意 | 僅限輸入GPIO,不能配置為輸出 |
D35 | 35 | 使用要注意 | 僅限輸入GPIO,不能配置為輸出 |
VP | 36 | 使用要注意 | 僅限輸入GPIO,不能配置為輸出 |
VN | 39 | 使用要注意 | 僅限輸入GPIO,不能配置為輸出 |
認識引腳類型-電源引腳 VIN(電源輸入):
功能:用于連接外部電源,為ESP32及其外圍設備提供電力。
使用場景:如果您有一個穩定的5V電源,可以將其連接到VIN引腳。
3V3(3.3V輸出):
功能:來自板載電壓穩壓器的輸出,提供穩定的3.3V電壓。
使用場景:可以用來為外部電路提供3.3V電源,通常用于驅動外部傳感器、模塊等。
GND(地線):
功能:提供電路的地連接,確保電路中各部分具有相同的電位參考。
使用場景:所有電路都需要連接到地線,以確保電流的正常流動。
VIN用于接收外部電源,3V3用于提供3.3V穩定電壓,GND用于建立電位參考和電路的地連接。
認識引腳類型-ADC引腳
ADC:Analog-to-Digital Converter,模擬數字轉換器
Digiital數字信號:數值只有1跟0表示,一般1表示有,0表示無。以燈來說,就是亮(1)與不亮(0)
Analog模擬信號:數值是一個范圍、有大有小,以燈來說,就是最亮(1000),中等亮(500),不亮(0)
ADC用于將模擬信號轉換為數字信號,簡單說,就是把我們感知到的亮度,變成可以量化理解的數字。
因此在ADC引腳,我們主要會連接各種傳感器來偵測環境中的變化。
要注意,并非所有ADC引腳都能隨時使用。
ADC1: 可使用analogRead指令讀取傳感器或者電壓數值。 例如,要讀取GPIO 33的ADC值,可以使用 analogRead(33)。
ADC2:
僅在未使用Wi-Fi驅動程序時可用。因為ADC2共享資源與Wi-Fi驅動程序相沖突。如果你需要使用Wi-Fi功能,應該避免使用ADC2引腳。
認識引腳類型-DAC引腳
?DAC?:Digital-to-AnalogConverter,數字模擬轉換器。 跟ADC相反,DAC將計算機的數字信號轉成模擬信號,多數用來輸出聲音的信號,與揚聲器配合使用播放聲音或者音樂。 ? ? ? 認識引腳類型-PWM引腳
PWM(脈沖寬度調制)是一種通過控制信號的占空比來調節平均功率的技術,簡單來說,因為數字信號只能輸出0跟1,
為了模擬0.5,就每秒輪流輸出0跟1,實現:
(1+0) 2 秒= 0.5每秒。
跟DAC相同都是輸出模擬信號,但精確度沒有DAC高,因為一個是真實模擬信號,一個是通過手段假裝的模擬信號。
因此避免音頻的失真,一般使用DAC,而PWM更多用于控制LED亮度變化、舵機角度位置、電機速度等。
所有的GPIO都可以設置為PWM模式,除了34、35、36、39僅可輸入信號。
認識引腳類型-Touch引腳 ESP32具有9個電容觸摸感應的GPIO引腳,這功能相當實用且有趣。 可以理解只要不是絕緣體,都可以通過Touch引腳變成按鈕,比如人的手指靠近Touch引腳時,ESP32會檢測到電容的變化,就像手機屏幕能感知到手指一樣。你可以用Touch引腳輕松實現水果鍵盤彈鋼琴,或者做一個實用的觸屏電子鎖。 你可以上傳代碼并打開串口監視器,觀察觸摸33引腳時的數字變化。
void setup() { // 放置你的初始化代碼,此處只運行一次: Serial.begin(115200); // 初始化串口通信,波特率為115200} void loop() { // 放置你的主要代碼,此處會循環執行: Serial.println(touchRead(33)); // 讀取 GPIO 33 上的電容觸摸感應值并輸出到串口 delay(200); // 延遲200毫秒,可以根據需要調整}
串口監視器的數值會根據觸碰33引腳產生變化
你可以連接水果,把水果變成控制鍵盤
后續我會繼續分享零基礎入門ESP32的教學文章,也歡迎關注我的視頻號與B站:伊娃老師來了。
審核編輯 黃宇
-
adc
+關注
關注
99文章
6533瀏覽量
545458 -
Arduino
+關注
關注
188文章
6477瀏覽量
187604 -
ESP32
+關注
關注
18文章
977瀏覽量
17474
發布評論請先 登錄
相關推薦
評論