如何与ESP32接口显示?ESP32 OLED展示教程

在本教程中,我们将学习如何将OLED显示模块与ESP32开发板接口。该项目中使用的OLED图形显示基于SSD1306 OLED驱动程序IC,并通过SPI进行通信。在您的DIY项目中使用ESP32与OLED一起显示文本,位图图像,图形等。

spi-old-display-esp32-1

介绍

OLED或有机光发射二极管是一种先进的显示技术,它使用两个电极(阳极和阴极)之间的有机化合物膜,当在电极上施加电压时,有机膜发出光。

OLED显示器的主要优点是它发出了自己的光,不需要其他背光来源。因此,与LCD显示器相比,OLED显示器通常具有更好的对比度,亮度和视角。

OLED显示器的另一个重要特征是深黑级别。由于每个像素在OLED显示屏中发出自己的光线,以生成黑色,因此可以关闭单个像素。

SSD1306 OLED显示器的简短说明

您想在DIY项目中使用OLED显示吗?您是否要在显示屏上显示重要信息,例如IP地址,Web服务器地址等?然后,SSD1306 OLED显示模块是理想的选择。

Spi-Ol-Display模块

该显示模块由单色OLED显示屏组成,分辨率为128像素x 64像素。它对角度为0.96英寸。此OLED显示器使用SSD1306 OLED驱动程序IC。

SSD1306 OLED显示器具有三种类型的通信接口:

  • 8位6800平行界面
  • 3或4丝SPI
  • 一世2C

其中,我2C和SPI型OLED非常普遍。可以将配置从SPI更改为i2c和vice-cice-a(您的SMD电阻有焊料 /焊接器)。我拥有的模型是使用4线SPI通信。

spi-old-display模块后背

SSD1306 OLED驱动程序IC具有128 x 64位图形显示数据RAM(GDDRAM)。它分为八页(第7页到第7页),每个页面都有128个段。同样,每个片段都包含8位,每个片段代表显示器的一个像素。

因此,8页 * 128个段 * 8位= 8192位(1024个字节)。

SSD1306-RAM

OLED显示模块的引脚

下表显示了基于7针SPI的OLED显示模块的引脚。

销(替代名称)

描述
gnd

地面

VCC

电源供应
D0(SCK,SCL,CLK)

D1(MOSI,SDA)

数据
res(rst)

重启

DC(A0)

数据 /命令选择
CS

芯片选择

spi-old-display-pinout

电源供应

SSD1306 OLED驱动程序IC在V上运行DD= 1.65V至3.3V,实际的OLED面板在V上运行CC= 7V至15V。OLED显示模块通过电荷泵电路(用于面板)和调节器(对于驱动器IC)(通常在3V和5V之间)来照顾这些宽的电压需求范围。

这使得OLED显示模块要连接到不同板(具有5V逻辑)和ESP32(带有3.3V逻辑)等不同板。

ESP32 OLED显示界面

现在让我们看看如何与ESP32连接OLED显示器。首先要理解的是通信界面是SPI。因此,查看ESP32的引脚并识别SPI引脚。

ESP32细节

从上图中,可以在SPI接口的ESP32开发板上获得HSPI和VSPI。让我们使用VSPI外围。ESP32中VSPI的引脚是:

VSPI引脚

GPIO PIN

vspi_mosi

GPIO 23
vspi_miso

GPIO 19

vspi_clk

GPIO 18
vspi_cs

GPIO 5

笔记:ESP32完全具有4个SPI外围设备。(SPI0,SPI1,HSPI和VSPI)。SPI0专用于SPI Flash IC。SPI1与SPI0共享硬件。这使HSPI和VSPI用于接口SPI设备。

下表显示了ESP32和OLED显示模块之间的连接。总的来说,我们必须建立七个连接,因为这是一个SPI OLED显示器。

OLED展示

ESP32
gnd

gnd

VCC

3.3V
D0(SCK)

GPIO 18

D1(MOSI)

GPIO 23
res

GPIO 17

DC

GPIO 16
CS

GPIO 5

需要组件

  • ESP32 Devkit开发委员会
  • OLED显示模块
  • 面包板
  • 连接电线
  • 微型USB电缆

电路原理图

下图显示了与ESP32接口SPI OLED显示的电路图。

ESP32-old-display-Circuit-Diagram

准备Arduino IDE

在编写代码之前,您需要下载一些与SSD1306 OLED显示有关的Arduino IDE的库。

我对如何在Arduino IDE中安装ESP32板进行了专门的教程。您可以先检查该教程。现在,打开Arduino IDE,然后转到工具 - >管理库。。。

Arduino-Id-old-library-1

图书馆管理器窗口将弹出。在搜索栏中,键入“ SSD1306”,然后从结果中选择“ Adafruit SSD1306”选项,然后单击“安装”。该库是专门为基于SSD1306驱动程序IC的单色OLED显示器编写的。支持的分辨率为128 x 32和128 x 64。

Arduino-Id-old-library-2

安装SSD1306库后,搜索“ GFX”并安装“ Adafruit GFX库”。这是Adafruit撰写的图形库,用于显示线条,圆形,矩形等的基本图形。

Arduino-Id-old-library-3

下载所有必要的库后,关闭图书馆管理器窗口。现在,确保在Arduino IDE(工具 - > board-> ESP32 Arduino-> ESP32 Dev Module)中选择ESP32板。

测试ESP32 OLED显示器

建立所有必要的连接后,我们现在将继续为ESP32编写测试代码,以在OLED显示屏上显示一些文本和图形。在此代码中,我正在测试OLED显示的各种功能,例如显示正常文本,倒文本,滚动文本,显示ASCII字符,设置字体大小。

我还添加了用于显示矩形,填充矩形,圆形矩形,填充的圆形矩形,圆圈,填充圆,三角形和填充三角形的图形的代码。

最后,我获取了“电子中心”徽标,并将其转换伟德亚洲会玩假吗为位图并将其显示在OLED显示屏上。

结论

关于如何与ESP32 Devkit板接口SPI OLED显示模块的简单教程。您了解了SSD1306 OLED显示屏的引脚,SPI接口与ESP32的必要连接,为Arduino IDE下载库,并在OLED显示器上使用ESP32在OLED显示器上显示一些文本,图形和图像。

一个回应

  1. RES和CS不能连接ESP GPIO16 17,因为我计划将GPIO 16 17用作TX,RX?

    谢谢您的回复!

发表评论

您的电子邮件地址不会被公开。

电子豪华粉丝
<\/i>","library":""}}" data-widget_type="nav-menu.default">
Baidu
map