0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何快速从Arduino过渡到ESP32的新手指南-基础篇

伊娃老师来了 来源:伊娃来了 作者:伊娃来了 2023-11-21 08:36 次阅读

我相信,对于习惯了使用Arduino的朋友们,开始使用ESP32的GPIO引脚可能会遇到一些棘手的问题。

ESP32并非和Arduino一模一样,因此在选择引脚时需要注意一些差异,以避免不必要的麻烦。

本文将为你提供从Arduino到ESP32 GPIO引脚平稳过渡的指南,让你轻松解决各种问题。

基础篇内容

引脚使用注意事项

电源引脚

ADC引脚

DAC引脚

PWM引脚

Touch引脚


学会看硬件的说明书

要了解ESP32,最简单的就是找到技术规格书,又叫做datasheet(点击原文链接)。技术规格书通常包含了硬件和软件方面的详细信息,能够帮助你更全面地了解ESP32的功能和性能。

为了高效清晰与严谨,技术规格书一般很“不人性化”,对于不习惯阅读技术内容的人,非常容易让人看得头昏眼花,所以我会掰开揉碎了讲,只要把这篇文章看完,你也能了解ESP32引脚的使用方式与注意事项。

技术规格书(点击原文链接)

fc8ec608-8805-11ee-b3e3-92fbcf53809c.png

fc9c1d4e-8805-11ee-b3e3-92fbcf53809c.png

ESP32 Wroom32引脚图:lastminuteengineers.com

fca86946-8805-11ee-b3e3-92fbcf53809c.jpg

如何正确使用引脚

搭配这个表格可以了解使用引脚的注意事项,如果你是零基础,可以先不用着急搞清楚这么多引脚,只要记住:
先使用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,不能配置为输出

fcbbf998-8805-11ee-b3e3-92fbcf53809c.png

认识引脚类型-电源引脚 VIN(电源输入):

功能:用于连接外部电源,为ESP32及其外围设备提供电力。

使用场景:如果您有一个稳定的5V电源,可以将其连接到VIN引脚。

3V3(3.3V输出):

功能:来自板载电压稳压器的输出,提供稳定的3.3V电压。

使用场景:可以用来为外部电路提供3.3V电源,通常用于驱动外部传感器、模块等。

GND(地线):

功能:提供电路的地连接,确保电路中各部分具有相同的电位参考。

使用场景:所有电路都需要连接到地线,以确保电流的正常流动。

VIN用于接收外部电源,3V3用于提供3.3V稳定电压,GND用于建立电位参考和电路的地连接。 fce5f5ea-8805-11ee-b3e3-92fbcf53809c.jpg

认识引脚类型-ADC引脚

ADCAnalog-to-Digital Converter,模拟数字转换器

Digiital数字信号:数值只有1跟0表示,一般1表示有,0表示无。以灯来说,就是亮(1)与不亮(0)

Analog模拟信号:数值是一个范围、有大有小,以灯来说,就是最亮(1000),中等亮(500),不亮(0)

ADC用于将模拟信号转换为数字信号,简单说,就是把我们感知到的亮度,变成可以量化理解的数字。

因此在ADC引脚,我们主要会连接各种传感器来侦测环境中的变化。

fcf2e7d2-8805-11ee-b3e3-92fbcf53809c.jpg

要注意,并非所有ADC引脚都能随时使用。

ADC1: 可使用analogRead指令读取传感器或者电压数值。 例如,要读取GPIO 33的ADC值,可以使用 analogRead(33)。

ADC2:
仅在未使用Wi-Fi驱动程序时可用。因为ADC2共享资源与Wi-Fi驱动程序相冲突。如果你需要使用Wi-Fi功能,应该避免使用ADC2引脚。

认识引脚类型-DAC引脚

‍DAC‍:Digital-to-AnalogConverter,数字模拟转换器。 跟ADC相反,DAC将计算机的数字信号转成模拟信号,多数用来输出声音的信号,与扬声器配合使用播放声音或者音乐。 fcfcb1d6-8805-11ee-b3e3-92fbcf53809c.jpg       认识引脚类型-PWM引脚

PWM(脉冲宽度调制)是一种通过控制信号的占空比来调节平均功率的技术,简单来说,因为数字信号只能输出0跟1,

为了模拟0.5,就每秒轮流输出0跟1,实现:

(1+0) 2 秒= 0.5每秒。

跟DAC相同都是输出模拟信号,但精确度没有DAC高,因为一个是真实模拟信号,一个是通过手段假装的模拟信号。

因此避免音频的失真,一般使用DAC,而PWM更多用于控制LED亮度变化、舵机角度位置、电机速度等。

所有的GPIO都可以设置为PWM模式,除了34、35、36、39仅可输入信号。

fd00c2b2-8805-11ee-b3e3-92fbcf53809c.jpg

认识引脚类型-Touch引脚 ESP32具有9个电容触摸感应的GPIO引脚,这功能相当实用且有趣。 fd0c2738-8805-11ee-b3e3-92fbcf53809c.jpg 可以理解只要不是绝缘体,都可以通过Touch引脚变成按钮,比如人的手指靠近Touch引脚时,ESP32会检测到电容的变化,就像手机屏幕能感知到手指一样。你可以用Touch引脚轻松实现水果键盘弹钢琴,或者做一个实用的触屏电子锁。 你可以上传代码并打开串口监视器,观察触摸33引脚时的数字变化。

void setup() {  // 放置你的初始化代码,此处只运行一次:  Serial.begin(115200);  // 初始化串口通信,波特率为115200}
void loop() {  // 放置你的主要代码,此处会循环执行:  Serial.println(touchRead(33));  // 读取 GPIO 33 上的电容触摸感应值并输出到串口  delay(200);  // 延迟200毫秒,可以根据需要调整}

串口监视器的数值会根据触碰33引脚产生变化

fd168160-8805-11ee-b3e3-92fbcf53809c.png

你可以连接水果,把水果变成控制键盘

后续我会继续分享零基础入门ESP32的教学文章,也欢迎关注我的视频号与B站:伊娃老师来了。

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • adc
    adc
    +关注

    关注

    95

    文章

    5654

    浏览量

    539524
  • Arduino
    +关注

    关注

    184

    文章

    6428

    浏览量

    184860
  • ESP32
    +关注

    关注

    13

    文章

    897

    浏览量

    15858
收藏 人收藏

    评论

    相关推荐

    【FireBeetle 2 ESP32-S3开发板测评】Arduino IDE快速开发体验

    【FireBeetle 2 ESP32-S3开发板测评】Arduino IDE快速开发体验
    的头像 发表于 07-23 09:03 1646次阅读
    【FireBeetle 2  <b class='flag-5'>ESP32</b>-S3开发板测评】<b class='flag-5'>Arduino</b> IDE<b class='flag-5'>快速</b>开发体验

    告诉你如何51单片机快速过渡到AVR单片机

    51单片机快速过渡到AVR单片机
    发表于 10-06 12:30

    Arduino环境下ESP32如何部署

    (包教必会)Arduino环境下ESP32部署指南Arduino IDE下载安装Arduino IDE点击此处访问
    发表于 12-03 06:02

    如何将pinarduino转移到esp32

    大家好,我最近将我的项目 Arduino 转移到 ESP32,我在 arduino 上使用引脚 10,9 我的设备和库 Software
    发表于 04-12 06:14

    arduino-esp32-master环境设置用的库

    arduino-esp32-master开发环境设置用的库
    发表于 08-07 08:53 25次下载

    esp32arduino的区别,esp32能否替代arduino

    很多创客爱好者甚至有些技术工程师在理解esp32arduino的时候总是问一句这两块板子哪个更好用?他们可能潜意识中就觉得arduinoesp32是竞品的关系,但实际是这样吗?今天
    发表于 06-24 17:11 2.4w次阅读

    ESP32 开发之旅② Arduino For ESP32说明

    文章目录1. Arduino Core For ESP32是什么?2.Arduino core for ESP32库3.与ESP8266库类
    发表于 11-13 19:51 33次下载
    <b class='flag-5'>ESP32</b> 开发之旅② <b class='flag-5'>Arduino</b> For <b class='flag-5'>ESP32</b>说明

    (包教必会)Arduino环境下ESP32部署指南

    (包教必会)Arduino环境下ESP32部署指南
    发表于 11-23 17:51 17次下载
    (包教必会)<b class='flag-5'>Arduino</b>环境下<b class='flag-5'>ESP32</b>部署<b class='flag-5'>指南</b>

    使用Arduino开发ESP32-01S

    使用Arduino开发ESP32-01S
    发表于 12-03 18:06 16次下载
    使用<b class='flag-5'>Arduino</b>开发<b class='flag-5'>ESP32</b>-01S

    Arduino封装上的ESP32

    电子发烧友网站提供《Arduino封装上的ESP32板.zip》资料免费下载
    发表于 07-25 14:36 5次下载
    <b class='flag-5'>Arduino</b>封装上的<b class='flag-5'>ESP32</b>板

    基于ESP32Arduino兼容系统

    电子发烧友网站提供《基于ESP32Arduino兼容系统.zip》资料免费下载
    发表于 12-20 17:53 0次下载
    基于<b class='flag-5'>ESP32</b>的<b class='flag-5'>Arduino</b>兼容系统

    带有ESP32Arduino物联网云

    电子发烧友网站提供《带有ESP32Arduino物联网云.zip》资料免费下载
    发表于 06-15 09:16 3次下载
    带有<b class='flag-5'>ESP32</b>的<b class='flag-5'>Arduino</b>物联网云

    用了ESP32后,我的Arduino都积灰了,专为零基础新手准备的ESP32入门指南,为什么我不再使用Arduino

    Arduino 或许你已经熟悉Arduino,这是许多零基础者接触的首个开发板。然而,随着ESP32的崭露头角,它
    的头像 发表于 11-20 11:20 7919次阅读
    用了<b class='flag-5'>ESP32</b>后,我的<b class='flag-5'>Arduino</b>都积灰了,专为零基础<b class='flag-5'>新手</b>准备的<b class='flag-5'>ESP32</b>入门<b class='flag-5'>指南</b>,为什么我不再使用<b class='flag-5'>Arduino</b>

    ESP32的接口不能随便用,如何快速Arduino过渡到ESP32新手指南-进阶篇

    进阶篇 接续如何快速Arduino过渡到ESP32新手指南-基础篇,继续了解ESP32的各种
    的头像 发表于 12-12 15:54 7756次阅读
    <b class='flag-5'>ESP32</b>的接口不能随便用,如何<b class='flag-5'>快速</b>从<b class='flag-5'>Arduino</b><b class='flag-5'>过渡到</b><b class='flag-5'>ESP32</b>的<b class='flag-5'>新手指南</b>-进阶篇

    用了ESP32后,我的Arduino都积灰了,专为零基础新手准备的ESP32入门指南,为什么我不再使用Arduino

    Arduino 或许你已经熟悉Arduino,这是许多零基础者接触的首个开发板。然而,随着ESP32的崭露头角,它
    的头像 发表于 12-12 15:48 1910次阅读
    用了<b class='flag-5'>ESP32</b>后,我的<b class='flag-5'>Arduino</b>都积灰了,专为零基础<b class='flag-5'>新手</b>准备的<b class='flag-5'>ESP32</b>入门<b class='flag-5'>指南</b>,为什么我不再使用<b class='flag-5'>Arduino</b>