【ESP32最全学习笔记(基础篇)——5.ESP32 数字输入和数字输出(Arduino IDE)】

关于本教程:

ESP32 基础篇                                

1.ESP32简介                                                                

2.ESP32 Arduino 集成开发环境

3.VS 代码和 PlatformIO

4.ESP32 引脚

5.ESP32 输入输出 ☑

6.ESP32 脉宽调制

7.ESP32 模拟输入

8.ESP32 中断定时器

9.ESP32 深度睡眠

ESP32 协议篇

ESP32 网络服务器

ESP32 LoRa

ESP32 BLE

ESP32 BLE 客户端-服务器

ESP32 蓝牙

ESP32 MQTT

ESP32 ESP-NOW

ESP32 Wi-Fi

ESP32 WebSocket

ESP32 ESP-MESH

ESP32 邮箱

ESP32 短信

ESP32 HTTP 获取 POST

HTTP GET Web APIs

HTTP POST Web APIs

 ESP32 服务器篇

持续更新,关注博主不迷路!!!

 ESP32 传感器模块篇

持续更新,关注博主不迷路!!!

ESP32 终极实战篇

百余项ESP32实战项目,敬请关注!!!

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

先决条件

我们将使用 Arduino IDE 对 ESP32 进行编程。因此,请确保在继续之前安装了 ESP32 开发板附加组件:

ESP32 控制数字输出

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

pinMode(GPIO, OUTPUT);

 要控制数字输出,您只需要使用数字写入()函数,它接受作为参数的 GPIO(int 编号)和状态,或者高的或者低的.

digitalWrite(GPIO, STATE);

 除 GPIO 6 至 11(连接到集成 SPI 闪存)和 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,如下图所示。

原理图,示意图

在继续之前,您需要组装一个带有 LED 和按钮的电路。我们将 LED 连接到GPIO 5和按钮GPIO 4.

所需零件

这是构建电路所需的零件列表:

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

 

代码

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

// 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;

该按钮连接到GPIO 4并且 LED 连接到GPIO 5. 当使用带 ESP32 的 Arduino IDE 时,4 对应于GPIO 4和 5 对应GPIO 5.

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

int buttonState = 0;

在里面steup(),您将按钮初始化为输入,而 LED 作为输出. 为此,您使用引脚模式()接受您所指的引脚的功能,以及模式:输入或者输出.

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

在里面loop()是您读取按钮状态并相应地设置 LED 的地方。

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

buttonState = digitalRead(buttonPin);

以下 if 语句,检查按钮状态是否为高的. 如果是,它会使用数字写入()接受作为参数的函数LEDPin, 和状态HIGH.

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

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

else {
  digitalWrite(ledPin, LOW);
}

上传代码

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

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

 如果你在调试窗口看到很多点(…__…__)和 “Failed to connect to ESP32: Timed out waiting for packet header”信息,这意味着你需要按下 ESP32 板载 BOOT 按钮后点开始出现。

示范

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

当你释放它时关闭:

 总结

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

猜你喜欢

转载自blog.csdn.net/m0_46509684/article/details/129108845