在本教程中,我们将在ESP8266上学习一些基本的数字输入和数字输出操作。我选择了NodeMCU板演示ESP8266 NodeMCU输入输出操作,使用LED作为数字输出设备和一个按钮作为数字输入设备。
简介
这只是一个初学者指南,了解如何配置ESP8266 NodeMCU板的GPIO引脚为数字输入和数字输出。
在继续学习本教程之前,我强烈建议您阅读“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中,其中一些在启动过程中使用,而另一些在启动时具有默认状态。
因此,在选择正确的GPIO引脚时必须非常小心。例如,如果您选择一个GPIO引脚来驱动一个继电器,如果它在引导时的状态是HIGH,那么继电器将在引导过程中被打开。这种情况可能对所有应用程序都有用,也可能不有用。
为了保险起见,我使用了GPIO4和GPIO5,即NodeMCU上的D2和D1来演示这个项目。这些引脚没有任何替代功能,可以毫无疑问地自由使用。
要将GPIO引脚配置为Input或Output,必须使用pinMode()函数。一旦设置好引脚,就可以使用digitalRead()函数从输入引脚读取数据,并使用digitalWrite()函数将数据写入输出引脚。
组件的要求
- ESP8266 NodeMCU
- 5毫米领导
- 微型USB电缆
- 330Ω电阻
- 10 KΩ电阻器
- 按钮
- 电路试验板
- 面包板电源(可选)
- 连接电线
线路图
下图是演示ESP8266 NodeMCU输入输出操作的电路图。
代码
项目代码如下所示。您不需要下载任何额外的库。
工作
这是一个简单的项目,你按下一个按钮,LED的状态将切换,即,如果它之前是低,它将变成高,反之亦然。现在,让我们检查一下代码并理解它的工作原理。
首先,我们定义LED和按钮的pin号。我使用了" #define "宏,但你也可以使用" const int "变量。GPIO5或D1用于LED, GPIO4或D2用于按钮。
然后,我声明了一些变量来保持LED和Push Button的状态(按钮的当前状态和前一状态以及LED的当前状态)。此外,还有几个用于按钮反弹实现的变量。
在setup()函数中,使用带适当参数(分别为output和input)的pinMode()函数初始化" ledPin "和output以及" buttonPin "作为输入。
回到loop()函数,在第一行中,您使用digitalRead()函数读取按钮引脚的状态,并将值存储到buttonValue变量中。
接下来是按钮反弹部分代码。等待直到释放延迟通过,因为按钮被按下,然后使用之前获得的按钮状态值。这将消除意外的压力和噪音。
如果按钮状态已经改变,如果它等于HIGH,那么只切换LED的状态。
最后,使用digitalWrite()函数应用LED的新状态,并存储按钮的当前状态。
样例输出视频
下面的gif是输出的一个小视频片段。
结论
一个简单的教程来理解ESP8266 NodeMCU的GPIO引脚的输入输出操作。您学习了如何将NodeMCU的GPIO引脚设置为输入或输出。