1
我相信,对于习惯了使用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-Analog Converter,数字模拟转换器。 跟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站:伊娃老师来了。
审核编辑 黄宇
全部0条评论
快来发表一下你的评论吧 !