Author:teacherXue

一、ESP8266 引脚参考

ESP8266 12-E 芯片带有 17 个 GPIO 引脚。并不是所有的ESP8266开发板都开放了所有的GPIO,并且由于电力设计原因,以及有些GPIO有非常特殊的功能,部分的GPIO不推荐使用。了解ESP8266的GPIO,并通过为项目使用最合适的引脚来提高成功的概率。

  1. ESP8266 引脚

  • 17个GPIO

  • SPI接口

  • I2C(软件实现)

  • I2S 与 DMA 接口

  • 串口

  • 10 位模数转换器

  • 模拟信号输入接口(只有一个)

ESP8266 需要注意GPIO 编号与板上丝印上的标签不匹配。例如,D0对应GPIO16,D1对应GPIO5。下表是丝印上的标签和GPIO编号的对应关系,以及你项目中哪些管脚最好用,哪些需要注意。以绿色突出显示的引脚可以使用。黄色高亮的是可以使用的,但要注意,因为它们主要在启动时可能会出现意外行为。不建议将红色突出显示的引脚用作输入或输出(图表来源randomnerdtutorials.com),在没搞清楚所有引脚的作用时。尽量使用绿色引脚。

标签

通用输入输出接口

输入

输出

备注

D0

GPIO16

没有中断

不支持 PWM 或 I2C

开机时高

通常从深度睡眠中唤醒

D1

通用输入输出口5

好的

好的

经常用作SCL(I2C)

D2

通用输入输出口4

好的

好的

经常用作SDA(I2C)

D3

通用输入输出0

拉高

好的

连接到 FLASH 按钮,如果拉低则启动失败

D4

通用输入输出2

拉高

好的

开机时高

连接到板载 LED,如果拉低则启动失败

D5

GPIO14

好的

好的

SPI接口(SCLK)

D6

GPIO12

好的

好的

SPI接口(MISO)

D7

GPIO13

好的

好的

SPI接口(MOSI)

D8

GPIO15

拉到GND

好的

SPI接口(CS)

如果拉高则引导失败

RX

通用输入输出口3

好的

接收引脚

开机时高

TX

通用输入输出口 1

TX 引脚

好的

开机时高

启动时调试输出,如果拉低则启动失败

A0

ADC0

模拟输入

X

A0

ESP826612-E NodeMCU Kit

ESP8266-01Pinout

WemosD1 Mini Pinout

1)GPIO6 到 GPIO11 通常连接到ESP8266 板上的闪存芯片。因此,不建议使用这些引脚。

2)引导期间被使用的引脚

  • GPIO16:引脚在 BOOT 时为高电平

  • GPIO0:如果拉低则启动失败

  • GPIO2:引脚在 BOOT 时为高电平,如果拉低则引导失败

  • GPIO15:如果拉高则启动失败

  • GPIO3 : 引脚在 BOOT 时为高电平

  • GPIO1 : 引脚在 BOOT 时为高电平,如果拉低则引导失败

  • GPIO10 : 引脚在 BOOT 时为高电平

  • GPIO9 : 引脚在 BOOT 时为高电平

3)开机时为高电平的引脚

当 ESP8266 启动时,某些引脚会输出 3.3V 信号。如果您将继电器或其他外围设备连接到这些 GPIO,这可能会出现问题。以下 GPIO 在启动时输出高电平信号:

  • GPIO16

  • 通用输入输出口3

  • 通用输入输出口 1

  • GPIO10

  • GPIO9

此外,除 GPIO5 和 GPIO4 之外的其他 GPIO 可以在启动时输出低电压信号,如果这些 GPIO 连接到晶体管或继电器,则可能会出现问题。如果操作继电器,GPIO4 和 GPIO5 是使用 GPIO 最安全的。

4)模拟输入

ESP8266 只支持一个 GPIO 的模拟读取。该 GPIO 称为ADC0,通常在丝印上标记为A0。如果您使用的是 ESP8266 裸芯片,则 ADC0 引脚的最大输入电压为 0 至 1V。如果您使用的是像ESP8266 12-E NodeMCU 套件这样的开发板,电压输入范围是 0 到 3.3V,因为这些板包含一个内部分压器。

5)板载LED

大多数 ESP8266 开发板都有一个内置 LED。这个 LED 通常连接到GPIO2。

6)RST引脚

当 RST 引脚被拉低时,ESP8266 复位。这与按下板载 RESET 按钮相同。他被连接在开发板的RESET按钮。

7)GPIO 0 引脚

当 GPIO0 被拉低时,它会将 ESP8266 设置为引导加载程序模式。这与按板载 FLASH/BOOT 按钮相同。

8)GPIO16引脚

GPIO16 可用于将 ESP8266 从深度睡眠中唤醒。要将 ESP8266 从深度睡眠中唤醒,GPIO16 应连接到 RST 引脚。深度睡眠可以在某些特定的场景中通过使用电池长达数月甚至于数年的连续工作。

9)I2C接口

ESP8266 没有硬件 I2C 引脚,但可以用软件实现。所以您可以将任何 GPIO 用作 I2C。通常,以下引脚为通常使用的I2C引脚。

  • GPIO5: SCL

  • GPIO4: SDA

10)SPI引脚

SPI通信引脚,通常很多的微型液晶显示模块采用此接口,引脚定义如下:

  • GPIO12: MISO

  • GPIO13: MOSI

  • GPIO14: SCLK

  • GPIO15: CS

11)PWM接口

ESP8266 允许在所有 I/O 引脚上使用软件 PWM:GPIO0到 GPIO15。ESP8266 上的 PWM 信号具有 10 位分辨率。可以简单理解为,使用数字信号产生和模拟控制相似的波形曲线。例如控制LED的亮度,PWM电机调速,舵机等。

12)中断引脚

ESP8266 支持GPIO16外任何 GPIO 中的中断。中断操作具有更高的优先级。

  1. 认识面包板

实验中,需要频繁的连接设备引线,焊接显然不是很好的办法。面包板是由于板子上有很多小插孔,专为电子电路的无焊接实验设计制造的。由于各种电子元器件可根据需要随意插入或拔出,免去了焊接,节省了电路的组装时间,而且元件可以重复使用,所以非常适合电子电路的组装、调试和训练。

这里推荐400孔的面包板,他体积小巧,又有足够多的插孔来连接外设,并且可以通过拼装,凑成更大的工作板。

面包板,由中间板和两侧的电源扩展板构成,三者可分离。其结构上中间板在中轴线两侧横向插口导通,用于并联元器件引脚。电源扩展板纵向导通,用于分享电源的正负极。对于NodeMCU开发板刚好可以分别引出3.3v和5v电源。

在使用硬质导线,并花费一定精力设计的情况下,可以获得近似于电路板设计的效果,并且他们是可以拆卸的。

通常情况下,使用面包板插线可实现更为快速的引脚连接。它是两段带有金属探针的软线,可以跨越很多原件进行连接。

一、使用面包板完成可控LED实验

本实验,我们将使用NodeMCU和400孔的面包板,实现外接的LED,并通过模拟旋钮控制器,控制其亮度的变化。

  1. 安装开发板

将NodeMCU开发板,usb接口向外插入面包板的中间,并使得引脚刚好在最左侧的中间位置,这时在开发板两侧刚好会各有一排插孔,可以将外设的信号线通过面包板和开发板引脚相连。

  • VIN引脚是是双向引脚:可以接5v直流电源为开发板供电,这是一个常见的电源电压,USB供电也是这个数值。当USB接口被接入时,VIN引脚可以获得直接来自供电端的5v电流,理论上这个5v的直接供电能力和usb供电能力相同,注意通过板子的同一侧数据引脚的供电和它没有关系。

  • 3V3引脚:是通过稳压电源输出的符合绝大多数芯片工作电压的输出,但其供电能力有限,较大功率负载(>500ma)需要通过电路放大器外接供电。

  • GND引脚:为共地地引脚,不理解的通学们,将其当负极即可。开发板上共有三个,设备接地到任意一个均可。

我们按下图将开发板的5v和3.3v分别引出到面包板两侧的电源扩展,红正黑负是良好的习惯,接反大概率会有某些芯片冒烟。

  1. 安装LED灯珠

不同颜色的灯珠有着不同的耐压和功耗,大致参数如下:

白:工作电流 20(mA) 工作电压 3.0-3.4(V)功率 0.06(W)

红:工作电流 20(mA) 工作电压 1.8-2.2(V)功率 0.06(W)

绿:工作电流 20(mA) 工作电压 3.0-3.4(V)功率 0.06(W)

蓝:工作电流 20(mA) 工作电压 3.0-3.4(V)功率 0.06(W)

黄:工作电流 20(mA) 工作电压 1.8-2.2(V)功率 0.06(W)

LED灯珠非常的省电,其可以非常便利的被开发板带动,但同时其也容易被烧毁(参看上表,红色灯珠拥有最小的耐压,更加容易被烧毁),理论上使用LED灯珠需要串联一个330欧姆的电阻,但我更加倾向于省却这个电阻,他会使得我的板子布线比较简洁,虽然有概率烧毁,但不经常发生。并且灯珠的价格非常低廉,实验中,烧了换掉就好了。

LED灯珠具有单向导通能力,只能在一个电流方向上被点亮,通常情况下,灯珠的引脚一长一短,长引脚为供电(正极),短引脚为接地(负极),我一般按下图处理引脚(左侧的白色灯珠),这样它将更加容易被插入面包板。

将处理好的LED灯珠的长脚插入开发板丝印的D5引脚边上的孔中,短引脚插入面包板3.3v扩展供电段的接地(负极)插孔中,如下图(注意,照片中的LED插入的是D3引脚)。

  1. 创建灯控项目

1)在 VS Code 上,单击 PlartfomIO主页图标。点击+ New Project创建Lamp_ctl_v1.0项目并确定。

2)修改platformio.ini文件,增加串口率设置monitor_speed = 115200。

3)编辑main.cpp主文件,基本参考上一节的亮灯代码,其中LED引脚定义为14,查阅引脚对应表,D5引脚对应的是GPIO14。

    #include  <Arduino.h>#define LED 14   // D5引脚对应的是GPIO14void setup() {// put your setup code here, to run once:Serial.begin(115200); //设置串口通信波特率pinMode(LED, OUTPUT);}void loop() {// put your main code here, to run  repeatedly:digitalWrite(LED, HIGH);  Serial.println("LED is on"); //通过串口通讯打印信息delay(1000);digitalWrite(LED, LOW);Serial.println("LED is off"); //通过串口通讯打印信息delay(1000);}

4)编译烧录固件。

5)一秒间隔闪烁的白色LED,通过实验我们发现,搞清楚引脚后修改代码执行并不困难。

03-NodeMCU引脚和接线、点亮外部LED相关推荐

  1. esp8266灯上电闪一下_【零知ESP8266教程】快速入门2-点亮外部LED灯

    [零知ESP8266教程]快速入门2-点亮外部LED灯 [复制链接] 一.工具原料 电脑,windows系统 ESP8266开发板 micro-usb线 LED灯1个 220Ω 电阻1个 面包板一个+ ...

  2. 使用无线WIFI模块NodeMCU Lua V3物联网开发板8266-01/01S 在Arduino搭建环境到点亮一个LED灯

    使用无线WIFI模块NodeMCU Lua V3物联网开发板8266-01/01S 在Arduino搭建环境到点亮一个LED灯 软件下载 基于Arduino环境搭建 点亮一个LED灯 上传成功 修改代 ...

  3. raspberry pi_使用Raspberry Pi和GPIO引脚控制外部LED

    raspberry pi by Shahbaz Ahmed Shahbaz艾哈迈德(Shahbaz Ahmed) 使用Raspberry Pi和GPIO引脚控制外部LED (Controlling a ...

  4. ESP8266 NodeMCU引脚说明

    问题 开发ESP8266 NodeMCU GPIO功能时,作为小白的我根本不知道引脚编号,虽然知道ESP8266 NodeMCU丝印引脚编号如下图所示,但是和实际对应的GPIO编号完全不一样. 解决 ...

  5. 实例2:树莓派GPIO控制外部LED灯闪烁

    实例2:树莓派GPIO控制外部LED灯闪烁 实验目的 通过背景知识学习,了解四足机器人mini pupper搭载的微型控制计算机:树莓派. 通过树莓派GPIO操作的学习,熟悉GPIO的读写控制. 通过 ...

  6. 【华为云技术分享】玩转小熊派BearPi(一)使用STM32CubeMX + HAL点亮一个LED

    最近刚刚入手了一块小熊派开发板,玩了一下感觉这块核心板可玩性挺高,板载ST-Link,240*240LCD小屏幕,而且体积非常小巧,可以说是入门物联网的一块非常不错的板子,先放上一张靓照: 这块小熊派 ...

  7. java gpio_单片机基础——使用GPIO输出点亮一个LED灯

    1. 准备工作 硬件准备 开发板 首先需要准备一个小熊派IoT开发板,并通过USB线与电脑连接. 软件准备 需要安装好Keil - MDK及芯片对应的包,以便编译和下载生成的代码,可参考MDK安装教程 ...

  8. 点亮一个LED及原理笔记

    本实验主要学习内容: 1.发光二极管介绍,硬件的介绍. 2.单片机IO口的介绍. 3.完成"点亮一个led灯"程序的编写和编译. 4.进行程序烧写. LED的介绍:它是半导体二极管 ...

  9. 从点亮一个LED开始,Cortex-A9裸机程序设计

    电路原理图: 如何点亮一个LED? 通过对原理图进行分析,我们能够发现给三极管的基极加上一个高点平时,三级管be结导通构成通路,此时二极管就点亮了.若要将LED熄灭只需取消高电平输出. 如何使三级管基 ...

最新文章

  1. 解决使用requests_html模块,html.render()下载chromium报错、速度慢问题
  2. 中小企业 软交换机 呼叫中心 需要的请留言
  3. MariaDB 窗口函数row_number、rank介绍
  4. 为什么使用Maven
  5. Oracle丢失管理员密码的解决方法
  6. LINUX安装ORACLE 9204 报错解决!!
  7. OJ1041: 数列求和2(高阶递推)
  8. 4.7 什么是深度卷积网络?
  9. linux 下的igv软件,Linux IGV 自动画图 -- for 自动化报告
  10. API函数简介 转自洪恩在线
  11. JS基础-百度换肤案例
  12. c++ 制作木马病毒
  13. vmware fusion个人版
  14. 前端请求路径为何不能写成http://localhost:8080/**/** ?
  15. sgu 309 Real Fun
  16. 2021年中国商业银行企业避险业务分析:引导企业坚持汇率风险中性理念[图]
  17. 2021-08-10
  18. 钙钛矿在太阳能电池领域的研究进展
  19. 使用mdadm创建raid mdadm命令详解_php_sir_新浪博客
  20. Storm的一些通用的Topology的模式

热门文章

  1. 湖南“腾笼换鸟”激发新动能 高精尖产业成发展新引擎
  2. PC微信逆向:实现自动添加好友分享名片
  3. 移动平均法的两个版本
  4. 取得文件夹下的所有文件的文件名和文件大小
  5. CI/CD :Pipeline
  6. 【C语言】例3.5 求方程的根
  7. Proxmox VE退出集群模式
  8. 海上日出(Sunrise)
  9. 【C语言】BC64牛牛的快递(DAY 5)
  10. 产品竞争力分析——SWOT