ESP32 Arduino教程:与SSD1306 OLED显示屏进行交互

简介

该esp32教程旨在解释如何使用Arduino核心将ESP32开发板连接到SSD1306 OLED显示器,并打印“Hello World”消息。本教程使用Elecrow的OLED版本。使用的ESP32板型号为NodeMCU。

为了便于与显示器进行交互,我们需要安装一个支持上述显示模型的库,并且能够在ESP32开发板上使用。您可以在如下图1中对库进行查看,并通过Arduino IDE库管理器进行安装。

您可以在此处查看库的GitHub页面,该页面详细说明了能够与显示器交互的API。

ESP32 Arduino教程:与SSD1306 OLED显示屏进行交互_第1张图片
图1 - 安装OLED库。

本教程使用了Elecrow的OLED版本。它也可以作为这个启动工具包的一部分,使用的ESP32板是NodeMCU。

电气图

ESP32将通过I2C与SSD1306显示器进行交互。因此,除了电源之外,我们在设备之间只需要两根线。

电气图如下图2所示。我们分别使用ESP32引脚21和22作为I2C SDA和SCL。

由于SSD1306的工作电压为3.3 V,我们可以使用大多数ESP32电路板拥有的3.3 V电源引脚,对显示器进行供电。

请注意,根据您的开发板型号,引脚标注名称或编号可能与ESP32微控制器名称或编号不匹配。在继续实际接线前,您应该查看电路板的引脚映射关系并进行确认。

ESP32 Arduino教程:与SSD1306 OLED显示屏进行交互_第2张图片

图2 - ESP32和SSD1306 OLED显示屏之间的电气图。

代码

本教程代码非常简单,因为我们刚刚安装的库具有非常易于使用的API。

首先,我们需要囊括Wire.h库,这是与OLED显示器进行I2C通信所需的内容。我们还需要加入SSD1306.h库,我们将使用它来与设备进行交互。

#include 

#include "SSD1306.h"

接下来,我们需要声明SSD1306类对象,它将提供在显示中绘制所需的功能。我们将调用此对象显示。

所述类构造函数接收器件的I2C地址作为第一个参数,即0x3c。对于第二个和第三个参数,构造函数分别接收SDA和SCL引脚的数量。在我们的示例中,我们使用ESP32的引脚21和22,如示意图所示。

SSD1306 display(0x3c, 21, 22);

现在,在setup函数中,我们将通过调用display对象的init方法对显示进行初始化。此方法不接收任何参数并返回void。

display.init();

接下来我们可以开始在显示屏上绘图。对于这个简单示例,我们将绘制一个非常简单的“Hello World”消息。为此,我们可以调用display对象的drawString方法。

此方法接收x和y坐标作为第一个和第二个参数,其中字符串将在显示器上绘制,并且作为第三个参数,它接收具有实际内容的字符串。

display.drawString(0, 0, "Hello World");

最后,为了将内容发送到显示器以便进行有效绘制,我们需要在对象中调用display方法。此方法不接收任何参数。

display.display();

由于我们不打算更改显示内容,因此我们可能会保留一个空的Arduino循环函数。一旦连接成功,我们刚才绘制的字符串就会保留在显示屏上。最终的源代码如下所示。

#include 

#include "SSD1306.h"

 

SSD1306  display(0x3c, 21, 22);

 

void setup() {

 

  display.init();

  display.drawString(0, 0, "Hello World");

  display.display();

}

 

void loop() {}

代码测试

如需测试代码,在完成图1图表所指定的接线后,只需编译它并使用Arduino IDE将其上传到ESP32开发板即可。

执行程序后,显示屏上将出现“Hello World”消息,如图3所示。

ESP32 Arduino教程:与SSD1306 OLED显示屏进行交互_第3张图片

注:本文作者是Nuno Santos,他是一位和蔼可亲的电子和计算机工程师,住在葡萄牙里斯本 (Lisbon)。
他写了200多篇有关ESP32、ESP8266的有用的教程和项目。涉及arduino、micropython、 Picoweb、Espruino、Bluetooth、RFID、IDF……等等非常广泛,说是最全的完全不为过。

精华教程:

ESP32 MicroPython教程:uPyCraft IDE入门
ESP32 MicroPython教程:解析JSON
ESP32 MicroPython教程:MicroPython支持
ESP32 MicroPython教程:连接Wi-Fi网络
ESP32 / ESP8266 MicroPython教程:自动连接WiFi
ESP32 / ESP8266 MicroPython教程:从文件系统运行脚本
ESP32 / ESP8266 MicroPython教程:HTTP GET请求
ESP32 Arduino教程:用于构建ESP32编译环境的Arduino IDE软件
ESP32 Arduino教程:FreeRTOS队列性能测试
ESP32 RFID教程:打印MFRC522固件版本
ESP32 Picoweb教程:获取请求的HTTP方法
……

还有更多教程: ESP32教程 合集

英文版 :ESP32 tutorial合集

你可能感兴趣的:(ESP32,arduino)