ESP32 Arduino实战基础篇-GPIO数字输入和数字输出

本文介绍了如何使用Arduino IDE和ESP32进行GPIO数字输入和输出的控制,包括设置GPIO模式、读取按钮状态和控制LED。通过一个简单的按钮-LED项目,阐述了代码工作原理及上传过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在本入门指南中,您将学习如何使用 ESP32 和 Arduino IDE 读取数字输入(例如按钮开关)以及控制数字输出(例如 LED)。

ESP32 读取输入 控制输出 Arduino IDE

先决条件

我们将使用 Arduino IDE 对 ESP32 进行编程。因此,在继续之前,请确保您已安装 ESP32 板插件:

ESP32 控制数字输出

首先,您需要将要控制的GPIO设置为输出。使用引脚模式()函数如下:

pinMode(GPIO, OUTPUT);

要控制数字输出,您只需使用数字写入()函数,它接受您所引用的 GPIO(整数)以及状态作为参数高的或者低的

digitalWrite(GPIO, STATE);

除 GPIO 6 至 11(连接到集成 SPI flash)和 GPIO 34、35、36 和 39(仅输入 GPIO)外,所有 GPIO 均可用作输出;

了解有关 ESP32 GPIO 的更多信息:ESP32 GPIO 参考指南

ESP32 读取数字输入

首先,设置你想要读取的GPIO为输入, 使用引脚模式()函数如下:

pinMode(GPIO, INPUT);

要读取数字输入(例如按钮),您可以使用数字读取()函数,它接受您所引用的 GPIO(整数)作为参数。

digitalRead(GPIO);

除 GPIO 6 至 11(连接到集成 SPI 闪存)外,所有 ESP32 GPIO 均可用作输入。

了解有关 ESP32 GPIO 的更多信息:ESP32 GPIO 参考指南

项目实例

为了向您展示如何使用数字输入和数字输出,我们将构建一个带有按钮和 LED 的简单项目示例。我们将读取按钮的状态并相应地点亮 LED,如下图所示。

按下或不按下 ESP32 按钮来打开和关闭 LED

原理图,示意图

在继续之前,您需要组装一个带有 LED 和按钮的电路。我们将 LED 连接到通用输入输出口5和按钮通用输入输出口4

所需零件

以下是构建电路所需的部件列表:

ESP32  (阅读最佳 ESP32 开发板)
5毫米LED
330欧姆电阻
按钮
10k欧姆电阻
面包板
跳线
 

 

 

代码

将以下代码复制到您的 Arduino IDE。

// Complete Instructions: https://RandomNerdTutorials.com/esp32-digital-inputs-outputs-arduino/

// set pin numbers
const int buttonPin = 4;  // the number of the pushbutton pin
const int ledPin =  5;    // the number of the LED pin

// variable for storing the pushbutton status 
int buttonState = 0;

void setup() {
  Serial.begin(115200);  
  // initialize the pushbutton pin as an input
  pinMode(buttonPin, INPUT);
  // initialize the LED pin as an output
  pinMode(ledPin, OUTPUT);
}

void loop() {
  // read the state of the pushbutton value
  buttonState = digitalRead(buttonPin);
  Serial.println(buttonState);
  // check if the pushbutton is pressed.
  // if it is, the buttonState is HIGH
  if (buttonState == HIGH) {
    // turn LED on
    digitalWrite(ledPin, HIGH);
  } else {
    // turn LED off
    digitalWrite(ledPin, LOW);
  }
}

代码如何运作

在以下两行中,您创建变量来分配引脚:

const int buttonPin = 4;
const int ledPin = 5;

该按钮连接到通用输入输出口4LED 连接到通用输入输出口5。当将 Arduino IDE 与 ESP32 一起使用时,4 对应于通用输入输出口45对应于通用输入输出口5

接下来,您创建一个变量来保存按钮状态。默认情况下,它是 0(未按下)。

int buttonState = 0;

在里面设置(),您将按钮初始化为输入,并且 LED 作为输出。为此,您使用引脚模式()接受您所引用的引脚的函数以及模式:输入或者输出

pinMode(buttonPin, INPUT);
pinMode(ledPin, OUTPUT);

在里面环形()在这里您可以读取按钮状态并相应地设置 LED。

在下一行中,您读取按钮状态并将其保存在按钮状态多变的。正如我们之前所看到的,您使用数字读取()功能。

buttonState = digitalRead(buttonPin);

下面的 if 语句,检查按钮状态是否为高的。如果是,则使用以下命令打开 LED数字写入()接受作为参数的函数LED 引脚,以及国家高的

if (buttonState == HIGH) {
  digitalWrite(ledPin, HIGH);
}

如果按钮状态不是高的,您将 LED 关闭。刚刚设置低的作为第二个参数数字写入()功能。

else {
  digitalWrite(ledPin, LOW);
}

上传代码

在单击上传按钮之前,请转到 “工具”  >  “开发板”,然后选择您正在使用的开发板。

进入工具>端口并选择 ESP32 连接的 COM 端口。然后,按上传按钮并等待“上传完成”消息。

完成上传 Arduino IDE 按钮

如果您在调试窗口中看到很多点(…__…__),并且出现 “Failed to connect to ESP32: Timed out waiting for packet header”的消息,则意味着您需要在启动后按下 ESP32 板载 BOOT 按钮。点开始出现。

示范

上传代码后,测试您的电路。当您按下按钮时,您的 LED 应该会亮起:

Arduino IDE 上的 ESP32 输入输出按钮按下 LED

释放后关闭:

ESP32 输入输出按钮未按下 Arduino IDE

包起来

通过本入门指南,您了解了如何使用 Arduino IDE 通过 ESP32 读取数字输入和控制数字输出。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

TD程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值