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

ESP32和ESP8266基于Arduino的MQTT收發(fā)資料說明

esp32和arduino的區(qū)別,esp32能否替代arduino
ESP32 開發(fā)之旅② Arduino For ESP32說明

(包教必會(huì))Arduino環(huán)境下ESP32部署指南

arduino / VScode+platformIO搭建esp32/esp8266編譯環(huán)境(一篇足矣)

基于ESP32的Arduino兼容系統(tǒng)

如何在Arduino IDE中安裝ESP32開發(fā)環(huán)境

用了ESP32后,我的Arduino都積灰了,專為零基礎(chǔ)新手準(zhǔn)備的ESP32入門指南,為什么我不再使用Arduino

用了ESP32后,我的Arduino都積灰了,專為零基礎(chǔ)新手準(zhǔn)備的ESP32入門指南,為什么我不再使用Arduino

EE-130:從ADSP-21xx快速過渡到ADSP-219x

評(píng)論