首页

如何将GPIO引脚配置为ESP8266 NodeMCU输入输出?

在本教程中,我们将在ESP8266上学习一些基本的数字输入和数字输出操作。我选择了NodeMCU板演示ESP8266 NodeMCU输入输出操作,使用LED作为数字输出设备和一个按钮作为数字输入设备。

简介

这只是一个初学者指南,了解如何配置ESP8266 NodeMCU板的GPIO引脚为数字输入和数字输出。

Getting-Started-with-NodeMCU
NodeMCU (ESP-12E)

在继续学习本教程之前,我强烈建议您阅读“NodeMCU入门和"NodeMCU引出线的教伟德老虎机手机版程,因为我讨论了一些与ESP8266 NodeMCU板相关的基本但非常重要的主题。

在NodeMCU入门教程中,我谈到了如何设置Arduino用于编程NodeMCU板的IDE。这一步非常重要,它是一次性的工作,即正确设置你的Arduino IDE,你不必担心一次又一次。

来到NodeMCU Pinout教程,我谈到了所有关于ESP8266 NodeMCU板引脚的重要信息。这也是一个重要的教程,因为你将了解哪些引脚可以用作gpio,哪些引脚用于其他目的(如UART TX和RX或SPI Flash等)。

在完成这两个教程之后,是时候测试ESP8266 NodeMCU伟德老虎机手机版 Input Output操作了。一个简单的带限流电阻的5mm LED作为输出设备来测试数字输出功能,而一个带下拉电阻的按钮作为输入设备来测试数字输入功能。

让我们开始吧。

ESP8266 NodeMCU输入输出操作

如果你看过ESP8266的NodeMCU Pinout,你会意识到并非所有的GPIO引脚的NodeMCU板都可以作为简单的GPIO引脚用于数字输入和输出操作。

在17个GPIO引脚中,有8个已经用于其他操作,如UARTSPI Flash。因此,您还剩下9个GPIO引脚。即使在9中,其中一些在启动过程中使用,而另一些在启动时具有默认状态。

ESP8266-NodeMCU-Input-Output-Connections

因此,在选择正确的GPIO引脚时必须非常小心。例如,如果您选择一个GPIO引脚来驱动一个继电器,如果它在引导时的状态是HIGH,那么继电器将在引导过程中被打开。这种情况可能对所有应用程序都有用,也可能不有用。

为了保险起见,我使用了GPIO4和GPIO5,即NodeMCU上的D2和D1来演示这个项目。这些引脚没有任何替代功能,可以毫无疑问地自由使用。

要将GPIO引脚配置为Input或Output,必须使用pinMode()函数。一旦设置好引脚,就可以使用digitalRead()函数从输入引脚读取数据,并使用digitalWrite()函数将数据写入输出引脚。

Arduino-Digital-Input-Digital-Output

组件的要求

  • ESP8266 NodeMCU
  • 5毫米领导
  • 微型USB电缆
  • 330Ω电阻
  • 10 KΩ电阻器
  • 按钮
  • 电路试验板
  • 面包板电源(可选)
  • 连接电线

线路图

下图是演示ESP8266 NodeMCU输入输出操作的电路图。

ESP8266-NodeMCU-Input-Output-Circuit

代码

项目代码如下所示。您不需要下载任何额外的库。

工作

这是一个简单的项目,你按下一个按钮,LED的状态将切换,即,如果它之前是低,它将变成高,反之亦然。现在,让我们检查一下代码并理解它的工作原理。

首先,我们定义LED和按钮的pin号。我使用了" #define "宏,但你也可以使用" const int "变量。GPIO5或D1用于LED, GPIO4或D2用于按钮。

ESP8266-NodeMCU-IO-Code-1

然后,我声明了一些变量来保持LED和Push Button的状态(按钮的当前状态和前一状态以及LED的当前状态)。此外,还有几个用于按钮反弹实现的变量。

ESP8266-NodeMCU-IO-Code-2

在setup()函数中,使用带适当参数(分别为output和input)的pinMode()函数初始化" ledPin "和output以及" buttonPin "作为输入。

ESP8266-NodeMCU-IO-Code-3

回到loop()函数,在第一行中,您使用digitalRead()函数读取按钮引脚的状态,并将值存储到buttonValue变量中。

ESP8266-NodeMCU-IO-Code-4

接下来是按钮反弹部分代码。等待直到释放延迟通过,因为按钮被按下,然后使用之前获得的按钮状态值。这将消除意外的压力和噪音。

ESP8266-NodeMCU-IO-Code-5

如果按钮状态已经改变,如果它等于HIGH,那么只切换LED的状态。

ESP8266-NodeMCU-IO-Code-6

最后,使用digitalWrite()函数应用LED的新状态,并存储按钮的当前状态。

ESP8266-NodeMCU-IO-Code-7

样例输出视频

下面的gif是输出的一个小视频片段。

ESP8266-NodeMCU-Digital-IO-Output

结论

一个简单的教程来理解ESP8266 NodeMCU的GPIO引脚的输入输出操作。您学习了如何将NodeMCU的GPIO引脚设置为输入或输出。

留下一个回复

您的电邮地址将不会公布。

Electronicshub图标
Baidu
map